Chapter 4 Key Coding Patterns based 19 System of the Full Text of Quran

The coding evidences that will be presented in this chapter are based on the key coding patterns. I hypothesized that God might have left some easily testable key coding patterns into the basic but most important parts of the full text of Quran so that we can easily observe and use them as key coding patterns to open up the 19 System of the full text of Quran. By applying the key coding patterns over the full text of Quran, we can easily discover the parts of the 19 System of the full text of Quran, which are based on the key coding patterns. I named them as key coding patterns as it reminds me leaving a key around the door of a house so that the person who are supposed to enter the house, but should not be directly communicated, can herself have a look around find the key easily and use it to enter the house. Quran is a message and if God might have placed a 19 based coding system over the message so that we, the receivers, have a tool to scientifically test whether the message is distorted or not by observing an undistorted message coding system over it, similar to what we do in modern communication systems. If that is the case, then God might also have left some key simple codings that can easily catch our eye, most likely, at the entrance of the text or from a quick overall look to the full text so that we can easily test them and discover the key coding patterns and use them to discover the evidence codes over the full text of Quran. I have made hypotheses with such sensible approach in mind and discovered the 19 System of the full text of Quran based on the key coding patterns, which I present the in this main chapter, Chapter 4.

All the key coding pattern based evidences are important part of the system but I refer the Main 19 System part of this book as the codes based on key coding pattern based evidences but without letters information as this makes theme less prone writing styles of different texts and more universal.

Places to look at the key coding patterns:

The first place to look for the key coding patterns is the first and the most famous chapter of Quran, which is Al-Fatiha. The chapter Al-Fatiha is a 7 verses short chapter and it is memorized almost by all Muslims as it is considered that it needs to be read in every daily obligatory prayers, which is performed 5 times a day. Al-Fatiha means “The Opener” or “The Opening” and with that meaning it perfectly align with my hypothesis that it is the main place to look for the key coding patterns. Also, since, it is an independent chapter, we can observe codings in chapter level text data and also verse level text separately and look for chapter and verse level key coding patterns in these two different levels of the text. So, it is perfect and most obvious place for the key coding patterns to be placed by the sender and to be looked for by the receiver over the full text of Quran. I my humble opinion, it is unique and unrivaled in that respect and the most obvious place to look for the key coding patterns. Therefore, the first and the main place to be looked at for the key coding patterns is over the first chapter of the full text of Quran, Al-Fatiha. Since we can observe the chapter and verse information in this special chapter, Al-Fatiha, the key coding patterns observed in chapter level data of Al-Fatiha will be tested on the chapter level data of the full text of Quran. Also, the key coding patterns observed in verse level data of Al-Fatiha will be tested on the verse level data of the full text of Quran.

I considered the second possible place for the key coding patterns to be looked at is the special and the unique verse, Basmala. Again, it is unique because, first of all, it is the first verse of Quran. It aligns with my sensible hypothesis to look at the entrance of the home or structure anology and in this case it is the text of Quran. Secondly, this special verse is repeated in the beginning of the 113 chapters of Quran but does not appear at the beginning of one chapter, Chapter 19. However, the Basmala verse also appears within one of the chapters and repeated 114 times in total and this suggests an additional and apparent 19 based association. There are 114 chapters and 114 Basmala verse observed in the full text of Quran and 114 is multiple of 19 as 16x6 =114. Moreover, the Basmala verse has this apparent and obvious 19 related natural numbers. It has indexes chapter 1 and verse 1 and has 4 words. When concatenated, we observe 114 again, which is also the total number of Basmala verses in the full text of Quran. Moreover, the Basmala verse has 19 letters and it demonstrates a clear 19 based association and stands as a clear place to look for the key coding patterns for the full text of Quran. Since, this is a special and unique verse and also appears at the beginning of all chapters, one of them is indexed but the rest are not indexed, I will test the key coding patterns observed in the Basmala verse, both in verse and also chapter level data of the full text of Quran. Appearance of Basmala before the starting of all chapters except one, suggest its strong relation with chapters and thus the chapter level data trials should be included. Also, as a general rule, in the places to look for key coding patterns, if we do not have chance to observe both chapter and verse level data separately then we also do not separate the chapter or verse level data while trying the relevant coding patterns in the full text of Quran. So, in short the key coding patterns from Basmala verse will be tested both in chapter and verse level data of the full text of Quran.

Lastly, I considered the total numbers of each natural numbers of text to look for key coding patterns. It is like to look at the overall picture of the structure and see if there is an obvious key coding patterns exist. Similar to the Basmala based key coding patterns, the key coding patterns from the total numbers will be tested both in chapter and verse level data of the full text of Quran as there is no chance to make clear distinction to test in both chapter and verse level data.

I will describe in more detail about these 3 places where we look at the key coding patterns while presenting the relevant codes in the subchapters of this main chapter.

The two subchapters, without and with letters information:

This main chapter has two main subchapters. First subchapter does not include letters information in any of its presented codes. It is the chapter, where I present the Main 19 system of the full text Quran. You can refer to that chapter why I classified as such. So, it is therefore the main chapter the critics should try to attack and nullify but not the others first. Because if there is no substantial critics on the the Main 19 system, then it is itself sufficient to claim a miraculous system over the full text of Quran that supports the intactness of the full text along with its content at the word level.

The second main subchapter includes letters information as well. The reason I separated as such is because, by some people, letters information is considered less reliable than chapters, verses and words information. Because, in various writings of the text some of the exact same words might be written slightly differently. An example in English can be given as the word ‘color’ and ‘colour’. Therefore, I wanted to present in the first chapter the 19 System of the key coding patterns without letters information. This way, the system presented in that subchapter will not be able to criticized with text related concerns and thus can be considered as universal. Namely, the codes and the 19 System built by them presented in the first main subchapter, should exist over all the Hafs manuscripts that represent the most common text representation of the full text of Quran. However, it is not necessarily the same for the codes with letters information, which I separately present in the second main subchapter of this main chapter. In my humble opinion, as long as there is no grammatical error in the writing of the text I used with respect to letters information, then the system with letters information suggest a strong 19 based design over the full text of Quran too. However, anyone with doubts about letters, can only focus on the codes without letters information, which is still sufficient to witness a strong 19 based design over the full text of Quran.

The natural numbers of the text will be used for the codes. They are chapter, verse, words and letters numbers. In the first subchapter, I will present codes with only numbers of chapter, verse and words. In the second subchapter, I will present the codes with the numbers of letters information as well.

As a general rule, all our approaches should be as natural as possible and also practical. There are 4 different natural numbers information, namely, numbers of chapter, verse, words and letters. I will never consider all the combinations blindly as this would not be sensible and practical. I will only consider the most obvious, meaningful and essential combinations of these 4 numbers. Over all, we will consider each of these 4 numbers independently as it seems to be the most natural and obvious way. However, this does not provide the full information about the text and might be considered secondary. For this, the most natural and essential first combination is using chapters, words and words information (without letters) in their natural order when concatenated. The second combination is the same but including letters information, namely, using chapters, words, words and letters in their natural order when concatenated. This way we will have only 2 main combinations both of which provide sufficient information about the content and structure of the full text of Quran. Of course, both of them have some limitations at the information resolution they poses and provide. Let me summarize the combinations of the numbers to be considered. Thee following text numbers and combinations will be used in the two main subchapters.

First main subchapter, the Main 19 System will consider the numbers of the following combinations in the natural order:

  • chapters, verses, words
  • chapters
  • verses
  • words

The second main subchapter is presenting the key coding pattern based codes with letters information and will consider the numbers of the following combinations:

  • chapters, verses, words, letters
  • letters

The coding operations used: Sum, concatenation and digit sum operations are the 3 coding operation tested over the numbers of the full text of Quran in their natural order when possible. The operations also has a natural priority order as written from sum, then concatenation and lastly digit sum is tested. Let me clarify this with an example. Let’s say we summed the chapter, verse and words information as this 4,6,9 and got 19. So the resulting number from the decimal sum operation is 19 and we will use this sum operation as the key coding pattern to test the same pattern over the full text of Quran. However, since each number has only one digit we could also say that the digit sum of the numbers also multiple of 19. So, the question is, which one we will use as the key coding pattern to test the full text of Quran. In such cases, the natural priority of the operations that I described is used and in this example only the decimal sum operation is used as the key coding pattern to test the full text of Quran and the digit sum case is not tested nor counted.

In summary we have the following coding operations in the natural order of priority as follows:

  1. Sum
  2. Concatenation
  3. Digit sum

Lastly, for the reference, to the best of my knowledge, all the codes of the 19 System, which are based on the key coding patterns presented within this main chapter, Chapter 4, are first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself.

4.1 Key Coding Patterns based 19 System of the Full Text of Quran Without Letters

In this main subchapter, I will present the codes of the 19 System of the full text of Quran based on the key coding patterns without letters information. Basically, in this subchapter, I will consider the numbers of the following 4 combinations in the natural order:

  • chapters, verses, words
  • chapters
  • verses
  • words

For these numbers combinations, as mentioned before, I looked at 3 places to find the key coding patterns. I mentioned them before bu to remind, the places are, the first chapter Al-Fatiha, the first and the special verse Basmala, and the total numbers.

4.1.1 About the Even and Odd Coding Pattern

In this section, I will explain explain why I did hypothesize the even and odd based coding pattern. Among others, one of the universal rules were as follows:

A coding hypothesis must have a meaningful support from the verses of Quran such that we can interpret the meaning of the verse, at least potentially, referring to the coding we hypothesized. To clarify this rule, the reason I selected number 19 as the common divisor of all the codes but no other number is that there is this separate verse in Quran: “74:30. Over it is Nineteen”, which we interpret that Quran might have 19 based coding system over its text that shows the intact design over it and hence the intactness of it.

Similarly, in Quran at the chapter Al-Fajr, which is Chapter 89 and Verse 3, there is this independent verse that we might interpret, among others, such that it might also refer to an even and odd pattern based codings of the 19 based system of the text of Quran.

“by the even and the odd”, Quran, (89:3).

Basically, the reason we test the even and odd coding pattern in all the evidences of the successful key coding patterns based 19 system in this main chapter, is because there is this independent verse, 89:3. I hypothesized that this verse might also be about the 19 based codings of the text of Quran and, if it is, it should also be witnessed primarily within the main 19 System of the text of Quran if not all. Since the overall main 19 System of Quran is considered the system of codes based on the key coding patterns presented within this main chapter, as a rule, all the suitable codes of the 19 System based system with the key coding patterns are also followed up and tested for the even and odd coding pattern version of it. Since the even and odd coding pattern is based on pairing coding pattern, which pairs the even and odd parts of the code with its corresponding number pair, by the nature of it, only concatenation coding pattern based codes are suitable to follow up and test for also with the even and odd coding version of it. Because, for example, sum of all numbers would be equal to sum of odd and even parts of the same numbers and thus not suitable to test for even and odd coding pattern as it would be mathematical necessity to be multiple of 19 in such a case and thus not suitable.

By the way, it is also interesting to see the concatenation of the indices of this verse, 89:3, 893 is also multiple of 19 and the remainder is 47 where the first digit of it, 4, is even and the second digit, 7, is odd too. This stands as a weak but interesting sign that this verse well may refer to what I hypothesize in this book. Not to mention, there was already other kinds of even and odd based interesting coding proposals based on only the chapter and verse indices at a website called amazing19.com. A simple internet search brings many similar claims on that. However, the evidences you will witness in this book is different than all the others. Because, first, unlike all the others, I also include all the word content information of the full text of Quran as described already in the rules of this chapter. So, the even and the odd based coding evidences you will witness in this book suggest the intactness of the full text of Quran but not for only about the order of chapter and verse indices as others do. Moreover, the evidences I present in this book are bound by all the general rules I described in Chapter 4.1.2. Now, let’s continue describing the even and odd pairing coding pattern.

The even and odd pairing coding pattern closely resembles to the double helix of the DNA structure, where one strand represents even and the other strand represents the odd numbers in our case. We first classify the text of Quran as even and odd with respect to the chapter indices. Namely, if a chapter have an even index then it is an even chapter. For example, Chapter 2 is an even chapter. At the verse level of the text, we again group the verses with respect to their chapter indices. Namely, if a verse belong to an even chapter then it is classified as in the even group. We do the same for the odd classification where any chapter or verse that belongs to an odd chapter is classified as in the odd group.

After performing the even and the odd classifications, then we apply the pairing coding pattern that I first time introduced in this book, which is similar to the structure of the double helix. Basically, we start pairing the even and their corresponding odd numbers by concatenating each pair in natural order and then concatenate all the paired numbers again in the natural order to get the single big even and odd paired codded number. As an example, if we want to get even and odd pairing coding number of the numbers from 1 to 10 the we start pairing them first as 21,43,65,87,109. We then concatenate the pairs again in the natural order and get this big even and odd codded number 21436587109.

In verse level text numbers, one side of even or odd might be shorter as we classify them by chapter indexes. Then naturally, the shorter side starts over from the beginning while pairing. The reason I used this pairing pattern of unequal pairs is because it is the most natural one we could design. Since the representation number is a big number, we might also witness a miraculous evidence.

Since it is not suitable, the code obtained by a sum operation cannot be coded with the even and odd coding pattern. Because sum of two groups give the same number as the initial direct sum. Also,since the even and odd coding pattern is itself based on a pairing coding patterns, it can only be clearly applied to codings based on a concatenation of a single category.

In this main chapter you will witness 6 total key coding pattern based evidences that are suitable to test the follow up even and odd coding pattern. As you will see, we observe 6 total even and odd coding evidences based on these 6 key coding pattern based evidences. Only one of the key coding pattern based evidence does not have a follow up even and odd coding evidence but since another key coding pattern based evidence has two follow up even and odd coding evidences, in total we have 6 to 6 successes observation.

4.1.2 The Main 19 System utilizing Al-Fatiha over the Full Text of Quran Without Letters

In this chapter, I will present the Al-Fatiha based 19 system of the full text of Quran, which I consider it within the Main 19 System. This means, considering the rules, we test all the sensible possible codings over the 4 possible natural numbers of the text of the key chapter, chapter Al-Fatiha, and whichever of the tested codings over Al-Fatiha is successful, namely, multiple of 19, then those ones are considered as the key coding patterns, like clues, and all of them have to be tested over the full text of Quran as a rule. The ones that are also successful in the full text of Quran are considered as evidence codes and part of the main 19 System of the the full text of Quran presented in this book. We count all the successful numbers of tests and total number of trails and can easily calculate the probability of what we observe.

When all the possible sensible codings tested regarding the 4 mentioned natural numbers of Al-Fatiha at the chapter level numbers, I observe only two codings as multiple of 19 thus they will be tested over the full text of Quran as the key coding patterns. As you will witness in the following subsections of this subchapter, both of these key coding patterns also exist over the full text of Quran. See Chapter 4.1.2.3 and Chapter 4.1.2.6 for these two codings. Moreover, as per the rules we need to test the even and odd coding patterns as the obligatory follow up tests for each successful key coding patterns. For the details about why we always test with the even and odd coding patterns as follow up test, one can read the Chapter 4.1.1. Therefore, we test the even and odd coding patterns for these successful key coding patterns and observed that they also exist over the full text of Quran. See Chapter 4.1.2.4 and Chapter 4.1.2.7 for these two codings.

When we look at the verse level data of Al-Fatiha to look for key coding patterns similarly, we observe one successful sensible coding without letters information. When we test this key coding pattern over the over the full text of Quran at the verse level data we observe that it also exist in it. Moreover, we test the follow up even and odd coding pattern with this successful key coding pattern and it also exist over the full text of Quran.

By the way, there is also one successful sensible coding with letters information observed at the verse level data from the chapter Al-Fatiha, which is a pairing coding operation. When tested, this key coding pattern also exist over the over the full text of Quran at the verse level data. Since pairing and sum coding operation are not suitable, as per the rule, this key coding pattern is not tested for the even and odd coding pattern. This coding will be presented in the second main subchapter with the letters information separate from this first main subchapter that only presents codes without the letters information.

4.1.2.1 About the 19 System based on the chapter Al-Fatihah based coding patterns

Assuming that the text I used and the computations I performed are correct, I consider the Al-Fatiha based 19 system I present in this chapter as the most important evidences that demonstrates an apparent 19 based system within itself though it is still part of the general 19 system that is the combination of all the evidences I present in this book. Since the evidences presented in this chapter are mainly based on the rules derived from codings observed in, arguably, the most important and also the first chapter of Quran, named Al-Fatihah (The Opener), I consider them as the most important evidences in my humble opinion. This is my conclusion considering all the 19 based codings that I discovered and presented in this book. This is because the evidences I present in this chapter are based on a clear, universal, meaningful and quite a strong rule with which we can easily screen all the possible coding trials.

The evidences of the Al-Fatiha based 19 system presented in this chapter suggests the intactness of the full text of Quran to a great degree. By full text, I mean including all the number of words at each verse and chapters along with the current exact structure and order of the chapters and verses. Since there is no letter based coding in the Al-Fatiha based 19 system, it might also be considered universal as it covers chapters, verse and words information only, which is less open to variations in writing in comparison to letters information. The Hafs recitation is known as the common manuscript, which represent the text of Quran, which is used by around 97% of Muslims (Saleem 2018). It can be easily accessed from commonly used websites, such as tanzil.net or quran.com. See Chapter 3.1 for the details of the text I used in this study.

The coding evidences of this chapter together make the Al-Fatiha based 19 system suggest a design over the full text of Quran down to the number of words. Since we observe a miraculous design over the text, it suggests that the Quran text, which I explained in detail in Chapter 3.1, is intact and unchanged. If there was even a single word missing or redundant, or the structure of verses or chapters were any different, then all my evidences together would most likely be invalid. Therefore, the Al-Fatiha based 19 system presents solid mathematical coding evidences that strongly support the hypothesis that the full text of Quran is unchanged since the year around 632 when it was first fully revealed and recorded.

My main coding approaches can be best summarized in short as the concatenation of the natural numbers of the text in the natural order. When I realized that there are many independent 19 based codings available in Al-Fatiha (The Opener), I then hypothesized that God might have left those special coding patterns of Al-Fatihah as clues, as the opener of the Al-Fatiha based 19 system, so that we might easily discover the 19 based system design in the full text of Quran and be assured by the witnessing it. My hypothesis turned out to be validated and I ended up discovering the Al-Fatiha based main evidences. All the evidences of the chapter (without the letters information), including the successor even and odd coding evidences, together makes Al-Fatiha based 19 system that I discovered and presented in this book. I consider the other evidences I presented in this book as additional and not as primary comparing to the Al-Fatiha based 19 system. This is my personal conclusion considering all the evidences I witnessed. On the other hand, I also sometimes present some codings as facts, not as evidences of the 19 System, because they are not within the boundaries of the rules I described. I present them because I might still find them interesting and also they might be potential evidences that I might not have noticed the correct rule yet and some other researchers might notice later in case it exists.

I already described the rules in a separate chapter for about how to obtain the codings to be tested. Briefly, the particular rule of this main chapter is that, regarding all the mentioned rules, we try all the possible sensible coding patterns and whatever the 19 based sensible and successful coding patterns we observe on the chapter Al-Fatiha of Quran, then we will further test it over the full text of Quran as well since we hypothesize that they might be left as the clues for the Al-Fatiha based 19 system of the full text of Quran. Also, as mentioned before, for any key coding pattern of Al-Fatiha that is validated over the full text of Quran, we must also test them with the follow up even and odd coding pattern as per the defined rules.

In order not to make the book too long, I might not print out here all the big coding numbers of each evidence. However, you can easily run the codes I provided and regenerate them. Alternatively, you might access them and other related materials from the Github repository of this book at https://github.com/quran2019/Quran19.

Lastly, for the reference, to the best of my knowledge, all the evidences of the Al-Fatiha based 19 system presented within this main chapter, Chapter 4.1.2, are first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself.

4.1.2.2 Rules of Al-Fatiha based 19 system evidences

Here I state the rules that have to be used in all the evidences within this chapter, Chapter 4.1.2, if applicable over the numbers to be tested.

  1. Meaningful code patterns: All the rules, universal or particular, must be meaningful. We should be able to find answers for what and why we are applying each of the coding patterns. No redundant information can be added or removed. Manipulations at any level, even for a single letter, are not allowed at all for any reason. This is a universal rule and reminded here that is followed in all the chapters of this book.

  2. Codes and Context from Quran: This is also another universal rule that is reminded here. The coding hypothesis must have meaningful support from the verses of Quran such that we can interpret the meaning of the verse, at least potentially, referring to the coding we hypothesized. To clarify this rule, the reason I selected number 19 but no other number for the divisibility test is that there is this independent verse in Quran (74:30): “Over it is Nineteen”, which we interpret such that, Quran might have a 19 based system design over its text that indicates the intactness of it. This rule is very important as it dramatically reduces the potential testable number of codings in it. This rule also partly answers the thoughtless counter argument and the ignorant stereotype critics such that “all books has some kind of patterns in it”. Because, this rule connects the content information of the book to the text medium that conveys the content information.

  3. Coding patterns in order of importance: As mentioned before, sum, concatenation and digit sum operations are the 3 main coding operation tested over the numbers of the full text of Quran in their natural order when possible, with the priority from sum, concatenation and lastly digit sum. Also, if we see an operation, for instance sum, is used in the key coding pattern, while testing it in chapter level data, we must use it for each chapters and concatenate all in natural order. The process is the same with verse level number. In the verse level data, we must use the operation for each verses and concatenate all in natural order. This when we have to test a key coding pattern both in chapter and verse level data. Also, concatenation must always be used to connect chapters if we observe a key coding pattern at the chapter level numbers in the special chapter, which is Al-Fatiha in our case. Similarly, concatenation must always be used to connect verses if we observe a key coding pattern at the verse level numbers in the special chapter of Al-Fatiha. But, any key coding pattern observed from an isolated meaningfully relevant verse, we have to test that key coding pattern both in chapter and verse level data. Because an isolated verse is does not represent all the verses in a particular chapter like we observe in Al-Fatiha and we cannot clearly distinguish whether the pattern is specific to verses only or not. If there is a single number without any operation, then we look at what that single number represents. If it represent for example number of total chapters, then we look at the sum of chapter number in the verse or chapter level data similarly as an example. If it represent a verse index for example, then it is not about sum and we just use concatenation operation at the verse level and chapter level data using indexes similarly.

  4. Re-writing always with letters data:The special coding pattern, which is called as re-writing coding pattern can only used if there are letters numbers information in the code. Because, it literally tries to represent the text by re-writing from right to left as in Arabic text. Therefore, whenever we have letters information among the numbers, the direction of concatenation is always from right to left as in Arabic, which seems as the reverse order of the standard concatenation we use. This is also another universal rule that is reminded.

  5. Ignoring identical: If a coding pattern is used and obtained a successful coding number but some other coding patterns also resulting the same successful number, only the first coding pattern with the higher priority is used and the others are ignored. Since the coding patterns have priority, the coding patterns with the highest priority is used as the key coding pattern alone. Namely, sum, concatenation and digit sum is the order of priorities of the coding operation, respectively.

  6. Natural numbers in natural order: The natural numbers of the full text of Quran is concatenated in natural order by default. For example, if we are using the numbers, the natural order starts from 1 to the maximum number, such as 1 to 114. The numbers of the text has also natural order, which starts from chapters and proceeds in the natural order as verses, words and letters. This is also another universal rule that is reminded here.

  7. Three levels of text numbers: As there are three levels of the numbers of the text that can be derived from the full text of Quran, which are total level, chapter level and verse level as described in Chapter 3.2.1, the evidences of this chapter must consider those levels and be tested in all of them if relevant. This is also another universal rule that is reminded.

  8. The chapter, verse and words information are considered universal: Since this particular subchapter provides the Al-Fatiha based 19 system of the full text of Quran, Al-Fatiha based 19 system should have been readily available to be discovered at all times since Quran was revealed in its completeness since 632. Although I used the common Hafs manuscript text that represents Quran, there might still be various versions of Hafs manuscripts considering various slight differences in writing of some of its words because of varying writing styles. Namely, they are the same words but they might have slight differences in letters while writing the same word during the history. See the details on this matter in Chapter 3.1 and Chapter 3.2.1. The Al-Fatiha based 19 system of the text of Quran presented in this particular subchapter Chapter 4.1.2 does not include the letters information and therefore represents almost all of the Hafs manuscripts. Namely, the evidences of the Al-Fatiha based 19 system should incorporate information that verifies the exact structure and content of the text of Quran in most of the Hafs manuscripts of the current and past time. Since the main sounding narrative about the preservation of Quran is such that “it has been protected till the last word of it”, the three text elements of the text, chapter, verse and words, is universally required in any code that claims to stand as an evidence for the protection of Quran along with its content and structure at some level. These three content information of the text together are the bare minimum to represent the full text with its structure and content information. As mentioned before, there might be some variations in writing some of the words with slight differences in writing of the same words but they all mean the exact same word. In English, we can give an example of the word “color” and “colour” for the same word written with different letters. Therefore, I consider the codes without the letters information as the most universal as it covers almost all of the Hafs manuscripts and independent from the slight letters differences. On the other hand, in the second main subchapter, Chapter 4.2, I will also include the letters information in the trials to make sure I have followed scientifically rigorous approach and try to answer all possible critics and questions. So, the coding patterns will be tested in both of the possible content information to represent the text. However, the ones with chapter, verse and words information is considered the most universal codings and thus I classified as the Main 19 System. The codes with chapter, verse, words and letters information is providing more resolution but is not considered as at the same level of strength like the universal codes. Basically, all the two possible combinations to represent a full text with its structure and content will be tested and included in the probability calculations but separately. The people who might have doubt about the letters of the text can then focus on the this main subchapter, Chapter 4.1, for the most universal 19 System, the Main 19 System, which does not have any letters information in its codes.

  9. All sensible code patterns regarding rules are tested on Al-Fatiha to find keys: For this particular subchapter, Chapter 4.1.2, the question then becomes which coding operations we can try on Al-Fatiha? The short answer is all the possible and sensible ones that are also meaningful and in accordance with the rules described here in this sub-chapter.

  10. Pairing coding pattern: Pairing is a special concatenation coding pattern that we might use to test between two different categories when suitable. Because of its special structure, the current even and odd coding pattern cannot be applied to a paired code. Because the even and odd coding pattern is already using pairing coding pattern but applied to single category numbers by replacing the order of the text by prioritizing the even ones first. Moreover, the rewriting coding pattern is never used together with the pairing coding pattern as pairing is not considered a rewriting of the text.

  11. The even and odd coding pattern is applied as well: After each of the successful key coding patterns, we must also test them with the even and odd coding pattern over the full text of Quran. Namely, for instance, for each Al-Fatiha based successful coding, we also have to test the even and odd pairing coding pattern as the follow up test as per the rules. This is a general rule for all the successful key coding patterns. See the sub-section Chapter 4.1.1 for more details on the even and odd coding pattern. Basically, the reason I test the even and odd coding pattern in all the key coding pattern based evidences is because there is this independent verse: “by the even and the odd”, Quran, (89:3). I hypothesized that this verse might also be about numbers and if so, it should also be observed within the Main 19 system of the full text Quran, which is the key coding pattern based 19 System. As I consider this part of the 19 System as the the most important part over all the other codes, I expect that the even and odd coding pattern might also exist in this most important 19 System. Because, for example, if the Al-Fatiha based codings we witnessed are really part of the main 19 system of the text Quran, the further ensuring even and odd coding pattern based codes might be expected to be within the same system part. The follow up even and odd coding pattern based coding test are therefore required and if successful, it further assures and strengthen the Main 19 system.

  12. Another special rule for the even and odd pairing coding pattern is such that, it is always paired as even numbers first and then the corresponding odd number. This rule follows the exact observed order in the source verse, which is “by the even and the odd”, Quran, (89:3). Also, the even and odd pairing coding pattern is applied to both of the text types, namely, all the 6348 verse and also 6236 numbered verses. This is based on the universal rule of this book such that all the coding patterns are tested in both of the text typs of the full text of Quran, which means in all the 6348 verse and also 6236 numbered verses.

In the above points, I described all the rules of the key coding pattern based 19 System of the full text of Quran. I consider the codes of this system without letters information as the Main 19 system of Quran. Those are the rules I defined based on my observations to make sure the 19 System I present is rule based system with which we can easily count all the possible 19 based coding trials and thus can measure the coding space of all the possible trials. This has vital importance to be able to accurately calculate the probability of what we observe in the end. I try to follow a scientific approach to be able to measure the probability of the 19 system of the full text of Quran that I discovered and present in this book. You might come across other earlier or later claims regarding the 19 based system over Quran but, to the best of my knowledge, none of them provide the total possible number of trials of their claims. In fact, as far as I know, the system I discovered and present in this book is the first fully rule based 19 system in literature. Without a rule based claim, we cannot measure the boundaries of the proposed system and thus cannot measure whether what we observe is extraordinary or not.

4.1.2.3 Evidence to silence: Harmony among Chapters, Verses and Words

The code I will present in this chapter is the first Al-Fatiha based code evidence of the Main 19 system, which is also a key coding pattern based system. I discovered this evidence on February 10, 2020 and added into the e-book right away. I might have discovered it before without its connection to Al-Fatiha but have forgotten this evidence when I first discovered the initial evidences and published them in this book in 2019. Because, it is so evident and similar to my other evidences. I was so overwhelmed with many evidences while writing this book and probably forgot this one by then as I had not seen the relation of it with the Al-Fatiha based 19 system. After the publication of my book, there were some critics on my book as it was mostly based on the evidences that includes the number of letters. Since some have doubts about the exact letters, they doubted about those evidences that include letters information. I guess, it may seem too good to be true for them. Having this criticism in mind, I was looking at the table below, which shows each chapter and the number of verses, words and letters within each chapter.

x<- dfVCWL
knitr::kable(head(x), booktabs = TRUE,
  caption = 'Table head of the numbers at chapters in Quran.')
Table 4.1: Table head of the numbers at chapters in Quran.
Chapter_index Verse_sum cWords cLetters
1 7 29 143
2 287 6144 26268
3 201 3505 15004
4 177 3767 16351
5 121 2841 12225
6 166 3060 12745

The most important chapter in Quran might be considered as the first chapter, Al-Fatiha (the Opener). This chapter is recited in every obligatory daily prayers by all Muslims. Reciting Al-Fatiha in the daily prayer is considered a requirement by the Tradition. Therefore, all Muslims know and recites this first chapter of Quran every day in the obligatory daily prayers. This numbers if this uniquely important and also the first chapter of Quran caught my eye as the digit sum of the chapter index (1), number of verses (7) and number of words (29) is exactly 19 (1+7+2+9 = 19). This woke me up right away. I then tested the universal concatenation rule of this book by concatenating these numbers, as always, in the natural order from chapters towards words. Then I got 1729, and it is also multiple of 19 as 1729/19 = 91.

As we witnessed, there are two simple and crystal clear 19 based codings in the most important chapter, Al-Fatiha, of Quran. They stand apparently in the first and most important chapter of Quran. Namely, over the chapter Al-Fatiha, or “over it is 19”. There is also the independent verse at chapter 74 and verse 30, 74:30 “Over it is 19”. Since, we clearly see 19 over the Al-Fatiha, it is fair to hypothesize that the clear 19 based codings over the. chapter Al-Fatiha might be left as clues to discover the main 19 based system over the full text of Quran.

Then, I learned the pattern! My hypothesis was simple. God might have left us these obvious and simple coding patterns as clues within the most important and most recited and also a short chapter of Quran so that anyone can observe it and even manually try and witness those coding patterns and consider them as potential clues and migt then test it over the full text of Quran. Therefore, the next step for me was to test these patterns in the full text of Quran. Because, as a information coding expert, the hypothesis I thought was that they might be left as clues or key coding patterns and if the hypothesis is true then we should observe these two coding patterns in the full text of Quran too. For each of the 114 chapter, I first applied these patterns and obtained the representation number of each chapter. I then concatenate them from first chapter till 114 in the natural order as always. This concatenation approach is similar to what we observed in Evidence 5.5.1. Regarding the big number to be tested, since I inferred this pattern specifically from the first chapter, Al-Fatiha, this evidence has its own rule and not necessarily have to fully align with the rest of the book. I already described all the rules before.

In this particular section, I present one of the two codings as an evidence code that we learned its coding pattern from the chapter level representation number of the first chapter, Al-Fatiha, which is 1729, where the chapter index (1), number of verses (7) and number of words (29), which were concatenated in the natural order. Let me also illustrate the coding pattern of this evidence. Basically, we first concatenate the chapter index, the number of verses and also the number of words in each chapter within itself and then concatenate all of them in the natural order again and get the big representation number of the full text of Quran as illustrated below:

[Chapter 1 | Total Verses in Chapter 1 | Total Words in Chapter 1] [Chapter 2 | Total Verses in Chapter 2 | Total Words in Chapter 2] . . . . . . [Chapter 114 | Total Verses in Chapter 114 | Total Words in Chapter 114]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. Square brackets are used to separate each chapter information and all the adjacent brackets are concatenated to each other by default.

Considering all the 6348 verses of Quran, if we use the real numbers in the above formula, it would be like this:

[ 1 | 7 | 29] [ 2 | 287 | 6144] . . . . . . [114 | 7 | 24]

And, the final number after all the concatenation would look like this:

172922876144 . . . . . . 114724

See below R programming scripts for the proof of this evidence. They can be used and the code can be easily reproduced and witnessed as if it is a Reproducible Miracle. I will print out this 800 digits length big number in the end of this chapter so that you can easily perform tests and checks on it. The final big number includes all the verses, including the unnumbered Basmala verses of Quran, which means this evidence exists over the text type of all the 6348 verses of Quran.

require(gmp)
require(data.table)
# dfVCWL is a data table that keeps the chapter level text numbers of the 6348 verses
tmp <- paste0(dfVCWL$Chapter_index,dfVCWL$Verse_sum, dfVCWL$cWords)

head(tmp) # head part of the text
## [1] "1729"     "22876144" "32013505" "41773767" "51212841" "61663060"
tail(tmp) # tail part of the text
## [1] "109731" "110423" "111627" "112519" "113627" "114724"
tmp <- paste0(tmp, collapse = "")
#Test if the remaining is 0 from mod 19.
as.bigz(tmp) %% 19 
## Big Integer ('bigz') :
## [1] 0
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 800

This evidence suggests that chapters, verses and words of Quran is under the observed 19 based coding system of the text of Quran. In particular, it is part of the Al-Fatiha based 19 system and not distorted from the beginning and unchanged since the year around 632.

The coding pattern in Al-Fatiha is also tested over the second text type, namely in the 6236 numbered verses, as per the general rules. But we only observed it over the text type of 6348 verses. Therefore, statistically, we performed two trials and observed one success in this particular coding pattern of Al-Fatiha.

Let’s add the number of successful evidences and the number of tested trials regarding this evidence so that in the end of the book we can calculate the global probability using the counters. We will add them into the counters.

#Two trials one successes
alFatihah_tested_nums <- alFatihah_tested_nums + 2 
alFatihah_success_nums <- alFatihah_success_nums +1

Here is the “800” digits length big number:

“17292287614432013505417737675121284161663060720733458761246912925051011018431112419501211217991344857145383415100661161291848171121562181111587199997520136135721113117822791283231191056246513232578900262281324279411632889144229709823061821313555432313763374130734558883546782368473437183869388973939761181408612304155798425486443908404460350453849246366494739546483056449193575046377516136452503165363364545634655793565697383573057958234795925451601435661152306212181631218564192466513293661325867313376853305695326470452217129231722929073212047457260754116876322477751185784117879471838043137813010882208583371738426112852311386186587207688279689311439021869116589222759312449493195938962076976349899899940100124410112401029321034181041037105627106521107829108414109731110423111627112519113627114724”

4.1.2.4 Even and Odd chapters at the chapter level Evidence in all the 6348 verses

Since the even and odd evidence code I will present in this chapter, as per the rule, is the follow up code to the previous evidence, Evidence 4.1.2.3, I placed this evidence right after the previous chapter of the predecessor evidence. These two separate consecutive coding evidences together constitute the hypothesized dependent evidences pair from the Al-Fatiha based 19 system, which is also part of the key coding pattern based Main 19 System of the full text of Quran.

As per the rule, for each of the key coding pattern based evidence code, which is based on Al-Fatiha in this case, which exist over the full text of Quran, as per the rules, we have to follow up and also test the even and the odd coding pattern over the same numbers and patterns used in that predecessor evidence. As we observed the successful key coding pattern based evidence over text type of all the 6348 verses, the follow up even and odd coding pattern also exist in the same text type, namely the 6348 verses.

Let me first illustrate the follow up even and odd pairing coding pattern as follows, which, as mentioned before, closely resembles to the double helix of a DNA structure, where one strand is even and the other strand is the odd numbers as formulated below:

[ [Chapter 2 | Total Verses in Chapter 2 | Total Words in Chapter 2] [Chapter 1 | Total Verses in Chapter 1 | Total Words in Chapter 1] ] [ [Chapter 3 | Total Verses in Chapter 3 | Total Words in Chapter 3] [Chapter 4 | Total Verses in Chapter 4 | Total Words in Chapter 4] ] . . . . . . [ [Chapter 114 | Total Verses in Chapter 114 | Total Words in Chapter 114] [Chapter 113 | Total Verses in Chapter 113 | Total Words in Chapter 113] ] [ [Chapter 113 | Total Verses in Chapter 113 | Total Words in Chapter 113] [Chapter 113 | Total Verses in Chapter 113 | Total Words in Chapter 113] ]

As it is seen the predecessor key coding pattern still kept within each of the chapters as illustrated within the rectangular brackets. However, they are concatenated by placing the even pair before the odd pair as opposite to the normal concatenation, which was already the predecessor coding evidence of it.

If we use the real numbers of all the 6348 verses in the above coding pattern, it would be like this:

[ [ 2 | 287 | 6144] [ 1 | 7 | 29] ] [ [ 4 | 177 | 3767] [ 3 | 201 | 3505] ] . . . . . . [ [114 | 7 | 24] [113 | 6 | 27] ]

And, the final even and odd coding number after all the concatenations would look like this:

2287614417294177376732013505 . . . . . . 114724113627

This chapter provides the even and odd pairing coding evidence as a compulsory follow up to the Evidence 4.1.2.3, which exist over the text type of all the 6348 verses. In the following, considering all the 6348 verses, I present the R script to reproduce and test this evidence code. It first classifies the even and odd chapters and pair them from even to odd (as per the rule since we observed in that order in the relevant verse of Quran, which is “by the Even and the Odd”) and obtains a big number after concatenating them in the natural order. As shown below, it is also multiple of 19 as we can witness in the following reproducible proof:

ev<- dfVCWL[(dfVCWL$Chapter_index%% 2 == 0), ]
cat("The number of even chapters is",nrow(ev))
## The number of even chapters is 57
od<- dfVCWL[(dfVCWL$Chapter_index%% 2 != 0), ]
cat("The number of even chapters is",nrow(od))
## The number of even chapters is 57
ev <- paste0(ev$Chapter_index,ev$Verse_sum,
               ev$cWords)
cat("The head of concatenated even chapters to be paired",head(ev))
## The head of concatenated even chapters to be paired 22876144 41773767 61663060 8761246 101101843 121121799
cat("The tail of concatenated even chapters to be paired",tail(ev))
## The tail of concatenated even chapters to be paired 1041037 106521 108414 110423 112519 114724
od <- paste0(od$Chapter_index,od$Verse_sum,
               od$cWords)
cat("The head of concatenated odd chapters to be paired",head(od))
## The head of concatenated odd chapters to be paired 1729 32013505 51212841 72073345 91292505 111241950
cat("The tail of concatenated odd chapters to be paired",tail(od))
## The tail of concatenated odd chapters to be paired 103418 105627 107829 109731 111627 113627
tmp <- paste0(ev, od) #pairing ev and od
cat("The head of paired even and odd chapters",head(tmp))
## The head of paired even and odd chapters 228761441729 4177376732013505 6166306051212841 876124672073345 10110184391292505 121121799111241950
cat("The tail of paired even and odd chapters",tail(tmp))
## The tail of paired even and odd chapters 1041037103418 106521105627 108414107829 110423109731 112519111627 114724113627
tmp <- paste0(tmp, collapse = '')
as.bigz(tmp) %% 19  #mod 19 must be 0
## Big Integer ('bigz') :
## [1] 0

Here is the 800 digits length big number:

“22876144172941773767320135056166306051212841876124672073345101101843912925051211217991112419501453834134485716129184815100661181111587171121562201361357199997522791283211131178246513232311910562622813242578900288914422794116330618212970982323137631355543455888337413073684734354678238897393718386940861230397611814254864415579844603504390840463664945384924830564473954650463774919357525031651613645456346536336456973835579356582347957305796014356592545162121816115230641924663121856613258651329368533056731337704522169532647229290712923174572607321204763224775411687841178775118580431377947183822085813010884261128337173861865852311388279687207690218689311439222759116589493193124496207695938989989763410012449994010293210112401041037103418106521105627108414107829110423109731112519111627114724113627”

One can just copy the big number and paste it into a web based big number calculator and test it herself.

We witnessed that the even and odd pairing coding evidence between even and odd chapters of Quran considering all the 6348 verses. I will show in the next chapter that the same even and odd coding pattern also exist in the numbered 6236 verses too. Therefore, in this section, we performed one trial and observed one success considering the even and odd pairing coding pattern. We add these observations in the even and odd counters to be able to calculate the probability separately as well in the end of the main chapter of this chapter.

evenodd_tested_nums <- evenodd_tested_nums + 1 
evenodd_success_nums <- evenodd_success_nums + 1

4.1.2.5 Even and Odd chapters at the chapter level Evidence in the 6236 numbered verses

In the previous chapter, Evidence 4.1.2.4, we had observed the even and odd coding pattern of the Evidence 4.1.2.3 in the text type of 6348 verses. As per the rules, we have to test each coding pattern in both text types. In this evidence, we will see that the same even and odd coding pattern also exists in the text type of 6236 numbered verses.

In the following, considering all the 6236 numbered verses, we observe that the code is not only multiple of 19 but also multiple of 19x19 (361). So, with this code and the previous one, we observe that both text types of Quran (6236 numbered and all 6348 verses) have this same exact same even and odd pairing coding pattern over its text. Here is the proof of this evidence in the following reproducible code:

ev<- dfVCwl[(dfVCwl$Chapter_index%% 2 == 0), ]
cat("The number of even chapters is",nrow(ev))
## The number of even chapters is 57
od<- dfVCwl[(dfVCwl$Chapter_index%% 2 != 0), ]
cat("The number of odd chapters is",nrow(od))
## The number of odd chapters is 57
ev <- paste0(ev$Chapter_index,ev$Verse_sum,
               ev$cwords)
cat("The head of concatenated even chapters to be paired",head(ev))
## The head of concatenated even chapters to be paired 22866140 41763763 61653056 8751242 101091839 121111795
cat("The tail of concatenated even chapters to be paired",tail(ev))
## The tail of concatenated even chapters to be paired 104933 106417 108310 110319 112415 114620
od <- paste0(od$Chapter_index,od$Verse_sum,
               od$cwords)
cat("The head of concatenated odd chapters to be paired",head(od))
## The head of concatenated odd chapters to be paired 1729 32003501 51202837 72063341 91292505 111231946
cat("The tail of concatenated odd chapters to be paired",tail(od))
## The tail of concatenated odd chapters to be paired 103314 105523 107725 109627 111523 113523
tmp <- paste0(ev, od) #pairing ev and od
cat("The head of paired even and odd chapters",head(tmp))
## The head of paired even and odd chapters 228661401729 4176376332003501 6165305651202837 875124272063341 10109183991292505 121111795111231946
cat("The tail of paired even and odd chapters",tail(tmp))
## The tail of paired even and odd chapters 104933103314 106417105523 108310107725 110319109627 112415111523 114620113523
tmp <- paste0(tmp, collapse = '')

#Test mode 19
as.bigz(tmp) %% 19 # This should result 0 if multiple of 19.
## Big Integer ('bigz') :
## [1] 0
#also test mode 19x19 =361
as.bigz(tmp) %% (19*19) 
## Big Integer ('bigz') :
## [1] 0

As we observed the 798 digits length big number of this code is multiple of 19 too. As you will see, this number is not only multiple of 19 but it is multiple of 19x19, which makes it more strong in that regard. One can just copy the below printed big number of this evidence and paste it into a web based big number calculator and test it herself. For example, this one or another web application for any precise big numbers calculator, such as this (“Good Calculators” 2019) can be used.

Here is the 798 digits length big number:

“228661401729417637633200350161653056512028378751242720633411010918399129250512111179511123194614528301343853161281844159965718110158317111155820135135319989712278127921112117424641319231181052262271320257789628881438279311593060817296997832303723134550345488433731303368373035457783888735371828654085122639751177425386041547944459346438983646356454537488482956047385425045373491835352493125160360545534253623605696379557835258224755729575601335259244476211177611422664182426311181661225465122896852301673033370442176952260722828671282277456256732020076312437540164784017477501818042133794617982198181291048425108833616986176185221098826928719729020828930139922171911554948279311409619729583498894975301001140998361028281011136104933103314106417105523108310107725110319109627112415111523114620113523”

We add these observations in the even and odd counters to be able to calculate the probability separately as well in the end of the main chapter of this chapter.

evenodd_tested_nums <- evenodd_tested_nums + 1 
evenodd_success_nums <- evenodd_success_nums + 1

4.1.2.6 Evidence to silence 2: Harmony among Chapters, Verses and Words

This is the second most important key coding pattern based evidence, which is also based on chapter Al-Fatiha. As I presented before, I had discovered Evidence 4.1.2.3 on February 10, 2020 and then added that into the e-book of this book right away. The rule of Evidence 4.1.2.3 was obtained from the most well known and recited chapter, Al-Fatihah, which therefore might arguably be considered as the most important chapter in Quran. As presented before, this chapter has very explicit 19 based coding with the natural numbers of its text. The chapter index of it is 1, the number of verses of it is 7 and the number of words in it is 29. When we concatenate them in the natural order it makes 1729 and it is multiple of 19 as 19x91. In Evidence 4.1.2.3, I had applied the same coding pattern of Al-Fatiha to the full text of Quran and showed that the same key coding pattern also exist in the full text of Quran too. The hypothesis was that the coding patterns in Al-Fatihah might be left as a clue that leads us to the 19 based design over the full text of Quran.

However, there is one more independent coding pattern in the same chapter level numbers of Al-Fatihah, which is based on the digit sum of the same natural numbers as follows: 1+7+2+9 = 19. This is so obvious as the digit sum is exactly 19. So, I set my next hypothesis similar to what I did in Evidence 4.1.2.3. I hypothesized that the same pattern exist in the whole text of Quran and God might have left this apparent coding pattern to us as a clue that might lead us to the 19 based design over the full text of Quran. After testing this hypothesis, I witnessed that it is also correct and I discovered this new evidence, Evidence 4.1.2.6 of this chapter. Along with Evidence 4.1.2.3, these two evidences suggest that the two apparent coding clues of Al-Fatihah exist in the full text of Quran as well. They are so clear and apparent such that there is nothing much to argue on these 19 based evidences, Evidence 4.1.2.6 and Evidence 4.1.2.3, which are based on the two clue coding patterns of Al-Fatihah. These evidences suggest that the number of chapters, verses, words of Quran might be designed with the 19 based coding system of the text of Quran and unchanged since the year 632 when Quran was fully revealed. Since we witness that both of the apparent coding clues of Al-Fatiha also exist in the full text of Quran, along with their follow up even and odd coding pattern evidences, then we can rationally consider that the Quran is intact and unchanged from the beginning till our current time as there is an intact 19 based design over its text. Moreover, the observed 19 based coding designs over the full text of Quran are complex and hard enough to fairly say that they could not be performed by the people of that time and might only have been done by a supernatural power that we Muslims consider as God, who is also the author of Quran. Also, since we did not use the number of letters in those codings, these evidences should exist in almost all of the text versions of Hafs mushafs of Quran.

The evidence I present in this chapter exist in the numbered 6236 verses of the text of Quran. This means out of the two chapter level clues, namely the key coding patterns, of Al-Fatihah, the first clue pattern exists in all the verses (6348 verses, including unnumbered Basmala verses) and the second clue pattern exists in the numbered verses of Quran (6236 numbered verses). This observation also supports the conclusion of this book, which suggests that both type of the text of Quran are under the 19 based coding system together.

Let’s again remember the head of the table over which we will witness the evidence.

x<- dfVCwl
knitr::kable(head(x), booktabs = TRUE,
  caption = 'Table head of the numbers at chapters in Quran.')
Table 4.2: Table head of the numbers at chapters in Quran.
Chapter_index Verse_sum cwords cletters
1 7 29 143
2 286 6140 26249
3 200 3501 14985
4 176 3763 16332
5 120 2837 12206
6 165 3056 12726

Let me shortly describe how we obtain the big coding number to be tested. For each of the 114 chapters, I first applied the observed key coding pattern, namely, digit sum pattern (as in Al-Fatiha 1+7+2+9=19) over the chapter level numbers of each chapter and obtained the representation number of each chapter. For example, the first chapter Al-Fatiha is represented by 19 as we compute the digits sum of the chapter index (1), the number of verses (7) and the number of words (29) as this 1+7+2+9=19. We perform the same process for all the 114 chapters and obtain the representation numbers of each chapter. We then concatenate them from first chapter till the chapter 114 in the natural order as usual and obtain the single big representation coding number of the full text of Quran. Let me illustrate the coding pattern of this evidence first as follows, where DS stands for the digit sum of the number in the squared brackets:

DS[Chapter 1 | Total Verses in Chapter 1 | Total Words in Chapter 1] DS[Chapter 2 | Total Verses in Chapter 2 | Total Words in Chapter 2] . . . . . . DS[Chapter 114 | Total Verses in Chapter 114 | Total Words in Chapter 114]

If we use the real numbers of all the 6236 verses in the above coding pattern, it would be like this:

DS[ 1 | 7 | 29] DS[ 2 | 286 | 6140] . . . . . . DS[114 | 6 | 20]

And, the final big number after all the digit sum and the concatenations would look like this:

192914 . . . . . . 14

See below for the reproducible proof of this evidence. I will print out this 227 digits length big number in the end of this chapter for you to be able to test easily. This number is based on all the numbered 6236 verses of Quran. As you will see, this number is not only multiple of 19 but it is also multiple of 19x19, which makes it more strong in that regard.

tmp <- paste0(dfVCwl$Chapter_index, dfVCwl$Verse_sum,
                dfVCwl$cwords)
cat("Head of the concatenated numbers per chapter:", head(tmp))
## Head of the concatenated numbers per chapter: 1729 22866140 32003501 41763763 51202837 61653056
cat("Tail of the concatenated numbers per chapter:", tail(tmp))
## Tail of the concatenated numbers per chapter: 109627 110319 111523 112415 113523 114620
#Get digit sum per chapter
tmp <- sapply(tmp, digitsum)
cat("Head of the digit sum of the concatenated numbers per chapter:", head(tmp))
## Head of the digit sum of the concatenated numbers per chapter: 19 29 14 37 28 32
cat("Tail of the digit sum of the concatenated numbers per chapter:", tail(tmp))
## Tail of the digit sum of the concatenated numbers per chapter: 25 15 13 14 15 14
tmp <- paste0(tmp, collapse = "")  
as.bigz(tmp) %% 19 #Test if remaining is 0 with mod 19
## Big Integer ('bigz') :
## [1] 0
#also test mod 19x19 = 361
as.bigz(tmp) %% (19*19) 
## Big Integer ('bigz') :
## [1] 0
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 227

As per the rules, we must also test this key coding pattern in all the 6348 verses as well and thus we have one success out of two trials for this evidence coding pattern. On the other hand, there is also a related coding in all the 6348 verses as presented in the following subsection, Fact 4.1.2.7.1, as a fact.

Let’s add the number of trials and successes into the special counters of the chapter Al-Fatihah based codings as follows.

alFatihah_tested_nums <- alFatihah_tested_nums + 2 
alFatihah_success_nums <- alFatihah_success_nums +1

For the reference, to the best of my knowledge, Evidence 4.1.2.6 is also first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself. In case if I find out Evidence 4.1.2.6 had been available in another article, then, in such a case, I surely add a citation and update the online version of this book.

Here is the 227 digits length big number:

“19291437283226293332282827234235302844232038233044253742502521202336393040424028342841353933333433272126252835454033352022252127332625253025293514352726293143212529362827293435332125221830293424383571321122016192213251513141514”

4.1.2.7 Even and Odd chapters at the chapter level Evidence with digit sum

As per the rule, for each key coding pattern based evidence, in this particular case that is Al-Fatiha based evidence, we have to test the even an the odd pairing coding pattern over the same numbers and with the predecessor coding pattern. This chapter provides the even and odd coding pattern as a compulsory follow up to the Evidence 4.1.2.6 considering all the 6236 numbered verses, which is also the same text type of its predecessor evidence. In the following, considering all the 6236 numbered verses, we first classify the even and odd chapters and apply the digit sum coding pattern of the predecessor Evidence 4.1.2.6 to each of the chapters and pair them from even chapters to odd chapters. We then obtain the big representation coding number after concatenating those in the natural order as always.

Let me also illustrate below the descriptions of the even and odd pairing coding pattern applied in this particular evidence along with the digit sum coding pattern of the predecessor evidence. As mentioned before, the even and odd coding pattern closely resembles to the double helix of the DNA structure, where one strand is even and the other strand is the odd numbers in our case:

DS[ [Chapter 2 | Total Verses in Chapter 2 | Total Words in Chapter 2] [Chapter 1 | Total Verses in Chapter 1 | Total Words in Chapter 1] ] DS[ [Chapter 3 | Total Verses in Chapter 3 | Total Words in Chapter 3] [Chapter 4 | Total Verses in Chapter 4 | Total Words in Chapter 4] ] . . . . . . DS[ [Chapter 114 | Total Verses in Chapter 114 | Total Words in Chapter 114] [Chapter 113 | Total Verses in Chapter 113 | Total Words in Chapter 113] ]

If we use the real numbers in the above coding pattern with respect to the 6236 numbered verses, it would be like this:

DS[ [ 2 | 286 | 6140] [ 1 | 7 | 29] ] DS[ [ 4 | 176 | 3763] [ 3 | 200 | 3501] ] . . . . . . DS[ [114 | 6 | 20] [113 | 5 | 23] ]

And, the final number after concatenating them all would look like this:

29193714 . . . . . . 1415

We witness below that it is also multiple of 19 as we can see in the following reproducible proof:

# dfVCwl has the chapter level numbers table of the 6236 numbered verses.
# We only use the chapter, verse and words numbers by specifying the table column indexes 1,2,3.
x<- dfVCwl[,c(1,2,3)]

ev<- x[(x$Chapter_index%% 2 == 0), ]
cat("The number of even chapters is",nrow(ev))
## The number of even chapters is 57
od<- x[(x$Chapter_index%% 2 != 0), ]
cat("The number of od chapters is",nrow(od))
## The number of od chapters is 57
# Get digit sum of each chapter level numbers both for even and odd
ev <- apply(ev,1,digitsum)
cat("The head of even chapters as digit sums: ",head(ev))
## The head of even chapters as digit sums:  29 37 32 29 32 28
cat("The tail of even chapters as digit sums: ",tail(ev))
## The tail of even chapters as digit sums:  20 19 13 15 14 14
od <- apply(od,1,digitsum)
cat("The head of odd chapters as digit sums: ",head(od))
## The head of odd chapters as digit sums:  19 14 28 26 33 28
cat("The tail of odd chapters as digit sums: ",tail(od))
## The tail of odd chapters as digit sums:  12 16 22 25 13 15
# Pair even and odd digit sum numbers
tmp <- paste0(ev,od)
cat("The paired head of the digit sums of even and odd chapters",head(tmp))
## The paired head of the digit sums of even and odd chapters 2919 3714 3228 2926 3233 2828
cat("The paired tail of the digit sums of even and odd chapters",tail(tmp))
## The paired tail of the digit sums of even and odd chapters 2012 1916 1322 1525 1413 1415
tmp <- paste0(tmp, collapse = '')
cat("The mod 19 is zero as follows: ")
## The mod 19 is zero as follows:
as.bigz(tmp) %% 19  #0
## Big Integer ('bigz') :
## [1] 0
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 227

Here is the 227 digits length big number:

“29193714322829263233282823273542283023443820302325444237255020213623303942402840283435413339343327332621282545353340203525222721263325252530352935142627312921432925283629273534213322253018342938247352113201219161322152514131415”

One can just copy the big number and paste it into a web based big number calculator and test it herself.

We witnessed that the pairing with digit sum coding pattern between even and odd chapters of Quran considering all the 6236 numbered verses is under Al-Fatiha based 19 system of the text of Quran too. As per the rule, we also need to test the same even and odd coding pattern for all the 6348 verses. Therefore, we have two trials and one success in this evidence. Again remember that we always pair in the direction from even to odd numbers as per the rules.

evenodd_tested_nums <- evenodd_tested_nums + 2 
evenodd_success_nums <- evenodd_success_nums + 1
4.1.2.7.1 Fact as addition to Evidence to silence 2: Harmony among Chapters, Verses and Words

When I see interesting codes that are not within the boundaries of the set rules I might still share them as a fact. I do not classify them as part of the 19 based system but they might be interesting to be aware of them anyways. In Evidence 4.1.2.6, I showed that the coding pattern of the first chapter of Quran Al-Fatiha also exist in the full text of Quran. The coding pattern of Al-Fatiha is based on digit sum of the chapter level numbers as 1+7+2+9=19. In Evidence 4.1.2.6, I extended this coding pattern to the full text of Quran using the default coding pattern, namely concatenation of the natural numbers in the natural order. We observed this coding pattern was successful in the numbered 6236 verses of Quran in Evidence 4.1.2.6. However, there is also the following coding with the digit sum of the concatenated numbers exist if we look at the numbers of 6348 verses. Basically, not the big number itself but digit sum of the coding of Evidence 4.1.2.6 in all the 6348 verses also multiple of 19. I present this coding as a fact as follows:

tmp <- paste0(dfVCWL$Chapter_index, dfVCWL$Verse_sum,
              dfVCWL$cWords)
cat("Head of the concatenated numbers per chapter:", head(tmp))
## Head of the concatenated numbers per chapter: 1729 22876144 32013505 41773767 51212841 61663060
cat("Tail of the concatenated numbers per chapter:", tail(tmp))
## Tail of the concatenated numbers per chapter: 109731 110423 111627 112519 113627 114724
#Get digit sum per chapter
tmp <- sapply(tmp, digitsum)
cat("Head of the digit sum of the concatenated numbers per chapter:", head(tmp))
## Head of the digit sum of the concatenated numbers per chapter: 19 34 19 42 24 28
cat("Tail of the digit sum of the concatenated numbers per chapter:", tail(tmp))
## Tail of the digit sum of the concatenated numbers per chapter: 21 11 18 19 20 19
tmp <- paste0(tmp, collapse = "")  
tmpd<-digitsum(tmp)
tmpd %% 19 #Test if remaining is 0
## [1] 0
cat("The digits sum of this big number is", tmpd)
## The digits sum of this big number is 779
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 227

Also, here is the “227” digits length big number. Recall that not this number but the digit sum of it is multiple of 19 and it is just presented as a fact but not as an evidence.

“19341942242831343319243332282040263349282534282631303338372126252841353545473624393328223538383038322622303340413638312518212632293130303521253119313231343639262125322423343040292630272326343029433112917171621152718211118192019”

4.1.2.7.2 Fact

There is also an interesting relation between Evidence 4.1.2.3 and Evidence 4.1.2.6. As I mentioned before, both of these two evidences are based on the two clue evidences of Al-Fatiha and one of the same clue patterns exist in Evidence 4.1.2.3 over all the verses (6348 verses) and the second clue evidence of Al-Fatiha exist in Evidence 4.1.2.6 over all the numbered verses (6236 verses). As mentioned before, this suggests that both text types are under 19 based coding of the text of Quran. Here, in this fact, I will present an interesting relation between these two evidences as a fact.

The relation between both of the numbers of the two evidences, Evidence 4.1.2.3 and Evidence 4.1.2.6, is as follows. The tested number of Evidence 4.1.2.3 is 800 digits in length. The tested number of Evidence 4.1.2.6 is 227 digits in length.

The fact is that, the digit lengths of these numbers are 800 and 227. The digit sum of these numbers is exactly 19 as if they complement each other.

4.1.2.8 Verse level Harmony among Chapters, Verses and Words as Evidence

This evidence is based on the key coding pattern that we observed in Al-Fatiha at the its verse level numbers. Therefore this evidence is also part of the Main 19 System presented in this book. In this evidence, we will witness that chapters, verses and words are in harmony at the verse level numbers too and within the Al-Fatiha based 19 system. We had already observed the 19 based harmony among chapters, verses and words in Evidence 4.1.2.3 and Evidence 4.1.2.6 at the chapter level numbers. In this evidence, Evidence 4.1.2.8, we will again witness 19 based harmony among chapters, verses and words, but this time, at the verse level numbers.

As you will recall, in Evidence 4.1.2.3, we had learned the rule to get the key coding pattern of the evidence to be tested from the most well known chapter of Quran, Al-Fatihah. Here, we learn another key coding pattern from Al-Fatiha to get the evidence coding number and use it in this current evidence, Evidence 4.1.2.8.

Here is the key coding pattern that we observe as a 19 based coding in the first and most well known and recited chapter of Quran, Al-Fatihah:

In the chapter Al-Fatihah, at its verse level numbers, for each verse, we sum the chapter index, verse index and the number of words in that verse. Since there are 7 verses, I will present the calculation here and get the single number to be tested that represent Al-Fatihah.

Chapter index of Al-Fatihah is 1 as it is the first chapter of Quran. The first verse of it has 4 words. Then, we get the representation number of the first verse as this: 1+1+4=6. If we perform this for all the 7 verses of Al-Fatihah, the we get the representation numbers of each of the 7 verses as follows:

1 + 1 + 4 = 6

1 + 2 + 4 = 7

1 + 3 + 2 = 6

1 + 4 + 3 = 8

1 + 5 + 4 = 10

1 + 6 + 3 = 10

1 + 7 + 9 = 17

Now we have the representation number of each verse of the chapter Al-Fatiha. We then concatenate them as the classical operation of this book by concatenating them in their natural order. We get the following single number that represent the 19 based coding design in Al-Fatiha as : 6 7 6 8 10 10 17

6768101017

Now we observe, this number is multiple of 19 as follows:

tmp <- "6768101017"

#Test if the remaining of mod 19 is 0
as.bigz(tmp) %% 19 
## Big Integer ('bigz') :
## [1] 0
cat("number of digits on this number is", nchar(tmp))
## number of digits on this number is 10

As we witnessed, there is an apparent 19 based coding on the text of Al-Fatiha with its verse level natural text numbers. I have not seen this particular 19 based code on Al-Fatiha before anywhere else. Therefore, if it was not published anywhere else before, this code of Al-Fatiha should also be cited among the novel contributions of this book.

Before testing the evidence code of this key coding pattern let me briefly talk about another interesting fact on it. The digit sum of that single big number, 6768101017, is 37. Also, when divided by 19 to test whether it is under the 19 based coding system, the quotient is 356215843. Interesting enough, the digit sum of this quotient is also 37. I recalled this number instantly because at the chapter level sums, Al-Fatiha has this number as follows: Al-Fatiha is chapter 1, has 7 verses and has 29 words. When summed this also gives 37. This might or might not be a coincidence but I wanted to share it here as a tiny interesting fact.

Back to the main point, we just witnessed that there is the above mentioned 19 based key coding pattern in the first and most well known and recited chapter of Quran, Al-Fatiha at the verse level data too. The hypothesis I put forward was that the same code should also exist over the full text of Quran as it might be left as a clue. This means, we infer the rule of coding pattern from Al-Fatihah to get the coding number of the full text of Quran to be tested. As we witness below for this current evidence, the same 19 based coding of Al-Fatiha also exists over all the text of Quran as well.

Let’s first remember the head part of the table of the verse level numbers of the full text of Quran from all the 6348 verses.

x<- unQuran
x$VerseI <- NULL
x$vletters<-NULL
knitr::kable(head(x), booktabs = TRUE,
  caption = 'Table head of the numbers of verses in Quran.')
Table 4.3: Table head of the numbers of verses in Quran.
chapter verse vwords text
1 1 4 بسم الله الرحمن الرحيم
1 2 4 الحمد لله رب العالمين
1 3 2 الرحمن الرحيم
1 4 3 مالك يوم الدين
1 5 4 إياك نعبد وإياك نستعين
1 6 3 اهدنا الصراط المستقيم

Let me summarize the key coding pattern to be tested over all the text of Quran. In this Evidence 4.1.2.8, we first sum the chapter index, the verse index and the number of words of each verse, which gives the representation number of each of the 6348 verses. We then concatenate each of those representation numbers in the natural order and get the single big representation number of all the 6348 verses of Quran. As we witness in the following, this representation coding number is also multiple of 19 and thus under the key coding pattern based 19 system of the text of Quran, which uses Al-Fatiha as the key source in this particular case.

Also, here is the illustration of the coding pattern I described:

[Chapter 1 + Verses 1 + Total Words in Verse 1] [Chapter 1 + Verses 2 + Total Words in Verse 2] . . . . . . [Chapter 114 + Verse 6 (last verse of Quran) + Total Words in Verse 6]

If we use the real numbers regarding the 6348 verses in the above formula, it would be like this:

[ 1 + 1 + 4] [ 1 + 2 + 4] . . . . . . [114 + 6 + 3]

And, the final number after all the concatenation would look like this:

67 . . . . . . 123

Below is the proof of Evidence 4.1.2.8.

x<- unQuran
tmp <- x$chapter + x$verse + x$vwords
cat("The head and tail of the numbers that represent each verse.")
## The head and tail of the numbers that represent each verse.
head(tmp)
## [1]  6  7  6  8 10 10
tail(tmp)
## [1] 119 118 119 122 124 123
tmp <- paste0(tmp, collapse = "")  
cat("Mode 19 test of the big coding number:")
## Mode 19 test of the big coding number:
#Test if the mod 19 is 0:
as.bigz(tmp) %% 19
## Big Integer ('bigz') :
## [1] 0
cat("Number of digits on this big number is", nchar(tmp))
## Number of digits on this big number is 15430

As we see, the mod 19 is zero and thus the big number is under Al-Fatiha based 19 system of the full text of Quran.

We also have to try this coding pattern in the text type of 6236 numbered verses. Thus, we have two trials and one success for this evidence. As per the rules, since we used the sum operation in Al-Fatiha, we do not use digit sum again as their results are identical. Sum operation has always the priority over digit sum in this book as defined in the general rules. Because, as per the Rule 5 of Chapter 4.1.2.2, we only use one of the coding operations, and use the one with higher importance only, if the resulting coding numbers are identical. Because the numbers of the Al-Fatihah is single digit, that coding pattern could also be interpreted that way but because of the priority of operations rule we do not test it as the sum operation has higher importance than the digit sum operation as per the rule. Let’s add the trials and successes into the special counters of the chapter Al-Fatihah based coding patterns as follows.

alFatihah_tested_nums <- alFatihah_tested_nums + 2 
alFatihah_success_nums <- alFatihah_success_nums +1

For the reference, to the best of my knowledge, just like all the other evidences, Evidence 4.1.2.8 is first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself. In case if I find out Evidence 4.1.2.8 had been available in another article, then, in such a case, I surely add a citation and update the online version of this book.

One can just copy the below printed big coding number of this evidence and paste it into a web based big number calculator and test it herself.

Also, here is the 15430 digits length big number:

“6768101017641113181519212121242421343224293626404735474539616749435060484658495657505751566152525655566169696265626283726577807990123888079797789938989978486113961018891105105969411410113610111710011711912310512211310612311711211111212517811711913212712612814412913113114614612913213014413115313813614314514915814314714715014215116215115216915815015517215816519018017916215616916818317016016616916916816818418117317617317420919818019218718219419118920020518819223021819019819620020021823120525420721820521820021021821127122922621322621721223022322122022022622322923323426424623924327623624724826225124124024124123627027726227826729926128426327424825626924925127325526330229228031126728026330727830728228330332830128728827630529430329928328728729330230529332228929829429829629841331731431433775121725192256262529282445414230263948494236464243545158545948464744566375566260645854676956735697726275656389727168777089807299848984848582859210885114881071101109611792100116101107991001031071181101201081091091251141221181211181401211221261201221231361251501301321271371431521501441351371361401431461391431481461391401471501611541531471511671501581581741721701691611651591731951812321791961741681921811851781741921881782031871851921851901931921892011921982182132061942141992112132112112012042152062162112412062072222322148342235222547302528278610435314134414658413643817087444440574747635678617256605859576096625888807267647567677670808187929480828391889777759181869396991101001291181019610999117110111105108114121130127156113138132108128114113135128168127130124117125133132127126130150144139140132130144131132147147144146142171161155145167146149152177169161148157177181165163166160168162166167176163173194177181166195170177178179192192182184183182184184198229194203190194230930606940537331402422406250444439645353484145494643455649474462777252546554565864114736390817768104876579857397737286758592828081116829597104949495111103871059710610094104101113109105104981101051391111161101221231511211291121151211321161291331301631381351291791291391331411371661511341481361021222121234329272429274328443031403162394140414063435050445564515362695262666261595963706075676963847483748767838578968884808680988178978712111686103949097101102971111099910311198100102110112112141120148129118114119117149121125124118125119125126139136129139141131143132140134134155138147152144159159141143170143164147147157147160173163170167166178164172190190180166191163183199193176177169176198201184182183177177199192119222421241920242728343633262630393743523357424339536557525354656952615481856070586486796271676971777769989370789382877679808385888785821039410392115106105911009110110099102979913011711311713810910411211611412012111311411612613111812612013012412012112512412512313112613313413513113013013213214913913714915515115814716015115316415315417316915615616617219116617218916717717419616917417417620319320719717421018818619719019018419318921618719720519518619521319319521620119519719520221420323122322520920520621221522821221421721321722021623321922822412272717232425382328364143342835444632514037404253465347465654565953635665636263588285717166677292757168777979737675807510181829181100100958688103921259410010519254435403339333129333942343549445052454039526657534865676263565672638177766492657465676870737373757483748581757783879196838890879195931101051041059412996941019810811411799117111110113107111111116126124121133122119122123135134132128128129130127140140145134157137142145142142153158137181148153149151146151157151153141638424238303224343439494034644441574646537359774652645649566853536174636964686266636464757169658172727574858171827889891138277898510192103889311598100106999698104951001089911510710510111312711012710811612712611511411512912412412512712314112413214114113015222239233533494131343250424140436752415541404846454867596351735754635864596860776373777471817778797976818081738589838288100959793879586919599919698969110210111610310212210510212211110811913512311012111912412311611311811811912013612513012012612613313714013913213514113913315313613914514814113615016182031323343263535383532383544324848484165435855605749535160756362565875757661847372806468807375728492768080758576798882798892931031021071109797889697929812111310610412911110511310910911112012211112511211511711811312811811912515913412812112612812513313715014114617294140444339353627375934455439747258474047545144615559525071955885616774697260667073711831303337404632356057544343383437475447396980545351535954475666715663626577706663636966847372727269707579192224252727303032313234323538383837404543474944464749495553495356595456575657645961686267656472717070707675777779777980818181858394908689889092929197959497989910010110310110511410610911810910911011011111511311911911911920263626282929373335394343425142364044414644495249566364635366626071608380677266667563747277697181797379798180778480839488100959694979998971091061091091041001181211121091131211221041061141121211131171291221271401261291261271311221251251341311351321321461361351321441421521381431531541381491541471441471511571631541571522139312934393447364236365243385347475348494948655354535357595961577268636967627468687266827482837475729378868587869293971029194901009197102100108104103100103100104106105109108111107112112112116116113124120117119121136126126124141129139131137135129135131132142133131149149223035242839353632374436394251515369587551717348595167607675607764626565667164767367807271867776829594828381869292105958591909210191959591949710010498101108102107119108114108108135110112105129118119110123115113124132125133123131128123130134126133137133135132145152232126273737333941424241393839434547454750554656535263575958576157616270636768706768777673767876818278807879848383791068991919291101969396959897999910810211910810410410710410810711111011011011511111211811411712211711912412613124222727302938343633483641384545464251434548534749504951505452545556565962626481956370687275738878747976839283838285928786968796949798929410598117111107107105108115106104115118111109113114133122120121127120120117134120132145130132128128130129136132129133141141140140143147151146145150145145154156148161156153154159165158170169164166173166252934393540354238383942404441444449525346495650676155546463696561656566746666767175767883777988777878818479838390858788889090939295989796989610010110911110210911011311411111611511412111311313111712113012312112012712312713813012912813113213514113813313314014313914014326334637379741414346415848455359476177584847566755726463705976746366767285797371978073697781918381808081101919793908798889898101100981149810697100110111123124105108108111144272730313132393736373640424258434450545552594963735854826660606069816467637073676872717386767677757884868385828586878687939197100959598941019910311010410110510910711211110911311011311811511311711512511711813812112212312512812712613013913413113613313613713713614614114214214414614615015814828345245474047404342436348515355545049635380726057606670747069133731057110774807685978673105781008186838090938694101117889213210210716112511411029354650453943485043524446474753515864596565575756576064606565677266706970757171817784778486768386848483849391948696961019897100100941019510311510211110510610811210910611430283235414240444240444144474648494854525258565459565760636361646465676969676970737974767979757777968388868484848587878988959410293969510199991021031031031061061051091081091101111161151161161181171201211191201241261241241261291281291301301351371351351391371371461391421441461441461511481531511501551531521571551551641591591601601631621621671711681671751711701751731731821771761781801791811841841911901891861941901901941921922011952032021992001992012012052082062062092082082172132112182152162212222192252242222222232252242262322292312312342332332322352372392412392402422422482432472492472482482502532532532532582572723134323941424050494357495848525762536570595763616866616166656563727274707977768210580838299858687859084879085899398919198114109105110110106107103107105106105108110109112115108113113118122125121124120128132133127130135134131323034405145465749555549565852815754628067596178677965847184787985707678818395797878808785919493102901018588969498971101031071031069810910599101106110104113118121114110120133131134128124126136125130132129131135333141434346454858457046595359505873606168586865738167747181657577857571827383819789838083951009590929595100948997949310493101103105114108110101111114107343234414643474760715349475249545753566361716567757164758575827073817075818284919286868983869395106899990939710897106961079710035333737444455544748685661596275726665618173686962716779708577818595923634425360544449485556546061606259625863736267696668767667726737484742656668574964595058726161647465877671737473747573777680788591819893118938590827889858685889310514511911015698118103104103114112100107111104106111108109119112118123121385254694850565758725757736675696659697264768279756871737470749781101827783948193848894111899310498899110095959710339605660505554556861698075766761575787585960736271736884808073828881808489978398108959610410910540384042434449515457545962576166585866646764667465657070777378787479807985828282918584888692931079193939710199101989999999911010210610410511211111311111711411911411511711812112412512512713112812741404142444949495450546052545558605659636365666764666769717177747375758279797982818282838487869189899295939795979810098102102102105104107106109111110110111113113115115117118118119121121122122124126128128128129129130134133134134136137141140142142141167144145149148147149149150152154160156157157157158160161162163164166167168167169170171172173174175176176178178180182182183185187186188190189191193193193194195194197199205200201201203205207205206207211210211213212214215215215220219219223221223424346515251565561545855585859636266636264668376947295817976757581778188827980848490869196918990949393969496999898991001071091101101071081141111091091161161181191151181281241201221231221231241251261301341301304346517559678177817271595661597372687068799181967674777774877377868081869088113888798107969410210211198110100105106113106110110105109108113111110113110118111123129123118144120132129131444248575766567464616564676762717170736575917569718484801079681857989104988610087911039197105969599106100102106102102101981071191091111101131211141101251191261371201191191171181201311261241311501281321271471381361424543475152636356586466687263788176726468738083737691787883869088778792878897911021079196101115104981161011011231051101131074644455556666071696767726793869176708270848588948879808683878287809083869589918796929993106114104110117106103115121110474547525456555858626466667661676672707478727687817578757881828410093829090879391949092949310110197104104100112106107104104103109115112111114112123116119119117120117118129122122123124125129128127134132133134138141142138139138484648555355575962586060626464656669717270707272747473757681818282848187859389918995949090939296999810010099102102104110108107106494753545870635667657467717473717486767972838092908689828785888899899396899050485464796961677979807674726910680918174939280828885104839193969296101981085156676889555764616473698174741068770808094807977788888818587898610091969496901155254655571727563616583968070769492928574868382839111310210390131536674696266738464886910093839082818577545463606364686863696569696773758075767876778479807986878687898688908991101100101101959899991031085554555657596061636463676769727176747275757678838185838388898987898989929495979698991021021031031051031031071091131161101101111131171161191185654565858596063646565666971727380747877799279838382858589898989929192959596999699981011041051041071091101065757606062616263646768696970707174757775767879101818197899793991001168990939693969897989910010110310310410510610710711410811011211411211711611611611858596363656468697072697075727475747878828079838088888588908788939391979695100979610110010310610310310610611110811011111111111311559575960616364666770687171727476757677777980818285848588879489909110593989598971029910210110410410410610610510810811011211211811412011611611812012012012212012412412612712812813013113213513413713613960606161646465666970686971727374757779807981808284878688878788899093929494959698991021011021041061071121061091111121131121141141161171171201231261241221251271241261281321321311341341341351371361371391401411421431431481471471491491521521541521521561566167706997707579808310480919791871018787961161031009593110971231071086277838288817911210487851009395918384909392868813163711027675779010385999298878496859286958889989410110064110757611678858289901269211193657372737690998480848387908311166758573769086788893879467817777898287908890948568827776828286898210085918786978796938769108978997841039787819211010270827998918895851208710310195717780888184808288948883888988969496931011021001011029999102107110109107727375767675768679818382848587908795889490919794989799981031031031051101091081061081101111191121171191221221181211201271271231311257371737677788191828485878788898790959397949494941011059910010110110110310810810810911011011111111311711711611811711912212012312312312574757677857879798282849084869088889190939495949899971001031031031101081071071091091111121161141171191201221237586807993838292838787869290889494939495951059610710310810710811476868384838789888894959295999692969998101100101106111107108105112113777779818383878687919090899195999598971011717878787980818383868788899089919395939596989799100104104102105106105107162108110111112112118117116117117120122122123124124126128127128135132131132141798081838585858585879089919494939796979899981001011021051051051061071091101101131121141161181181191228088888686898990919593959399969997999810410311010610510910610911111311411711781808182838486878889909192929695969798991021021021031041061051111081121131141131131141161171171201211201231221261251251281271311291318281838584868887889091929494979796100102101102103102104108106106110109111113112112113114119119125130126134838283848586888890909494969696981011011031021021021041041071091111121101121131141131151171191191191201221281241261261261291348483858788888991929193949596969798101102103103104106108108109110110110111112113115116119117118123121121124123126858586878889909192939495969799999910110210410710510610811011110911311411886868788899295939695959597991001001021041061108786919192909496959496981021031051041031071071061051061091091121121151131151201171201211201231211258888899092929996969710098981021031051031041051071081111101111111188989899092939598102104109110101102102103104106105109109110110908992919695969898981021001011021031041041079192929394959610397100100100103106105106107107110109929393939597100101999910110310310410410510611111011111211311311511611611893919394961001019910310310210410410710611511511111211211311611612111811911912012212112194959696991011001021021011021041061051101081101161111151139594969798991001011021041051051061111121099696979999101100101104103104109107109109111111111114117117115979598101102102103103104106107108989999100101103104104105999899101105104110106107100102102102103106106106108108109112111113115117115115116120101103104106110107102111106104113119120114127103104104106106108111112113104103104105107108110111112116114116105103105108110110111112113112115114106105107108110112110113115107105109115108109110111112113113115115116109113112112113113110109112113117111112113115113117116116112112113115113114115117118119119114116119120115117119118118121116117116119121117118119121122123118119118119122124123”

You can also access this big number from the following link:

https://github.com/quran2019/Quran19/blob/master/5.14Evidence.txt

4.1.2.9 Even and Odd chapters Evidence at the Verse level

As per the rule, for each key coding pattern based evidences, which is also based on Al-Fatiha that is also the main part of the Main 19 System presented in this book, we also have to test the follow up even and odd pairing coding pattern over the same numbers with the key coding pattern of the predecessor evidence. This chapter provides the even and odd coding evidence as a compulsory follow up coding to the predecessor evidence, Evidence 4.1.2.8. We test the follow up even and odd coding pattern over the same text type, all the 6348 verses, of Quran similar to the predecessor Evidence 4.1.2.8 that also exists in the text type of all the 6348 verses.

As per the rule, we separate all the verses into two categories as even and odd verses. If a verse has an odd chapter index then it is categorized as odd and otherwise as even. We then sum the chapter index, verse index and also the number of words of each verse, which is the key coding pattern of the predecessor evidence, Evidence 4.1.2.8, and get the representation numbers of each of the 6348 verses. Then, we pair them from even to odd and concatenate all the paired numbers and finally get the big representation coding number to be tested. Let me also formulate the even and odd pairing coding pattern used in this evidence as follows. As mentioned before, it closely resembles to the double helix of the DNA structure, where one strand is even and the other strand is the odd numbers in our case:

[ [Chapter 2 + Verses 1 of Chapter 2 + Total Words in Verse 1 of Chapter 2 ] [Chapter 1 + Verses 1 of Chapter 1 + Total Words in Verse 1 of Chapter 1] ] [ [Chapter 2 + Verses 2 of Chapter 2 + Total Words in Verse 2 of Chapter 2 ] [Chapter 1 + Verses 2 of Chapter 1 + Total Words in Verse 2 of Chapter 1] ] . . . . . .

I did not illustrate the tail of the coding as the even and odd verse numbers are not equal in length and thus not straight forward to formulate. The number of verses of even chapters is 3262 and the number of verses of odd chapters is 3086. Therefore, while pairing both vectors, naturally, the short one, which is the odd verses, starts over from the beginning part of itself and keeps pairing. As this is the most natural operation approach, it is also the default way of processing in the R programming language while pairing two unequal vectors to each other. Therefore, it does not require additional coding in R.

If we use the real numbers in the above coding pattern, it would be like this:

[ [2 + 0 + 4] [1 + 0 + 4] ] [ [2 + 1 + 1] [1 + 2 + 4] ] . . .

[ 6 6 ] [ 4 7 ] . . .

And, the final number after all the concatenation would look like this:

6647 . . . . . . 119174118192

As we will see in the result of the following R code, this big number is multiple of 19. Here is the reproducible proof of the evidence of this chapter:

x<- unQuran # all the 6348 verses are used
#Get even and odd chapter verses
ev <- x[(x$chapter %% 2 ==0),]
cat("The number of even verses is",nrow(ev))
## The number of even verses is 3262
od <- x[(x$chapter %% 2 !=0),]
cat("The number of odd verses is",nrow(od))
## The number of odd verses is 3086
x<- ev
ev <- x$chapter+ x$verse+x$vwords
cat("The head of even chapters to be paired as sum: ",head(ev))
## The head of even chapters to be paired as sum:  6 4 11 13 18 15
cat("The tail of even chapters to be paired as sum: ",tail(ev))
## The tail of even chapters to be paired as sum:  119 118 119 122 124 123
cat("The number of verse of even chapters: ",length(ev))
## The number of verse of even chapters:  3262
x<- od
od <- x$chapter+ x$verse+x$vwords
cat("The head of odd chapters to be paired as sum:",head(od))
## The head of odd chapters to be paired as sum: 6 7 6 8 10 10
cat("The tail of odd chapters to be paired as sum:",tail(od))
## The tail of odd chapters to be paired as sum: 117 118 119 121 122 123
cat("The number of verse of odd chapters:",length(od))
## The number of verse of odd chapters: 3086
tmp<-paste0(ev,od) #pairing of even and odd verses' sum
cat("The head of paired even and odd chapters",head(tmp))
## The head of paired even and odd chapters 66 47 116 138 1810 1510
cat("The tail of paired even and odd chapters",tail(tmp))
## The tail of paired even and odd chapters 119174 118192 119188 122178 124203 123187
# reverse of this numbers in tmpr
tmpr <- paste0(rev(tmp), collapse = '')
tmp <- paste0(tmp, collapse = '')
#Testing the big coding number with mod 19
as.bigz(tmp) %% 19  
## Big Integer ('bigz') :
## [1] 0
#Testing the reverse of the big number with mod 19*19 !
as.bigz(tmpr) %% (19*19)
## Big Integer ('bigz') :
## [1] 0

As a fact, not only the big number itself but also the reverse of it too (as shown with tmpr in the above code) are multiple of 19 of this big coding number. Even more interestingly this reverse coding number is not only multiple of 19 but it is multiple of 19x19 (361), which makes this more interesting than a simple coding as a fact only. Since this reverse coding is not within the rules, I do not classify that as evidence in the 19 system of this book and do not include in the probability calculations. However, it may be part of another rule based system that I might not have yet seen or purely random. Therefore, I present it here for other investigators in case they might observe a rule that covers this or other similar interesting codes, which I present only as a fact but not as an evidences and thus the reverse big coding number is not within the current presented 19 System of this book.

We witnessed that the verse level pairing of sums between even and odd chapters of Quran considering all the 6348 verses isalso under Al-Fatiha based 19 system of Quran too. We need to test the same coding with the text type of the 6236 numbered verses as well as per the rule. Therefore, we have two trials and one success in this evidence and add them into our counters below.

evenodd_tested_nums <- evenodd_tested_nums + 2 
evenodd_success_nums <- evenodd_success_nums + 1

Also, below is the 15867 digits length big number. One can just copy this big number and paste it into a web based big number calculator and test it herself.

“664711613818101510191721721521122417242521193422325624262925362926284024474535414742453039266139674849494342503660464842464358544951565857545059574851465647614452565263567555565662616069646958625465676269625683737256659777728062797590651236388898072797179687777897093898980897297998484868911384968410185888291851059210510896859411411488101107136110101110117961001171179211910012311610510112210711399106100123103117107112118111110112120125108178109117109119125132114127122126118128121144118129140131121131122146126146120129122132123130136144125131150153130138132136127143137145143149152158150143144147135147137150136142140151143162146151139152143169148158146150139155140172147158150165161190154180153179147162151156167169150168158183158170174160172166170169169169161168165168159184173181195173181176232173179174196209174198168180192192181187185182178194174191192189188200178205203188187192185230192218185190190198193196192200189200201218192231198205218254213207206218194205214218199200211210213218211211211271201229204226215213206226216217211212241230206223207221222220232220214226922330229602336923440264532467323931243402762423622247402486226250251442414424039241642415323653270482774126245278492674629943261452845626349274472484425662269772497225152273542556526354302562925828064311114267732806326390307812787730768282104283873036532879301852877328897276733057229486303752998528392287822878029381302116305822939532297289104298942949429895296111298103413873171053149731410633710089434104221013511322109251054710430982511028105271398611110411635110311224112334151411214612958112411153612143132811167012987133441304416340138571354712947179631295613978133611417213756166601515813459148571366011969622258248821802472196720642475276728673476367033802681268730923994378043825283339157884297437739755391658157865293539654996511069100521296111854101819685109609970117581106411186105791086211471121671306912771156771137713869132981089312870114781139313582128871687612779130801248311785125881338713285127821261031309415010314492139115140106132105130911441001319113210114710014799144102146971429917113016111715511314511716713814610914910415211217711616911416112014812115711317711418111616512616313116611816012616812016213016612416712017612116312517312419412517712318113116612619513317013417713517813117913019213019213218213218414918313918213718414918415519815122915819414720316019015119415323016410153211542217321169211562315643166291722719124166291722718943167281774417430196311694017431174621763920341193402074119740174632104318850186501974419055190641845119353189622166918752197622056619562186611955921359193631957021660201751956719769195632028421474203832317422387225672098320585206782129621588228842128021486217802139821781220782169723387219121228116224861910325944490359740101331023997331113110929993310339111429834100351024911044112501125214145120401483912952118661145711953117481496512167125621246311856125561197212563126811397713676129641399214165131741436513267140681347013473155731387314775152741448315974159851418114375170771438316487147911479615783147881609017387163911709516793166110178105164104172105190941901291809616694191101163981831081991141931171769917711716911117611019811320110718411118211118311617712617712419912119213312122271192712217123231352413425132381282312828129361304112743140341402814535134441574613732142511454014237142401534215853137461815314847153461495615154146561515915753151631535615652263226239632358358233854971417131663467327250924275417140684377677952794173557641754080487546101458148826791598163100511007395578654886310358926412559946810060105771463167338774274427138813077327824793479347639814980408134736485448941835782468846100539573975993778746955286649156954999569168965398539661917410263101691166410368102621226610563102641226411175108711196913565123811107212172119751247412385116811137111882118781198912089136113125821307712089126851261011339213710314088139931321151359814110013910613399153961369813910414595148100141108136991501151710729105411014011344127431103912735108361162712737126591153411445115541293912474124721255812747123401414712454132511414414161130551659185220503171329533584385266135673574386935723260386635704473327148194822482441256527432758305530603257314932533451326035753863386238563758407545754376476149844473467247804964496855805373497553725684599254765680578056755785647659796188688262796788659264937210371102701077011070977697758877967797799277987912180113811068110481129851118310594113901098610989111881209012292111921259111297115951179411897113981289911810011910112510315910113410512811412110612610912811812510913310913711015011014111114611518113311193011933119371194021463932313529603457395434434743363842343637364752544347383953694780475453534851495349594854654753565466537153565763596259656177577072666863636369696766628474736872687272726669827074758279832074267536722693287829862985378733863592399343974310242915194429036100409144974110246100441084910452103491005610363100641046310653105661096210860111711076011283112801126711672116661136612475120631177411972121771366912671126811247914173129791397913181137801357712984135801318313294142881331001319514996149942397219926982797371093710633109391094110442100421184112139112381093911343121451224710445106471145011255121461135611753129521226312757140591265812957126611275713161122621257012563134671316813570132671326814677136761357313276144781427615281138821437815380154781387914984154831478314479147106151891579116391154921579115210122963093359624952898399735993699321083710244119361083910442104511075110453108691075811175110511107111073115481115911251118671146011776122751176011977124641266213165256529663471396435764073356742803872387139864277407644824195449444824983528153864692499256105509567856191559054926410163916995659561916594659766100741046698661017610871102751077611978108831147710879108881357711078112781058112984118791198311083123901158511387124881328812590133901239313192128951239813097134961269813396137100133101135109132111145102152109241102211327114271113011629115381143412136113331134813136117411213813045123451214612042127511234312745138481305312947128491315013249135511415013854133521335414055143561395614059143622762276430813195316332703968377236753773368840784274427958764383449250835483558252855992498763867396588754968294669760986092609469105819864117671116310770107731056710868115721067110473115861187611176109771137511478133841228612083121851278212085120861178713486120871329314591130971321001289512895130981299413610113299129103133110141104141101140105140109143107147112151111146109145113150110145113145118154115156113148117161115156125153117154118159138165121158122170123169125164128166127173126166130261393313446131371363713397136411374113743136461464114158142481424514453146591464715061158771485829483547465650674555397243644863507043595276447446634766477653725185587964735971659765805773576956775781609164836081658065806781721016691709769937090758771987188819877988410177100849886114769883106869784100841108311184123931249110594108861089611196144101289834975210045100479440101479540103431154210243111631054810651108531125510954106501144931633453328039724160425740605066497043745770496958133487352105577162107537465807076598557976386617368105667861100618166866583658063907293728674947010179117778876928213210510280107831618212599114851108630872885329035844187429040854489429340984491419144984711446109481054911048110541065210752103581075610554106591055610857110601096311263115611086411364113651186712269125691216712469120701287313279133741277613079135791347513177337731964183438843864684458448845885458770874689598853955994501025893739660956110168995899681026510373103811036710674106711058110965108751097711085111751167111582116731168311881117971208912183119801208312495126100124951249012692129951289512910013094130891359713794135931351041399313710113710314610513911414210814411014610114411114611415110714835153331513715037155441534415255157541554715548164681595615961160591606216375162721626616765171611688116773175681716917062175711736717379182701778517677178811808517995181921843718448191471904218965186661946819057190491946419259192502015819572203612026119964200741996520187201762057120873206742067320974208752087321777213762118021878215852169122181222982199322511822493222852229022382225782248922685232862298523188231932341052331452331192321102351562379823911824110323910424010324211424211224810024310724711124910424710624811124810825010925311925311225311825312325812125739272603256306034504055515445554668576149695580557549765667586152578157578754586259806067735962617178736768798465808480717384827888798185807084768978978183839895108799578967810480109871058541914094419342102449049101498549885496509454986097521105410355107581036010656985910963105639965101661066711064104661136711869121711147111077120741337313175134751288212479126791367912582130811328212982131831358434873286349141894689439247954793609771955397499847100529849102541025710253105561046310761106711096511167110751107111164113751138511575115821177011873118811197012175121811228212284124911269212886128861288912983129861309313495133106134891349913690137931419714010814297142106141961671071449714510014936148341474214953149601505415244154491604815655157561575415760158611606016162162591636216458166631677316862167671696917066171681727617376174671757217667176381785217854180691824818250183561855718758186721885719057189731916619375193691936619459195691947219764199762058220079201752016820371205732077420570206742079721181210101211822137721283214942158121593215842208821994219111223892219322310443984689519175100599567958197771038140723871405942564361445949735172546857705468597962915781619666765874587766776474678764736677748665806581708670907788731137888788774987910780967994851028210282111829891110851008410588106861139210693110107110911059310993108971131011119911010111398110991189911199123991291101231021181061441041201051321121291111311134511143117471145111952114631156311756118581216412466125681257212763131781288112776427243644668517352805183567355766191547858785583588658905988637762876692638762886497669183102761079491729695101811157910476987511675101811017712381105881108211379107804784458447905286549156965591588958906294649366936696769461966799669872987099741007810772109761108711081107751087811475111781098110982116841161001189311982115901189012887124931209112294123901229212394124931251011261011309713410413010413010044112421064810757104571046610356109741156411261111651146411267123671166211971119711177012073117651187512991122751226912371124841258412980128107127961348113285133791348913810414198142861381001398713891491034791539754105589670956399561066710065102741066710271102741017398711077411986109761117911072113831218011492110901258611989126821378712085119881198811799118891209313196126891249013151150561286713268127891475513857136641426146644473456955815674667460106718769706780678072946780937986779178768870888281708584878589888694100889179968094869683908711582538766807490698362866695738984916487889669921009993938310690114821048111085117771065510354115551215611057485946604861556353645563576759676269587260716076627464726475657566766978718372817085708372837288748974897387758976898189819282948295849781968798859993102891029110389103951059410390103901079310992113961169911098110100111100113991171021161021191041181105710857107601066050624861546264637964696761686769796979708070767174747275697710675807691788179741019381928180978289889785931049983100911169389969092939696101939896108985297549865995510071101721037510363104611056510683107961078011470108761109411292114921128511774116861168311682118835991571135910260103619063131645466546763706068637164716872687463766975657669776977677973807581808275857684788576887787849479898090799186105879386988795899886978810290998910291101101104100104101104101106951069810599108991081031101081125611254118561145812058116591166011863120641206512065122661206912471124721267312780128741287813077131791329213579134831378313682139856185678970896989978970927591799280958395104968099919697999198871011011048710587104961071161091031101001069558935911063976312365107641086863697170102727669757077759072103748575997492789878878284809679858392808688958888858988989094871018810093659373917297739676959010099978496801018410083103871069010383103111106671068111177108771108911182111871119011388115906094608561696110864976489659766846910370976887698171927211073102747175777780798880817984818080828288849487888683888887898788889689949096939392101941029410095101961029899999910210210110710211010410910610710773112711067310976111771127811381112911148211484116851178711787120881238912687124901229512593127971249412694128941329413210113110513499134100134101135101137101136103137108139108140108141109142110143110143111148111147113147117149117149116152118152117154119152122152120156123156123621237712583758286888081797993112831048287928583100879387958691928390848890949394929386948895131956410511096751077610311610878107851088211489779077126799281111839383668775868587739176909090868978918895939987959498689782101771717679828082818683898582851008585859185878786909789879196949394879370978296799798989199889895100851011201028710510310510110595106721077310975110761107611375112761148611679118811188311982122848185808781908287839584888694879088918997909491989297929996989510396103971039810599110102109102108102106103108104110106111105119111112108117112119113122114122113118113121114120116127117127117123120131121125120741237512276126771258512578128791277913182129821318483908284838684908588868888918890909390949495949496989699969798100101103101103103103102110102108102107104107104109107109109111111112112116110114112117113119114120113122115123117761198611983119841208312287128891248812688126941269512992134958599859686928796889989989010191100921019310694111951079610897105991129911399781017810278104791078010581106831088311086111871098811389114901188987918693919591939295909694989697959994100961049810410210210310510510610410510310710716210710810611010511110611210911210911811211711211611511711311711512012012211712212012312112412012412312612112812512789128891358913290131921329314195809888102881048610986110891018910290102911039510493106951059310999109961109911097919992989210493103941109510696105103109971061001091001111001131031141061171051171068210781107831108510984938691889387948896901009110192999410394103971029710496104100107102106101115102115103111102112104112108113106116106116110121109118111119113119112120112122113121114121119951199412596130971269813499841008310185102871048810588105891069111192112911099397949595989610196102971029810310110310210410310610310710410810699108981089910910111010511010411011011110611210711310111510311610411910611711011810712310312110412110412410612310612610886111861128711388105891039210595108931109611095111951129511397112991151001141001071021051041091061151101098811388112891129011392113921119911296113961159711310011798116981161021131031141051151031171041181051191071191081151111171101191111181111181181219011789118921199112196122951239669879869881021010010101171027103510412104171072592199322935693269525972910028101249945994110142103301032610439104481054910642111361104611142112431135411351115581165411659118489446954796449656996310175100561026210260101641025810454106671056911056108731105611697111721156211375966596639789997299711016810077101701048910380104721099910784109891098411184111851118211485117921171081158598114998899107100110101110103961041171049210510010011610210110210710299103100106103106107106118108110108120109108112109111109113125115114117122115118115121116118120140102121111122106126104120113122119123120136114125127150104130103132104127105137107143108152110150111144112135116137114136116140106143105146107139108143110148112146110139113140115147108150109161110154111153112147113151113167115150115158116158110174109172112170113169117161112165112159113173115195114181116232119179120196116174117168116192119181121185118178119174118192119188122178124203123187”

Also, as a strong fact, here is the reverse of the 15867 digits length big number, which is not only multiple of 19 but also multiple of 19x19 (361):

“123187124203122178119188118192119174118178121185119181116192117168116174120196119179116232114181115195113173112159112165117161113169112170109172110174116158115158115150113167113151112147111153110154109161108150115147113140110139112146110148108143107139105146106143116140114136116137112135111144110150108152107143105137104127103132104130127150114125120136119123113122104120106126111122102121120140116118115121115118117122115114113125111109112109109108108120108110106118106107106103103100102991021071021011001161051001049210411710396101110100110991079988981141158511710811792114851118211185111841098410989107841099910472103801048910170100771016899719972978996639665113751156211172116971105610873110561056910667104541025810164102601026210056101759963965696449547944611848116591165411558113511135411243111421104611136106421054910448104391032610330101429941994510124100289729952593269356932292191072510417104121035102710117100101021098898698796695123961229112192119891189011711812111111811111811011911111710811510711910511910411810311710511510311410211398116981161001179711396115961139911292111921139011389112881128811311010910611510410910210510010710011499115971129511395112951119611093110951089210589103881058711386112861111261081231061241061211041211041231031181071171101191061161041151031131011121071111061101101101041101051091011089910898106991041081031071031061021041011039810397102961029610195989495939791109921129111189106881058810587104851028310184100134991269813097125961199411995114121113121112122112120113119111119109118110121106116106116108113104112102112103111102115101115102106100107961049710497102941039410392999110190100889687948893869184938510983110811078210711710611710511410611310311110010910010610010997105103106961109510394104939892999297919911096110991099310995105931069510491103901028910289101861108610988104881028098141951329313192132901358912889127891281251261211241231241201231211221201221171201201171151171131161151171121181121121091121091111061101051081061621071071071051031061041051051021031041021049810096999497959896969495909392959193919186898790118891148811387109861118311083108811068010579107781047810278101113991129910599108971079611195106941019310092101919890998996889287968699859585921349512994126881268812689124871288312284120831198611976119123117122115120113119114117113114112116110112112111111109109109107107104107104108102110102103102103103103101100101979899969896949695949494939090909188888888869085868484839082848382131821297913179127781288512577125761267512274123125120131121123120127117127117120116121114118113122113122114119113117112112108119111111105110106108104106103108102109102110102105991039810397103969895999697929892949197909189908894878886958487839082878185808481821228311981118791188611676114751127611376110751107310972107951061011051031058710512010285101951008898919998987997829670978793939496948791978986908787918585851008582858985868382818280767977171821016897949887959399889578918689909076907391858775866687938311183928112679907789778211485108781071161087610375107110966410513195889586949293939490948488839091929586938710087858387921048211283799381798880828683757712562123156123156123152120152122154119152117152118149116149117147117147113148111143111143110142110141109140108139108137108136103137101135101134101134100134991311051321011329412894126941249412797125931229512490126871238912088117871178711685114841148211291113811127811177109761067311271107731061071041091021101011071021029999989996102951019410094102921019393909689948896878887898888868387888494828880828180798480817988778075777471731027211071926981688770976910366846597648964976110861696085609411590113881119011187111821108910877111771068110667103111103831069010387100831018496809784100999590967697739172937393658810087101909488988589888888958086839279858096828478877898749275997485721037590707769757276701026971686364108651076312363975911058931069511010010910310711610496105871048710110198879991969799919680951049583928091799275897089978969897085678561821398313683137791349213579132771317813074128801287312772126711246912466120651226512064120631206011859116581165812056114541185611210811210311099108991089810595106101106101104100104101104911018910290998810286978998879586988793861057991809079898494778776887885768475858082758173806779697769776576697563766874687264716371606863705467546613164906310361102601135991578359821188311686116741168511792112921149411276110701088011496107831076510661105631047510372103711015510065995498529710898989610193969692939690938991116831001049985938897828980979281938174101817991788076106756977727574747671807079707969676961686967796464635462486150621066010760108571105710411810211910211699117100113100111981109911096116921139310990107901039410395105891039110389102931028599879881968497829582948192818976897589738774897489728872837083708572817183697866766575647564726274607660715872626959675767556353645563486146604859110571215611555103541065511777110851048111482106909383999392100966987889164898495738666836290698074876682538711583908696809479968891941008886858984877085828170887688917886779379678072946780678069707187601066674567455814569447346641426113664138571475512789132681286715056131511249012689131961209311889117991198811988120851378712682119891258611090114921218011383110721117910976119861077498711017310274102711066710274100651066799569563967010558975491531034791498713810013986138981421041418913879134851338113296134107127801288412984125711246912375122911227512965118731177012071117711196211967116671236411265114611116411274115561096610357104571044810742106441121301001301041341041309712610112510112493123941229212390122941209112493128871189011590119821189311610011684109821098111178114751087810775110811108710976107721007899749870987299669667946196769366936694649062895891589655915686549052844784458047791078211388110811057712381101751017511676987910481115951017296949176107831026691649762886387669262876377598858905886558358785478619155765673518352805173466843644272127761288113178127631257212568124661216411858117561156311463119521145111747111431134511113111212910513210412010614410211811012399129991239911199118981101011139911010111197113931089310991105107110931109210686113881068410585100911108298821118210285102799480967910774987887788873113778870907086658165807486667764736787647466775877587466766196578162915979546857705468517249734459436142564059387140721038197779581956710059917589519846104439322389221111223942198821984220932158121594215832147721282213101211812109721174207702067420573207712056820375201792018220076205641997219769194591956619469193751936619373191571895719072188581865718756185501834818269182541805217838178671767217667175761747617368172661716917067169621677316863167581666216459163621626016161160601585415756157551574815649160441545415260150531494214934147361481001499714510714496167106141971421081429714093141901379913689134106134951339313486130831298912986128861289212891126841248212281122751217012181119731187011882117751158511575113641137111175110671106511171109611066310756104531055710254102491025298471004998539771956097479347954392468941893491328634871358413183129821328213081125821367912679124791288213475131751337312074110771147112171118691136710466110641066710166996510563109639859106561036010758103551105497529860945496508854854910149904910244934294419140854187105801097810478967995951088398818378977689708485807981788884827173848065807984676878736171596267738060625954585787815752575861566749765575558049695761466845555154405534503060325627260257392581212531232531182531122531192501092481082481112471062491042471112431072481002421122421142401032391042411032391182379823515623211023311923314523410523193231882298523286226852248922578223822229022285224932251182199322298221812169121585218782118021376217772087320875209742067320674208732057120176201871996520074199642026120361195722015819250192591946419049190571946818666189651904219147184481843718192179951808517881176771778518270173791736717571170621716917568167731688117161167651626616272163751606216059159611595616468155481554715754152551534415544150371513715333148351511071461141441111461011441101421081391141461051371031371011399313510413593137941359713089130941291001289512995126921249012495126100124951208311980121831208911797118811168311673115821167111175110851097710875109651058110671106741036710381103731026599689958101689561966093731025894509559885389598746877085458458844884458646884383439641773177337513179134791357613074127791337313270128691206712469121691256712265118641136411361108631156311260109571105610859105541065610558107521035210754106481104911048105461094711444984191449140984293448940854290418735843290288530871108611485125991618210783102801321059282887611777101799470867493729072806383658665816610061786110566736886619763855776598070746510753716210557735213348695870497457704366496050574060427241803953326334493150114541065510953112511084810663105431114210243115401034795401014794451005210034972898144101111961089610886105941249112393111841108310084978410686988311476988610084101779884987788819871877190759370976991701016681728067806581658360916481607757695673578057976571657359796485587251765366476347744676445952704363506448724355396745565047464835582977148611584715059146531464514448142581424114146146431364113741137971363713337136461313313426139166130173126166127164128169125170123158122165121159138154118153117156125161115148117156113154115145118145113150110145113146109151111147112143107140109140105141101141104133110129103132991361011299413098128951289513210013097145911329312087134861178712086120851278212185120831228613384114781137510977111761187611586104731067111572108681056710773107701116311767986410581946992609860976094669682875496588673876392498559825283558354925083447643795874427842884073367537723668377039633295318131643062276227591435614056139551435414052133541335013851141491355013249131471285312948130451384312751123421274612045121451233813041121361174813133113361133412138114291153011627111271142211324110152109145102132111135109133101137100133961269813496130971239812895131921239313390125901328812488113871158512390110831198311879129841058111278110781357710888108791147710883119781077610275108711017698661046610074976694659165956195659169101639264905491558561956710550925692498646815383528249944495448241764477408642713972388038674273357640643571396634652965256213164126771246011975117761226011767114511185911248111731157111051110751105811169107531085110451107421043910436108441193710232108369935993997289824953596309322961521011579115492163911579115189147106144791478315483149841387915478153801437813882152811427614478132761357313676146771326813267135701316813467125631257012262131611275712661129571265814059127571226312952117531135612146112551145010647104451224712145113431093911238121391184110042104421094110939106331093797379827992697219423961499514910013188133941428313280131841357712980135811377913179139731297914181124711266912677136721217411963117751206612466113721166711680112831126011271107601116210866109531056310664104631005610349100521034910444108461004110244974091361004290519442914310243973993359233863787298529862878269336722675207479837582707469827266727272687368847466626967636963636668707277576561625963595657715366535654475354655948534951495348545380476947395347385443475237363436384243364347543457396034352932314639402137119331193011931119181131461151411111501101371101331091251091281181261091211061281141341051591011251031191011181001289911398118971179411595112971259111192122921209011188109891098611390105941118312985104811068111381121809879927797799677887797759776110701077010270103719372926488657967826288687961765985647557805680577656925484597256755373498053685564498049724773468444614976477543754558405637623863387538603551325334493257316032553058304327652741254824482248193271447335703866326035723869357435672661438533583295317120501852165913055141611414413251124541414712340127471255812472124741293911554114451153412659127371162710836127351103912743113441014010541107291151799150108136100141951481041459813996136991531061331001399814111513593132881391031409213710113385126891267712082130113125891368912078119821187111881113851167412375124721197212181110651236913571119751086411164122631026610562122681026410369116631017410261915396539868965691499956956491528646957787599373975395461004688578241834489648534734081498039813476347924793278307738814271427438771673146310577100609468125599264103588863865495571007310051816391598267814810145754680487540764173557941795277676843714075419242725067326634713171418549823358356323623963226522561563153531515915756151541465615146149471535314846181531374215840153371424014251145321424613744157351342814534140431404112736130281292312838128251322413423135171232712227119121221921331991211771241771261831161821111841112011071981131761101691111771171769919311719911418310816398191101166941809619012919094172105164104178105166110167931709516391173871609014788157831479614791164871438317077143751418115985159741448315274147751387315573134731347014068132671436513174141651399212964136761397712681125631197212556118561246312562121671496511748119531145711866129521483912040141451125211250110441024910035983411142103399933109291113197331023910133974090359444103258619116224121228872199723378216812209821780213862178021484212882289621578212852068320567209872257422383231742038421463202691956719775195602017021663195591935921361195621866619562205521976918762216531895119364184551904419050197501864318863210401744119740207411933920362176311744017431169301964417428177431672718929172241662719129172431662315621156211692217321154101532301641941531901512031601941472291581981511841551841491821371831391841491821321921321921301791301781311771351701341951331661261811311771231941251731241631251761211671201661241621301681201601261661181631311651261811161771141571131481211611201691141771161521121491041461091671381451171551131611171711301429914697144102147991471001321011319114410013091132105140106139115144921501031309412610312782132851338712588117851248313080127791687612887135821139311478128701089313298138691137715677127711306912167114711086210579111861106411758997010960968510181118541296110052110699965965493538652815791657553773997438842915783338252804394379239873081268026703376366734672875276424672072198024882158246222969601157136591485813460151561667213761141781335613963129471794712957135401384416344130871337012981116431323612141115581124612941121341514112331122351101041168611127139281052511030984710425105221093511322101341048943371003141063149731710541387298103296111298952949429894289104322972939530582302116293812878028782283922998530375294863057227673288972877330185328793036528387282104307682787730781263902806326773311114280642925830256263542556527354251522497226977256622484427447263492845626145299432674627849262452774127048236532415324164240392414425144262502486224740236222762424340239312467326453234402336922960223302269220214220232221222223207230206212241217211226216213206226215229204271201211211218211210213200211218199205214218194207206254213205218231198218192200201200189196192198193190190218185230192192185188187205203200178189188191192194174182178187185192181180192198168209174174196173179176232173181181195184173168159168165169161169169166170160172170174183158168158169150156167162151179147180153190154165161158150172147155140150139158146169148152143151139162146151143142140150136147137147135143144158150149152145143143137136127138132153130131150144125130136132123129122146120146126131122131121129140144118128121126118127122132114119125117109178109125108112120111110112118117107123103106100113991221071051011231161191001179210011711796101110136110101107114889411496851051081059291858882101859684113848689848497998972898093898970777779687971807288891236390657975806277726597725683736256626965676254695869646160566255565675526352566144564751465748505957545658495158544643484260465036434249496748613939264530474235414745402426283629292524263256342221192425241721122152171917151018101381164766”

One can just copy this big number and paste it into a web based big number calculator and test it herself.

4.1.2.9.1 Verses and Words Sum: Fact

In the previous chapters, we presented all the evidences considering the chapters, verses and words. We also considered chapters, verses, words and letters but there was no key coding over the chapter Al-Fatiha with them. I considered those numbers necessary to test the content information of the full text of Quran. Because of the rules describe in the beginning of the main chapter, we do not look at other combinations as these are the most meaningful and necessary information to test the intactness of the full text of Quran and its structure along with its content together.

In this chapter I will present other similar interesting coding we observe both in Al-Fatiha and full text of Quran. But as just mentioned, since this is code based on only verse and words number, it is not within the boundary of the described rules and is not considered as an evidence but only as an interesting fact. When I first observed this coding I had considered it as an evidence but I decided to simplify the rules as much as possible and thus I now classify it as a fact currently. Researchers should feel free to investigate more on this and the following code if they like and might consider it as an evidence in the future if they deem so. The reason I later classified this code as a fact instead of evidence is to simplify the overall key coding pattern based Main 19 system of the full text of Quran and keep the strongest part as evidences. Because otherwise, those strong and clear evidences might be ignored and seemingly weaker evidences might be criticized and using them, the overall system might be unfairly attacked to falsify. In order to make sure the Main 19 System are evaluated over the main codes of the main 19 system, I thought it is better to keep only the strongest evidences within the system and therefore simplified the rules. After that, I classified the code of this chapter, Chapter 4.1.2.9.1, and the code of Chapter 4.1.2.9.2 as a fact rather than as an evidence as I had classified when I first discover and presented them in around 2020. Otherwise, these two codings are also observed both in the chapter Al-Fatiha and in the full text of Quran with the same key coding patterns and stand as quite strong codes. The only concern I had was using only verse and words information to represent the content of Quran might be open to critics and might also cause the system look more complex overall. Now, let me present the code and move on.

Just as before this coding fact gets its rule to obtain the number to be tested from chapter Al-Fatihah. In this code, we also test decimal sum operation and we again observe the 19 based coding in the full text of Quran. Basically, in this fact, we sum all the numbers. Let’s first see the fact in chapter Al-Fatihah and then apply it to the full text of Quran again.

x<- nQuran
x<- x[x$chapter==1,]
tmp <- x$verse+x$vwords
tmp <- sum(as.numeric(tmp))

cat("The sum of the verse indices and their number of words in Al-Fatiha is ", tmp, "  and it is also divisible by 19 and the result is ", tmp/19)
## The sum of the verse indices and their number of words in Al-Fatiha is  57   and it is also divisible by 19 and the result is  3

Now we observed the rule and will apply it to whole Quran. Let’s first see the illustration of the coding pattern.

[Verses 1 + Total Words in Verse 1]+[Verses 2 + Total Words in Verse 2]+ . . . . . . +[Verse 6 (last verse of Quran that is in Chapter 114) + Total Words in Verse 6]

If we use the real numbers in the above formula, it would be like this:

[ 1 + 4] [ 2 + 4] . . . . . . [ 6 + 3]

And, the final number after all the concatenation before the digit sum operation would look like this:

411464

The sum of all these numbers are multiple of 19 as reproducibly proved below:

x<- nQuran
tmp <- x$verse+x$vwords
tmp <- sum(as.numeric(tmp))
cat("The sum of the verse indices and their number of words in all Quran is ",
    tmp, "  and it is also divisible by 19 and the result is ", tmp/19)
## The sum of the verse indices and their number of words in all Quran is  411464   and it is also divisible by 19 and the result is  21656
as.bigz(tmp) %% 19
## Big Integer ('bigz') :
## [1] 0

This code, Fact 4.1.2.9.1, also considered as a fact as it does not fully align with the described rules of this chapter. Therefore, we do not add this into the counters of the overall 19 system of evidences.

Fact of even and odd pattern follow up:

Basically, just like before, since the even and odd coding pattern is not relevant for the Code 4.1.2.9.1 to follow up and thus the even and odd counters are not increased here. Because, even if we construct the even and odd based coding pattern, the sum of them would be the same as the one of Code 4.1.2.9.1 and just like before this test is irrelevant for this coding pattern.

4.1.2.9.2 Fact: Coding between Verses and Words

Just as before, this coding fact gets its rule to obtain the number to be tested from chapter Al-Fatihah. In the previous code of Chapter 4.1.2.9.1, we had observed 19 based coding between verse indices and number of its words using sum of all the numbers. However, it would still work in Al-Fatiha if we had used digit sum instead of the digit sum as the relevant numbers in the chapter Al-Fatihah are all single digit. Namely, both operations can be used in chapter Al-Fatihah and yield the same successful coding number. As per the rules of key coding pattern, sum operation has the priority and we if the key coding numbers are equal, we do not test for digit sum pattern as well. However, since this code is classified as a fact but not as an evidence of the system, I also tested with the digit sum operation as well over the full text of Quran and observed that it also exist in the full text of Quran too. We already observed success in the code of Chapter 4.1.2.9.1 with the decimal sum operation. In this code, we also test digit sum operation and we again observe the 19 based coding in the full text of Quran. Basically, in this fact, we compute digit sum of all the numbers.

In this chapter, I will present the coding based on the verse and word numbers. Similar to the rule, whatever the coding we observe in Al-Fatihah, we also test it on the full text of Quran too as we hypothesize that the coding in Al-Fatihah might be left as the clue for the full text. In this code, we observe the following 19 based coding in Al-Fatihah between verse indices and number of words.

Verse index of Al-Fatihah is 1 as it is the first chapter of Quran. The first verse of it has 4 words. We get the representation number of the first verse by concatenating verse 1 and number of words 4 as this: 14. We apply this to all the 7 verses of Al-Fatihah and concatenate them. We then obtain this big number: 14243243546379. The digit sum of this number is 57, which is 19x3.

Let’s first see the fact in chapter Al-Fatihah and then apply it to the full text of Quran again. Let’s run and test this coding of Al-Fatihah as follows:

x<- nQuran
x<- x[x$chapter==1,]
tmp2 <- paste0(x$verse, x$vwords)
tmp <- paste0(tmp2, collapse = "")
print(tmp)
## [1] "14243243546379"
#Test if the mod 19 is 0
digitsum(tmp) %% 19 
## [1] 0

As we observed, there is 19 based coding on the text of Al-Fatihah. Now the hypothesis is again, it might be available in the full text of Quran too. As I will show in the following, it exists in the full text of Quran too considering the text type of numbered 6236 verses.

Here is the head of the numbers table we will use. It contains the verse level natural numbers of the numbered verses of Quran.

x<- nQuran
x$text <- NULL
x$VerseI <- NULL
knitr::kable(head(x), booktabs = TRUE,
  caption = 'Table head of the numbered verses of Quran.')
Table 4.4: Table head of the numbered verses of Quran.
chapter verse vwords vletters
1 1 4 19
1 2 4 18
1 3 2 12
1 4 3 12
1 5 4 19
1 6 3 19

We will concatenate all the verse indices of the 6236 numbered verses and number of words of each verse by following the rule we observed from Al-Fatihah. Here is the illustration of the coding pattern I just described:

DS[ [Verses 1 | Total Words in Verse 1] [Verses 2 | Total Words in Verse 2] . . . . . . [Verse 6 (last verse of Quran that is in Chapter 114) | Total Words in Verse 6] ]

Recall that DS stands for the digit sum operation. If we use the real numbers in the above formula, it would be like this:

DS[ [ 1 | 4] [ 2 | 4] . . . . . . [ 6 | 3] ]

And, the final number after all the concatenation before the digit sum operation would look like this:

DS[ 1424 . . . . . . 63 ]

Then, as we see below the digit sum of resulting big coding number is multiple of 19 and thus it is one of the interesting coding fact but still is not considered as an evidence of Al-Fatiha based 19 system of the text of Quran regarding the described rules of this particular system. Here is the reproducible proof as follows.

x<- nQuran
tmp2 <- paste0(x$verse, x$vwords)
cat("The head of each verse and words as concatenated: ",head(tmp2))
## The head of each verse and words as concatenated:  14 24 32 43 54 63
cat("The tail of each verse and words as concatenated:",tail(tmp2))
## The tail of each verse and words as concatenated: 14 22 32 44 55 63
tmp <- paste0( tmp2, collapse = "")

# Test if remaining is 0
digitsum(tmp) %% 19 
## [1] 0
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 22051
tmpd <- digitsum(tmp)
cat("the digit sum of the big number is ", tmpd, 
    " and it is also multipl of 19*19 ! as follows:")
## the digit sum of the big number is  81947  and it is also multipl of 19*19 ! as follows:
tmpd/(19*19) 
## [1] 227

As we observed the digit sum of all the verse indices and their corresponding number of words is not only multiple of 19 but also multiple of 19x19! We observed a double of test 19 in one coding number. This is interesting because although, the digit sum of the big number has 5 digits and not too long but observing that it has multiple of 19 twice makes it more interesting.

Also, below is the 22051 digits length big number. Recall that the digit sum of this number is multiple of 19 but not itself.

“1424324354637911273841258611712811910101211111271319141615716111717186191920252112222323202413253426392720281329193028311532123323341335193619371138173910401441184284374410458468471248194918501051125285375427551556757185820591860286160622463156413651266967206823691870177124721073117437751976237797811792480238113821083298415854986138728881089269027913092119327941795996259718981299101001010122102741031210413105251061910717108181093311017111181121711331114301151211614117111182411910120311211512212123181241912522126301271412817129161301813191321713327134151351513631137191381013914140301411514221143451443414532146141477148191491715031151171526153111541315512156101579158241592016011161131629163916443165311661216723168171691117022171181721517325174291751117614177511783817991801618113182161831518432185441861718765188171892719013191251926193151942219514196731973019826199122002420114202820325204172051420612207112081620912210172112021220213492143021522216252175721816219262202622139222272231622414225142261322772284022946230302314523233233642342523547236252373523882391524027241624272432824492451624654247432483024960250152512725292535225422255502562425724258432596726039261242622426311264392652726635267302681326916270152712027228273302741727545276112771927814279172801428115282129283322842828527286491127311418511613746815913101611141291329142415241611176181819262026211822112320241525152625272128272922302631143211331134735183624373538153920401741204213438442045214674723485494550195185220539546553156135711587591560761256215636643265166620671468136913709711172177332748753676977277829792880138133827831484298513861887988989119014912492159324941195119610972598139920100151011710213103341041410514106171071010811109111102311111112351131411415115911618117231183111928120211211112212123101241312515126171279128121291613013131513251331113413135231361513713138613991402414161421314312144271452414621147191481014913150615119152401532515475155211563715714158715930160181612116213163816425165201669167331681616913170191711117215173171741517511176221771217817179361803018122182918328184121852318624187211882018991901119121192111932019414195431967197719821199302001112921632841451663771981391510131171128813181413152216141720182419352017211122172354244225582614271328829243013311232273319344035223632371538183915401541124214434944144594638472948204914501051205211531054185511562057205825592960306115621663166423651966276766836918707711172177319742175317620774878367918801281248213833084228522861587178822892890369132926093169440953396897279812991010031101231026210320104221051510671071410821109191101311111112141133311426115201162011711118811921120712171222112320124161251712612127401282912922130111313213210133121341413538136291372013861391414033141361421914316144181451114618147111481414914150221518152171533715419155221566157341588159141601416114162261632516414165151661316711168121691117024171541721817326174121751517650124253361431543662719827910107112412451332142515241618174218301929202321152218232124172513261427242816291330931263240333434133514362437123813391440194168422643154441453146264716485149335010512352285315543855135611572458125921602761166213631364476512662467256831692070197119723473257487525761677247817791080198115822683218416851486787188812894590169120921393249424955196209727989991110016101261029103211042410520106521072610822109151106411113112221131511422115171164511729118111192412011114214312411512631716813991013111012251391424159169171718719372013211422122312241025322611271728162993019312732133314342235283610371938223917401541124211431444204594623471448154985028511752255315542755656215722581459316022611762126317641065276696756823691270457139728732474147597615771878187912802581228211831484218578688798816891790169144922293499429951796129716981399441001510118102161039104151058106131071310825109211101311122112231131211423115111161811711118101193012012121201222412315124291252812691271012836129813028131101329133181347135191363113720138261392214020141311421614323144401453914628147131483714981502715142152351531715417155815614157351583715919160161611616291638164291652111213314410512667689911101111161217131314515416717151812191720252152228231224122572620273128222916301631163226332934113519361137373840391440234110421543364428451046184713481449155020511952105338543255856155729581759216096111621163136414651666146711687692770177125721373357425752376877167867915801381118213837848853886248719882289429012916921393169413951896189799899910100191012310291031610491051810611107610861099110711171124113111145115111161111711118611941203121412231231912481255126161272112816129221301013122132121331313423135111361113729138241391014091411814223143411441514520146361471314822149181503915111152151531415415155411563015743158321598160431612016217163271641916518166111671916814169401701017119172261731517451751317630177917810179301801418171828183518411185221861018737188281892919012191719271931219414195261969197101981219972001020112202720323204820516206111182173641151161172387911101811221223131314615121620172118619242012218221023112421251326192712281029193016311732193312342135133621371838163916401041334235432044194513461347174836491850135195217531854175510561257105814598603361126212632064965276626672068106911702571137245731374187522192143324225266187238169131010111312181320141115111624171818231924201621102282320243325232618271228282929302331233215331434293519363637313829391640434115422343134414451446154717481649155016511452225312542255175610571158165919602261266212631664176513661667196816693270267124722473127446751276977157811792080258127828832584188516861887118814891390179126922393199430951896149716981699271002510122102171031610416105161061210724108231092711015111371121611320114221151811617117271183111991205212118122221231712418125121261612721128141291515226329428523614715869151014111812271317141015391618171418291917201621222241232624432511261627272818291030163127321133103417352936173722381639194012411542114311441045204615471248749225012511152135311542155165655715581059206019614262106346415651066256715682569970137134721673177422751476107711781679680108117827832284138510865871688298911902791792149324942295109689789821991510014101141021510310104271059106161072410823109111102932548519616731822911101311101227131814161514161617391823191120242192272314241125926112729282029233010313132143310341835123617371138193910402641114220432344194515462447194819491950185114521853165416557561857215814591260176128622263236418651166186786812691570187197213731474117557615771378277913801181308212838842785158611872188368923909911992169320941895109669710989999100910124102121031610451051010691071510818109201101811110112121131711414115711626117811810119151201712191223123161526316416516625778159141016111212813131491517164171918181917209213222923232419252326192710281329103018313232193317341035113627372638263910403241204218432544845114622471448154911502251295212531554145585617577589591760106166214631764176526662467286830691670157157212731274675117633772478167913803781188211831884138512861387218822891090239199211931294129569620979989991410047101211021410361041010511106710714108171092911019111231152263244275256207158159510141135129131914271511164517421827191520721132219231524725232616271928112983028315132133339341435193625371938213984013411642184315116214316419521626711813937103311291217131614101551671716182219142052134224423172415251226132718281229430123121322533934153513361537263818391340941842134394426451446124711481049650651105213162737485769788997107118125137149158167175187191120821112212236247257268277281229930431732933113453563663743843910404415421143444845546347104884965055145295375485575685755865966066156246376446514669674686694705716725733748755763775785795805815826833846851486587788158959049149239339469539689779869951921837485867714899101013111612151313142115111641771810196201021722112313249251526212721281929830203115321233223410353236283714381839114010411842543154412451646747848174914507511252115312541055656125775895919601261236217631764146516661767156813692470207122722173157410752776297719781579188025812582683784148511861987108813892490169120923293179419951596159718988991010091011710213103161041210511106241071310811109711018111151122411391141311522116221175118151191912011121712291231212417125221261212714128812121239413517611723811916109118122313131471521161417131818191220122111229232524122512261027928122913301231133283322341735113616371338739184011411042134364421451246194719489499505512552953165414551556135718581859216025611362156310641965966146718681569227017711572117313749751276137711781479128014819821383128411851486138798819891490109111921293269415951496119727981499231001410119102161039104141059106910718108810951102211121111215334651661171186910101611712913111419151816191734182219382013213222332372417258262327152830292830123128321433113413351236123716388391940154184220431144945234613471148164928502651135213531054145519561857305819598601361116212632064965126611676688691070127115728731074167597613772478127917801081982358398410852862587138813893901591692393139420951296199789815991110051011110214103510411105141069107101086109181102411253541451368713814914101311111281361461591610171118819920112115225231424102582618271128122910308311132633934935163683711381139124084184216431444104512461347104814491450951105275375411559568573582959116012611162116396418651266867106886910708719728731674975257613778787799805818826839847856865879884894909914926931094495596997109814112534465461277889410181151291351411151016101751813194205217221123424525526327428229530231332333334235436637538639224035412428435448451046747214810495509515521153195495585665785814598606611562563136410651266126756866916708712672197314741375107612771878879580158117829836849859862787158812891290179199289349420955961697289812991310081017102810361041210571063107610813109121101011191121111314114171151111691171311871196120141211512261231812412125812681271212817129913020131181321213313134191351117211315410514687148998108111012713101461581671711181319132052172213236242225152682762815291330183113328331134103510361737838739164010411342134314441845114612472048849850751952115355485575613577588598607618627639647659661167968769870571872873157416756761277127814791480108114821283108416857866872388889119019911192893694129579610972098119991007101910291031110416105121066107510811109131108111811210110222312411570613712813915109112512141310141715221691722183719172062142212232224925252616271428202983024312132933113420351536273720381339104035411742943444114514462347144811499508518522753165421551656125785818597601661156217631564126527661067176876997018711872297329749751176107712784413253544546107785951031161271361421155165171018131913209211522423172426251026527322815298307316321433253473593643710381239540541842643744194584674774844965011511252853954555756757758559560106176212631464865766967468106977010711672973574875117687712781079780108168288312848855868875881489590591249269369469579699779859981001610110102610310104610581068107710851091411081118112711381149115811611117181187192263184195116177981199109112812121314141515161614179187192020921352226231324925112616271928222917301531783217334834133548361437193814392240334121427433844104531461147154811497501651185210531754235538568571158505919602361766239632764221921932241659612716817991017118129139148151316101716182119152020211922102392472572692712287291130103111321533834113593693713388397401641114217439441545164654711481349105095175275315541255145655714581359176013611162136312645651166467116822698701671972973107413759765771211243641151168711889510811412613814615716717518101972062111228235249255265277289298305317326336347358367374385395407411242643744945846347448349215075111528535544553563574583594602618626631364365566367868569470671672573474675576377678479480481482883684685586687488689690391392693794495396497698499410041013102710381045105410671074108310911110311151126113711441155116911751189119612041218122512331247125412631271112851294130413131325133313421356136913751383139101405141314271434144314511146514731484149515031514152615351541115591567157315810159516041617162416331641116541661116791685169517031714172317361748175517641776178417931801118161823183918451855186918791885189101908191519241934194519531964197919851996200520172025203420422054206520762087209421042115212421392143215621672174218421932204221622252234224322572265227191623394105106771681497102011111219138141115151619179182019242012219221423112417251426827728112993083153213331234133583616371338113916403841124214431244284513461347134810491450751952115355485511561557758659126027612162166320641965146614679681269970971772973107487510761277478879780118114821683118413858861587188818891190139117921593111124394195126127228139181017111012161317141015381613179181619332019211022112327241525262611272928152927302031203225339341435153617371838293912401041942104316441345184620471848264913502351652853155412551556135725581759206015611762863186413656667671168146977015711972217313748751776297726782879218016811782268314841885198615871688191121031141051261071282197103111612181311141615616131727181319132019218221723132420252726122718281429233063115321633233412357361737738163913402841194212438441045214625471948134914501651155219531254655135695775817595601261136214632264156516666671568176991122384125861171082293210131181251391451591611176188191420112120221323142421251626827182827291630223193211331834635103615371538163922402241154214431644945114617471848284910501951952115314542455125620579581959860101124334958618716889810271114121813151417152916251718181619112030212122152315247251526102721281129253016311932223331342711283184245176671088914101411111216131614141515161117131881912202121922132314241025112618271728729113051142123642852862971788922101611612131326141415131615172418141935202321172218231824162516261627132816291430173114322033253414353036243748382239134017418423431344845846647848124923506251355225537054115530561457145812592260196166212631564765866126786886917709711472187315117218332410511616716816929101311121227131914271520161617818171919201021212226232224172592611271228122973010313232153334341435836133723389392040104113421843344411451446244717487498501651105295310541512421932241151561371382591710241134122813281418151116617518341942042142216234241225132672722281729163083116322133133411351436183725381039244033411942194326443045251122334353677881091210811121214138141115151661751812199201121722823152452542682772813298301231113263310341035836133793883974015418426439446451146114724487498507511052135310541155756757658559460146156286356456511669671068769127087112726736747757769771178117910801181148210838122232435766758994107111212313414415616717218419720621722723724325426427528629530103163243353443510366375384396404414423433443455463477484493505517524537544555565576583596605614626634646654666677685694704715724735744755765774784795804814823834845856865874884893903916924934943954964977985996100510131022810341044105710651073108410931103111411251131011451155116411731183119412041214122412341245125512651273128412941304131413241334134413541363137413831394140514141424143514461454146514761484149515061515152415341544155215641575158101594160416131624163516461653166316731686169417041715172317341744175317621776178417931806181318241426310410586127108159710101161281371471510168171118719520621722232315243225926312716281329930731632113363493515368374384397406411142643104414458465475488496505517524535547555564574584591060116111621063664665116676746836997087197297347467515761077578679680481482483484485786108758841621033341652363673183492410221191251391461519161717121813191020202131222023342413251026122711287291930431732153383483512361537123836391040841184226431444114518461747254811492250115115521553215413551656155795812591060146111629631164765146666717682269157097134729732074167517112631441352161072781691210151113121513141481516161517131815196201521302213236247251926182713283929273011311432733163430352336103723389391240234110421543224412451046134719481249135016511152105385445512562357125813591160136120621263764216514662067306812691070971672673774177511768771478327998012816822583158412851711243747517616788991410151116121913914231525161917141851982012211822202392411252526112710281429163019311632433133417351136113719381239224026419421343174430451846114728481249115032511352175319541211213104105196127228199161015111912131338143015341618171118221992022212222242329242225122612271728132916301031143263315347359361737103811396401441942154384420452746164721482749155011512252275315112236475866788791010111112121113201441591671712189191220152182211232124142572692752872993093110322533173453512361137738123994011416427438446451346124774813491250751185211531154755656457958145910608611062763176496511661067768969570571157277367467567667797877958011818828838841185138613878888896112238455667788109510611512613714615616617818919920621522623524625526327428429830731732633734335836537123873984054110428433442454462475487495506515523535544555561057758559311263649520612748149111019111112141316141415111613172418131915207211722132324242125162618271028142911301331123222331134143516368378112631542951869714825924102411191216131314915451618172818171992027212522122313241825142632271028172918302031153218332234183527182183184385364710869810161111122213141413154416241761815191420272112221023724725162615277281029113012318322133113415351236133763830152153441951962178859810251137122013914141531162817271819197201821142212231224192540262827282814295411622331749512618728879301010114012321321142715181616171918101321137495961271185910105118127134149151016141781881992062162212236246254261027102882983093153263373453563615371338133912405417427436449451312223242536373849410211512413514715516917618319520421422523924625926627528929930831532633534435636737738839640741742943844845746847548449750851115213536545555566579587599607112233425262748494103113125136146156161217518819620721192252382472552672762892983073163283363463583673773893954074154274394494574694710481049513253445536373839510511512413414315316517518619320321422423252442532618279281629113016311632313333433553673733853964044144244344444554644744844945045135295325435545655725865946036126231427364755687888991051151291351461561641771861992062142272332410259265277288294304318327334349357365379385393407415427439445454466475489495506516525534545556112232425363748496103115124134145156164174184193204214224234246254264276284291030431432433173443583643763843984044164244364454544654744824945035145255345495545695745835946056146236346416546636746846947037147247347467547667747861323324453637385951021121231331431531631741851952032142222332442562642752832923023123223343423533623723823934034154234334444554654794824945055155255335445535645745835956076196266336456566626736846977067147267357447547657737837948048148248348438578658748858949069159269339429559641921139436586127158159171037111212221327142015151628171318121920203921252221231524122528261427392822292211822332142651861574783892010171131122313241419151016101715181719152082192251111241314412513625737818931102311281216131214231511161717101818191020102118221323192417149213313452513619715821921105611211239132011129394115246327168119141012111512171391436112221384105236187981892210151121117212311422514618720817918102111111172113941451361671881092710111116121113914191581616171218514223032142851463272581497101711341225115211329421517623712846912102711241217192113184105126778813918101111512913914715141611171218819152015211222122312248257269271328152913301014253544526271183941051131241341451571631710182197202212227233246254265273287296305316321033834635336437538539124044184294311441045546747548114910505511252511223444546671585961061171261361461531651791861992052142232322482511264274284293302313327336345355365374384393404417426434445453464476483495504513524142434411536372849310411912213314615316217418219420421422223524525226427628529430103173253343453543653753883954074184284394491142735418576571484971061141291361431581671751851952042113223231324825122610271028151132939475106117988913101311912111314141015516817101881910208218221223162411251126727132813132435465568768699107116124135148151116617818619920781322324252637284941041141241321431541651721831932042122232332462552622742842923033157322333343353362377385393403412424435444454464473484495503513529535543553561114243546556473829310511312413614515316617418419420421222323324325526427328329330431432333534335436537638539540711121037465867778791010711812513101461581651761841992072113228236249255267278289299301131101222324252637383931031131231321451531631731831932052142232332432542622772832963063163243333433543643733853954034154234364444534654734864935041223344253647282931031131241331451541621751861942042142222332462532622752832943053133223323423563653710381439940161222324252637283921051141251341431541661751861942032122232322442552662762832943043143223333443553643733833944094144254344434554691223344453637484921031131231331421521621741841942032132242352442542642732822923023123233333453523623763833924044124241323334353637383931031131231331441531621731831942062132232342452552622752852981323334355677486941031121231341441531641751861991226354552657684921031141271371481561641771861942022122242332452542662732842983043163263343463533661323334453697584941061131221351451561631731831942042162242342432591322324353647689910101411141241341431531631741821952042142231224324654647584931061131231331431531621741423334353637982941031121241361441541641731851931423324354667683921031141231331421521621761841942042142232342442532641122324356667386951031141231351431511161017518519420421622523924525526427428529330214243345566475849210211312413214615316417918319620312233343536373839410411312313714715313233443546272849210211612313414315416317218419620521211233545546473839410411414233343546473831222334654697484152433435564738493103115123134145156163172182195152536495511226334115166167982114233443546676861222324353647484971041151122344554647484921041121223334455627485112439142434445463748393172534445312243447142435425563721323341424354555641527371526344355142234451424354555142232445563”

Here is the link to access the 22051 digits length big number: https://github.com/quran2019/Quran19/blob/master/5.16_Evidence_bignumber.txt

Fact with the Even and Odd chapters at the Verse level as digit sum:

As per the rule of Al-Fatiha based 19 system, we should test the same coding pattern of the code of Chapter 4.1.2.9.2 with the even and odd pairing coding as well as the previous one successful. However, the even and odd pairing coding is not applicable in this particular case. Since the code of Chapter 4.1.2.9.2 is based on the digit sum of all the numbers of the big number, even if we construct the even and odd based coding, the digit sum of this big coding number of the the even and odd based coding would be the exact same as we saw in Chapter 4.1.2.9.2. It means, we would again observe a successful coding but this would be the result of the mathematical property. Therefore, there is no point to calculate it again as the even and odd coding pattern does not bring any unique and independent information.

Basically, the even and odd pairing coding pattern is not relevant for the code of Chapter 4.1.2.9.2 to follow up and thus we do not need to test it for this code.

4.1.2.10 Overall probability of Al-Fatiha based 19 system in detail

Below I will calculate the probability of all the evidences so far of the main chapter based on Al-Fatiha and without letters information. They are bound by the rules described in Chapter 4.1.2. Recall, all of the evidences of this chapter suggest the 19 based coding design within the full text of Quran with respect to chapters, verses and words information. If we conclude that there is a design then it suggests that the design has not been changed since year 632 and thus our witness to this design supports the current knowledge among Muslims that the text of Quran is intact and unchanged. Now, we will measure how likely to observe such a design by chance below. The overall probability of Al-Fatiha based 19 system presented in this main chapter, Chapter 4.1.2, is calculated in the following.

So far, out of total 6 trials, we have observed 3 validated evidences of Al-Fatiha based 19 system of the full text of Quran, regarding only Al-Fatiha based key coding patterns and without the letters information. As per the rules, we also have witnessed the compulsory follow up even and odd coding patterns as successor evidences after each of those predecessor evidence codes. Out of the total 6 trials of even and coding pairing successor trials, we have observed 4 validated evidences. So overall, we witnessed 12 trials and 7 validated evidences. These are all the possible key coding patterns we observed from Al-Fatiha with respect to the rules described in the beginning of the main chapter, Chapter 4.1.2, of Al-Fatiha based 19 system.

Let’s now calculate the probability of all the key coding pattern based evidences from Al-Fatiha along with all the successor even and coding pairing based evidences that exist over the full text of Quran, without letters information, as below:

tmp <-binom.test( (alFatihah_success_nums+evenodd_success_nums), 
                 (alFatihah_tested_nums+evenodd_tested_nums), p = 1/19,
                 alternative = c("greater"))
tmp1 <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", (alFatihah_success_nums+evenodd_success_nums),
            "successes out of", (alFatihah_tested_nums+evenodd_tested_nums) ,
            "(with p=1/19) is:", tmp1))
## [1] "The probability of 7 successes out of 12 (with p=1/19) is: 7.00e-07"

So, the probability of key coding pattern based system from Al-Fatiha is calculated as 7.00e-07. For some extremely skeptical people, I will double the number of trials and re-calculate the probability for them so that they can also be assured about the strength of the presented 19 System:

tmp <-binom.test( (alFatihah_success_nums+evenodd_success_nums), 
                 2*(alFatihah_tested_nums+evenodd_tested_nums), p = 1/19,
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", (alFatihah_success_nums+evenodd_success_nums),
            "successes out of", 2*(alFatihah_tested_nums+evenodd_tested_nums) ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 7 successes out of 24 (with p=1/19) is: 1.75e-04"

One thing to note that, inferring the rules from the observed codings is not that simple. The rules are based on my best educated judgement. I aimed to simplify the system so that rules are general an used in over all of the book when suitable. Therefore for examples I kept the universal rule of this book, all coding are always tested in both 6348 and 6236 verses text types, in the Al-Fatiha base 19 System. However, in the presented Al-Fatiha based 19 system, for each Al-Fatiha based key coding pattern, which is the predecessor coding, we observed the successor even and odd pairing coding pattern in the same text type. Namely, if the predecessor coding was observed in all the 6348 verses, then we also observed the successor follow up coding in the same 6348 verses based text type. It as true for the other text type too. If the predecessor coding was observed in the 6236 numbered verses, then we also observed the successor follow up coding in the same 6236 verses based text type. So, the rule could also be inferred that way and their probability could be calculated together. I will discuss below that scenario, which present the system from a different angle and demonstrates how strong it actually is.

In that case, since the coding pairs are dependent and we have to test them both, the probability of observing a single evidence pair based on an Al-Fatihah based coding pattern is p=(1/19)x(1/19)= 1/361. Here, p stands for the probability of each event to be successful by chance, namely probability of observing two dependent codings together being multiple of 19 by chance. It is because the probability of the first Al-Fatihah based coding over the full text of Quran being successful in the full text of Quran is 1/19 and then, as per the suggestion of the alternative case, we have to test the follow up even and odd pairing coding in the same text type and it has also probability of being successful as 1/19. Since they are tested together one after another in the same text type, the joint probability of observing these two coding events together, is p=(1/19)x(1/19)= 1/361. So, we consider a single statistical event with probability p=1/361 as testing the two dependent codings together in the same text type of the full text of Quran. In total we observed three double validated such evidences. Lets recall each of them and how many trials we had.

For the first double validated evidence we have the dependent evidences pair Evidence 4.1.2.3 and Evidence 4.1.2.4, which was successful in the text type of all the 6348 verses but not in the text type of numbered 6236 verses. So, we have two trials and one success with p=1/361 in this double validated evidence event. The second double validated evidence is the dependent evidences Evidence 4.1.2.6 and Evidence 4.1.2.7, which was successful in the text type of the numbered 6236 verses but not in the text type of all the 6348 verses. So, we have two trials and one success with p=1/361 in this second double validated evidence event. The third double validated evidence is the dependent evidences, Evidence 4.1.2.8 and Evidence 4.1.2.9, which was successful in the text type of all the 6348 verses but not in the text type of numbered 6236 verses. So, we have two trials and one success with p=1/361 in this double validated evidence event.

So, in total we observed 3 successes and 6 trials with p=1/361. We can approximately calculate the probability of our observations so far in Al-Fatiha based 19 system with respect to the same text type condition considered as follows:

tmp <-binom.test(3, 
                 6, p = 1/(19*19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", 3,
            "successes out of", 6 ,
            "(with p=1/361) is:", tmp))
## [1] "The probability of 3 successes out of 6 (with p=1/361) is: 4.22e-07"

As we see that, if we were to include the same text type rule in the follow up of key coding patterns in codings Al-Fatiha based 19 system, it means we would witnessed an event with the probability of occurring by chance alone as 4.22e-07.

Since we observe an intact and unchanged design over the full text of Quran, this system along with its miraculous evidences, supports the current accepted narrative of Muslims that the full text of Quran with its word content and current text structure is intact and unchanged since its completion by the year 632.

Now, for the very skeptical people, let’s double the number of all trials but keep the total successes the same and see what would then be the overall probability. This should further calm down those skeptical people.

tmp <-binom.test(3, 
                 6*2, p = 1/(19*19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", 3,
            "successes out of", 6*2 ,
            "(with p=1/(19*19)) is:", tmp))
## [1] "The probability of 3 successes out of 12 (with p=1/(19*19)) is: 4.59e-06"

As we observe that even if we had the double of the trials we currently have, what we observed so far still stands as statistically very significant, which still suggest the design of the codes we observed.

I think both ways make sense, but I decided to make rules as universal as possible an therefore kept the universal rule of applying all coding patterns always in both text types. An in that case we had calculated the probability of key coding pattern based system from Al-Fatiha is calculated as 7.00e-07. It is statistically extremely significant, which suggest that what we just witnessed should be the result of a miraculous design. Of course, God know best and this is my conclusion based on the factual observation and the result of the statistical calculation.

Recall that all of the evidences of this chapter suggest that there is 19 based design within the full text of Quran. Since we witness a miraculous unchanged design, this suggest that the book, which itself claims to be of divine origin and will be protected, is intact and unchanged. Even, if you do not read the rest of the book, these evidence should be sufficient to witness the 19 based coding system of the full text of Quran. I have PhD in Error Control Coding in telecommunications and considering the rules and the entailing evidence codes of the Al-Fatiha based 19 System and the statistical calculations, my scientific conclusion is what we observe might best be explained by a super natural design considering the technology and history in the date of 632. Surely, only God knows the absolute truth and we can just conclude on what we observe. In order to find out more about this supernatural power, I suggest the readers to read the content of the book, Quran, for the answer, in which we will read that God has sent down Quran to all humankind and it is the final and ultimate message and the Author of the book promises that this message will always be protected. The 19 based evidences we observed so far, suggest that the full text of the book was indeed protected.

In order to observe the probabilities of different chapters separately, I will not add the Al-Fatihah and even-odd counters into the global counters for now. However, I will incorporate their probability into the calculation of the over alls probability of the book in the end or at to any point in the book.

So far, I presented the overall probability of all the evidences together of Al-Fatiha based 19 system of the full text of Quran, without letters information, which I presented in this main chapter, Chapter 4.1.2. In the sub-chapters of this chapter, I will also separately present the probabilities of Al-Fatiha based coding alone and also the even and odd pairing codings alone to make sure we measure them separately as well out of curiosity. Since we have two main dependent coding patterns within the Al-Fatiha based 19 system, I want to present the probability of them separately too. It was not really needed but I wanted to see their individual group probabilities as well out of my curiosity.

Finally, I will add these special counters to the counters of all the key coding pattern based codes as below so that we can approximately calculate their overall probability too in the end of the main chapter.

# Counters for all the key coding patterns
key_codings_tested_nums <- alFatihah_tested_nums +  evenodd_tested_nums
key_codings_success_nums <- alFatihah_success_nums + evenodd_success_nums
4.1.2.10.1 Probability of the evidences based on the Al-Fatiha codings only

Before calculating the probability of observing Al-Fatihah based evidences, without letters information and ignoring the even and odd codings, we need to make sure we counted all the possible codings we observed in Al-Fatihah regarding the rules described in the beginning of the main chapter. Based on the defined rules, we performed 6 trials and observed 3 different Al-Fatihah based evidences over chapters, verses and words.

Now, we can safely calculate the probability of observing the Al-Fatiha coding pattern evidences. So far I have presented many different evidences based on the coding patterns of the chapter Al-Fatihah. I have been counting the number of tests and number of successes out of these events to be able to calculate the overall probability of what we have been observing in this particular chapter. It is a good time to have a look at them by calculating the overall probability of only the Al-Fatihah based evidences so far as they are in a similar category regarding their structures. This means, we exclude the even and odd coding evidences. Here is the overall probability of the Al-Fatihah based evidences so far.

We have 6 trials and 3 successes with Al-Fatihah based coding patterns. Probability of all the Al-Fatihah based coding evidences so far in this book is as follows:

tmp <-binom.test(alFatihah_success_nums, 
                 alFatihah_tested_nums, p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", alFatihah_success_nums,
            "successes out of", alFatihah_tested_nums ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 3 successes out of 6 (with p=1/19) is: 2.58e-03"
4.1.2.10.2 Probability of the evidences based on the Even and Odd codings only

We have 6 trials and 4 successes with the even and odd coding pattern observed in Al-Fatiha based 19 system presented so far. Probability of all the even and odd pairing coding evidences so far in this book is as follows:

tmp <-binom.test(3, 
                 3, p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", evenodd_success_nums,
            "successes out of", evenodd_tested_nums ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 4 successes out of 6 (with p=1/19) is: 1.46e-04"

4.1.3 The Main 19 System evidence utilizing total number of chapters of the Full Text of Quran

In this chapter, I will present another type of the key coding pattern based coding evidence utilizing the total numbers of the text of Quran.

In the main chapter of all key coding pattern based system, Chapter 4, I had discussed the three different key places or sources to look for key coding patterns. One of them was the first chapter of Quran, Al-Fatiha and I already presented the system based on it without letters information. The second one was the first and the special verse Basmala. However it only has one key coding pattern without letters information and that coding pattern is the concatenation of chapter, verse and words information (chapter 1, verse 1, words 4 = 114) and I already tested this key coding pattern and showed successful evidence over the full text of Quran in Chapter 4.1.2.3 at the chapter level data. Because of Basmala, we could also test it over the verse level data too. Therefore, I add two more trials to count for those testings in the counter.

key_codings_tested_nums <- key_codings_tested_nums + 2

The third place to look for key coding patterns was the total numbers of each natural numbers of the text. Namely total number of chapter, verse, words and letters respectively. Since, we are still considering only the key coding patterns without letters information, the only key coding pattern from those total natural numbers of the text if the total numbers of chapters, 114. As per the define rules of the key codings in the beginning of this chapter, we accept it as the key coding pattern and have to test it over the full text of Quran in both text types, namely in all 6348 verses and in 6236 numbered verses. We also have to test it in chapter level and verse level data. However, the chapter indexes are from 1 to 114 and by the general mathematical property, the sum of those indexes must be multiple of 19. Therefore, we do not text on chapter level data as is is obvious that they must be multiple of 19 already. So, the only mathematically independent test we can do is over the verse level data by summing the chapter indexes. As I will prove below, this key coding pattern, sum of chapters, also exist over the full text of Quran considering verse level data too in all the 6348 verses.

Therefore the evidence code of this chapter is based on the key coding pattern of the total number of chapters. Namely, when we add all the chapter indexes in the verse level data of the full text of Quran considering all the 6348 verses, we obtain the coding number 215574, which is multiple of 19. Below is the proof for this evidence:

tmp <- sum(unQuran$chapter)

# Test if mod 19 is 0.
as.bigz(tmp) %% 19
## Big Integer ('bigz') :
## [1] 0
print(paste("The sum of chapter indexes is ",tmp))
## [1] "The sum of chapter indexes is  215574"

As per the rule we also have to test the same key coding pattern in the numbers 6236 verses and therefore we have two trials and one success with this key coding pattern. Let’s add them in the counter for key coding patterns

# Counters for all the key coding patterns
key_codings_tested_nums <- key_codings_tested_nums +  2
key_codings_success_nums <- key_codings_success_nums + 1

Also hold the key coding counters without letters separately in these counters:

# Counters for all the key coding patterns without letters information
key_codings_tested_nums_NoLetter <- key_codings_tested_nums
key_codings_success_nums_NoLetter <- key_codings_success_nums

4.1.4 Overall probability of all the key coding based evidences without letters information

Considering all the presented and considered key coding based evidences, we have 16 trials and 8 successes so far. Probability of observing them by chance alone can be approximated as follows:

tmp <-binom.test(key_codings_success_nums, 
                 key_codings_tested_nums, p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", key_codings_success_nums,
            "successes out of", key_codings_tested_nums ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 8 successes out of 16 (with p=1/19) is: 5.17e-07"

To see a more conservative probability, I will again double the total number of trials and keep the successes the same and see the overall probability in such a case:

tmp <-binom.test(key_codings_success_nums, 
                 2*key_codings_tested_nums, p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", key_codings_success_nums,
            "successes out of", 2*key_codings_tested_nums ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 8 successes out of 32 (with p=1/19) is: 1.98e-04"

4.2 Key coding pattern based 19 System with Letters information

In Chapter 4.1, the first sub-chapter of the main chapter, Chapter 4, I presented all the codes of the key coding pattern based 19 System without letters information. In that chapter, I did not include any coding with letters information. I made this separation to make sure the system presented in Chapter 4.1 is universal and applicable to the writing of the text of Quran with respect to the most of the Hafs manuscripts. As I mentioned before, writing the same words might be slightly different in some rare cases, similar to color and colour in English. Therefore, the codes with letters information in it should have been separated to make sure any textual criticism or doubt do not cause an unfair judgement on the presented key coding pattern based 19 System. As a result, I will present all the key coding pattern based 19 System with letters information in it under this main sub-chapter, Chapter 4.2. All the rules are the same as described in Chapter 4. However, I will present here the codes with the remaining possible combinations of the natural numbers of the text, which are as follows:

  • chapters, verses, words, letters
  • letters

4.2.1 Letters pairing of Al-Fatiha based key coding evidence

The only key coding pattern observed in Al-Fatiha with letters information is by pairing the letters information of two text types of Quran. Since Al-Fatiha is identical in both text types, which are all the 6348 verses and all the numbered 6236 verses, as per the rule we will have to test in both directions while pairing the two text types with letters in the full text of Quran.

Let’s first see the number of letters per verse in the first chapter Al-Fatiha as follows:

x<- nQuran$vletters[nQuran$chapter==1]
print('The number of letters per verse in the first chapter Al-Fatiha:')
## [1] "The number of letters per verse in the first chapter Al-Fatiha:"
print(x)
## [1] 19 18 12 12 19 19 44

Now, when we apply the pairing coding pattern, we observe the key coding pattern of Al-Fatiha, which is multiple of 19 as shown below.

tmp <- paste0(x,x, collapse = "")
print(paste("The code from pairing letters is ",tmp))
## [1] "The code from pairing letters is  1919181812121212191919194444"
# Test if mod 19 is 0.
as.bigz(tmp) %% 19
## Big Integer ('bigz') :
## [1] 0

Now, as per the rule we have to test this key coding pattern in the full text of Quran too by pairing the number of letters per verse of the two text types to each other. As proved below, we also witness this key coding pattern in the full text of Quran too. Before that, let me also illustrate this pairing coding pattern used in this evidence as follows. As mentioned before, it closely resembles to the double helix of the DNA structure, where one strand is the number of letters of each of the 6348 verses and the corresponding strand is the number of letters of each of the 6236 numbered verses as illustrated in the following:

[ Number of Letters of Verse 1 (of 6348 verses) ] [ Number of Letters of Verse 1 (of the 6236 numbered verses) ] [ Number of Letters of Verse 2 (of 6348 verses) ] [ Number of Letters of Verse 2 (of the 6236 numbered verses) ] . . . . . . [ Number of Letters of Verse 6236 (of 6348 verses) ] [ Number of Letters of Verse 6236 (of the 6236 numbered verses) ] [ Number of Letters of Verse 6237 (of 6348 verses) ] [ Number of Letters of Verse 1 (of the 6236 numbered verses) ] . . . . . . [ Number of Letters of Verse 6348 (of 6348 verses) ] [ Number of Letters of Verse 112 (of the 6236 numbered verses) ]

The number of all verses is 6348 and it is 112 more than the numbered verses text type. Therefore, while pairing both vectors one-to-one, naturally, the shorter one starts over from the beginning part of itself and keeps pairing. As this is the most natural operation approach, it is also the default way of processing in the R programming language while pairing two unequal vectors to each other. Therefore, it does not require additional coding in R.

If we use the real numbers in the above coding pattern, it would be like this:

[ [19] [19] ] [ [18] [18] ] . . . . . . [ [20] [13] ] [ [18] [19] ] . . . . . . [ [13] [98] ]

[1919] [1818] . . . [2013] [1819] . . . [1398]

And, the final number after all the concatenation would look like this:

19191818 . . . 20131819 . . . 1398

Below is the code to verify the coding pattern.

tmp <- paste0(unQuran$vletters, nQuran$vletters)

print("The paired numbers from 6235 to 6238:")
## [1] "The paired numbers from 6235 to 6238:"
tmp[6235:6238]
## [1] "1920" "2013" "1819" "1618"
print("The paired numbers from 6347 to 6348:")
## [1] "The paired numbers from 6347 to 6348:"
tmp[6347:6348]
## [1] "2065" "1398"
tmp <- paste0(tmp, collapse = "")

print("Test if mod 19 is 0.")
## [1] "Test if mod 19 is 0."
as.bigz(tmp) %% 19
## Big Integer ('bigz') :
## [1] 0
print(paste("The number of digits in this code is ",nchar(tmp)) )
## [1] "The number of digits in this code is  26634"

As we witnessed the pairing key coding pattern also exist in the full text of quran when paired from 6348 verses to 6236 verses in the order of pairing. Since the predecessor key coding pattern is also suitable to consider pairing from 6236 towards 6348, we have two trials and one success in this evidence based on the key coding pattern with letters information. Let’s add this into the counters of the key coding pattern based evidences so that we can approximately calculate the overall probability of the presented system.

# Counters for all the key coding patterns
key_codings_tested_nums <- key_codings_tested_nums +  2
key_codings_success_nums <- key_codings_success_nums + 1

As per the rule, we cannot test even and odd coding follow up coding with any pairing type coding pattern. As a side not, the code I will presented has the similar approach of Evidence 4.2.4.2, but with only letters information at the verse level numbers.

Also, below is the 26634 digits length big number of the presented evidence code.

“191918181212121219191919444419332727474752523333474753534747494951514343292977777373343457577272191986861021025353999978786666145145155155828260607070111111707048481011016363808086864343686851516969797942424141555547473838585869698484505053533030373712112160603030909095957777118118257257108108707054545454454583838080717162629797454557571411417777101101363645451021029191545452521501507171231231636313813846461081081071071191195151131131676744441021027272555544444444898930830849496565989861615959737312312376767272585814114111311352525656474710310346461121127070585867678383115115122122656576768181747433337070114114545463631351357979373763631271275454898919619614614613013073732727757566661381388787323253535050666645454242898991915757646437373535187187123123575796966868505089896666626293931221226161585826626616316339397777545455556161123123185185777728628687871201205959130130242465651071076666290290121121110110494997975757353510310365655959525249496767494972727474939321421412712710410493932472477272123123118118182182122122818166666565545429291771771931931141142032031471472882881221222002001111111401404444656511611634343131106106383869692172171651651141142402407777122122414120820887871891891021021181181691692492491481489797929244441741741231231481481251256868656557578989112112134134797918618645458787545472725252545455155113813810310311811819619631924353247453377450371975054197475466476866436811643125116107125501075450725410772122107881225088815065815365925386921138679113967962964762484727486627109661381095213892526392806360803760813791813391793335791873580187348086344686304613230601325960325947322547114255411428541292870129757061756661546639545239795211579341151443436144116361201161201206712014667291466229126625212683524783374743376243916256919956449947444247994250997750697774695474157547015765708165438149434449113444811315248591528459408477409877125981271258812749885749475760476960686943684543614562612762292755297155104717010454702954412910541331056033516010751991078899878850876450266484261668410616629110689291157895315728531212875121687553683253107327310747731514774151547478544778694777696477546487545387745314674122146951223795120375512099551089999108869938865738100574510095455895188582918830298530121855712112557821911512558827911518658917970186719163702717129963792715529910779705590107106701579083106491576383265491856326426561185602643461996053345699108538856192108928815819278928515868785585436861552054364614420517764121446917754121406994544340379480433837958010038102951321001251026513273125656510573776510710527772110792272821499263287549936313975989320413914398732044914310173564913510187567713557876177885712861168881621282351687016217023517270371701281726437401281226496402811221069694281671063094546782307954508246795450135469754811356797438136671094335363210995357232669573724566178731264510217843126129102404349129624016349130627816328130717813728161719113758161859145589285484553924948100534349781001624390781031623190128103323157128603273571366013173581366613161584366506144439950216448799129216508773129191509773242191278191379720124228127886137117201472814086107117207471414011910792207801411571191349210780921577013475107100926970527562100996964525662389910664162561403852106681628814049526468498871492816411349687119528114011311768661952281401361174566104228116136804515810468116488010915854687748110109685463776711021868626310467942181296292104899478129139929689407898139589690407198425878907071128428978637067128408969635267205408269925272205116821049219672861161191043719645867311910037344585731001008634213851281009986592132801286199865966280976170861536610897477010215342108694749102524242195369138496652534244535613841661005337449256294136100563732921372968365456573243137416813354475768436041391337647111686060663990761141115060676682907111462504667578263717962424690575663647943421039065561056471431081033565741057771591081133595747177485973113369510571324821731033647105175321602138103106475817550160543869106655853509254936952655853100923493445256585910081346644171561025920181128666917162102692015912818769686265695359431875968446544535343103599044604410053951036290105604810063953962401051164859639639100406911611859110964110041691511183811013441384137151713827134753812837967111727957583128145967011710695167831281451227051106142167361281181221805114914275367511844180611491447513875774464616614439138327710464866643950325710443864619364275045575643484673365727504521561648367366575450702110516263613066545448703410583261381309454694878346483111138110944769747858641571111611106247104744258701571501611106248104874262707215068110874895874562146721456835876595123457214676145323539654412359727176573258393944305911371715710758663913230113113967137107666633132631135396463754663633406315653107468354933615940531563310759836493591598253853340593864445979821028541407138344465793610224412671323430653436162446262232403055344116254625221740205512417725412522176620100127677884147229466471008076908843476094139479980369040438560109139165996536894015385631098916574651728946153696359896374170172129462226914159326320017093129732221181418132792004193807377118172815279794110480647727172645213279471044264122276964311324047184240122886940311534010418125405588284033153561046412599553928473352563264449950393147895241326944485089318289344147694748511910189338252346747994710351581013033545281678699261039758543036543981498695265897955461364839824974956958729552619348588298748169597266524693150581499888818859616667467615014014974886788376174676876821403874446743375574356813482503853447643375511535107134785039534676943754115209107577885399546419464541352099857133857495105417764561353998681337974931055977455610239836899791109380594445311029783170999611083804044113311239710717010296648360401391138412316010713410212264706017613971841131605213477122707071176867164113635265775670937147869564816345654456629382471189511481554564447362648267118105114795516864125731326410767621051907952168371256713247107936210319011852433711267714774938210346118764356112807110374908286461327688565980691037190113861281329988745965696771851135412811799867410165616717485109548411788866110161611091741271094184199887761102617810982127544156199797760102547822829954113561267910160625471193022749966113861261041018762427113830657454661238671104688784421661381136519854451237271118688984461666311311419848453972631189789604683636611481484539606347974560428387666381494530608147534539425287436384495830228163534439735276431418436582122656342449073617696141353659211366560428790936169963835485977136266039876493336985385248487726268339131645133118852852614810926858344131305133118942860615310960856444453010033389455608553876045643645351009838285585856487127459319473656354898952875856464621276593146471005650481009541752764676261653514640100113508110092413827123675961383566405211358815592733842123945948387366865284585655767363427294754863735286828461566576286365728175616350526882111618365852870654781736141504468631116883488548706047487322415444486310968434830481186057483122110547448421098243137307811837577931651108274864237823113744784637427936659482448657372031364437465742753677947244435746206636683729571107535774272614369464166186873292211031356442636163691064130185773591968224331346454633863761062030805773597768424313834435491387676892068803673437742427313813143849168764189386811536112431044246731271318684706810541413850115961125710453463912792861107047105544161503396725735533939729235110294774547161663311472883511139110726235652927744471486625114458812311184110636250651392772445348702551454912347848163101503913984723953467056514749274772813910135395584169391054657562647362749723039593567551231697910594576026115361014911130112599067561235879309454191216042115861011071115511218890182561185858303454541211014272863010794557418867182521183858106341935455101139725330899410174746782523238581066819371556413972535489761017574868211732485850681577114364112197872785443762375258662117904856501815713814318711283785978554349238425506221905356861810713843187618355595855114496184545039213953608645107109436461515542585011432613154363960392560304539109316427513742345039322931283633602319262539303639373121272937523434394229632829334223252633392836453736212229275231343942206324292442172518334628204519364122202730312039172040243024261722181846372028193541322029302320261724402930202616222918233762284035223223291823232625242429192041162129152319622440282225233018302319252424691919413621631521192124202819251430273019193424286924192236426368213621302040193114592748194434472871247122491910042496822362730394025314159324855444947407169718649981008249442290276739642591414332118551224946407369538637987882254461906367676428913143671185812232465173485343373878342557613463376765285831966771587232635161486943653854349357743492379865625842961037110972716375616869119651105429933974519245989162434259103103109817189751316868119831105729643976514045419141436759561036981488952131946862835657276465765140107414441576784569469204866527194436235564227496575519110753445157328495945720316660717643573511042494971754291435311651593231198295685753317160527645575011036491087151425343451164859503155824868595334719052714556505736481082451675359454448485030558748585982347690427145561957100484424716755596844524884307487925811382587664424145961935100544473715755876881527084397463923711348586064424160964635565436735757538740815470503930637637534837604542536092465856603647571145371409254635078306776405361374645455370923558306090477211442716992136327785867464044612746424561703035393048907872751980421276910913173275658142461514425275842376181305439129481297848751238070127501095017341565014257151282563586237308179543912937129102486712352706350122501114159506557512854638362923011879753943374910249674952856334122511113759216524513654438365922711838756443294946491034948857634515140371482138243436943916546275038106453292346101035148787649517740351484938483427947916546255049106653422348102551687892495771935174952485227304745655225434945664642344825252668349242195153019321738525752243057453852354376454146403438253426493429423651343053323538475748244657343835355076504140404638543435495529603637344153363529474848414633341635129505250514046464654333561555660313738414336362929483441363374163512998526251394628463133226133563331413825432736242937342036147444351698246238391728233143224533463324123251527312419374420301429441516682419383717232344433945374618194821423201532314019194418301529101516681019183782310441239123711181448201419202032934013019131831151910301635102718878351017122912211135147420391941202893341306013333123195930303567274287393549171929212159353774115397641612842344660493369233759193075676542353920493319362110559753748115447668613742284618497169173762191047539654435312030333636271054775324815442068563744283818357142176262651043639424449312230213652276547233270154720285638445038673535428562756559365342794950223121425272654423587035475928423845503767443529854875245937533579425053195731264227725244225882355359384229455937514480295748392447374035494272533757302661274552562250825553823846294759835143803757333937474540254931723137553035613745345632503555328239463747368342433437353333372945422539318331755529355137613461327235453265395137413669423434313583334029434292395783337530294951326137617572424535652651384138695734663152832340254342925057323329304349403286374475444226235462643384538615735661015248234125724285503832102291444369192340158652449844382621084676435145946146351001018148364143728985763812810289144446945231481585523698183851108617697516094454631100418141361064374898976641285989414477453514856856036601855514561101974360674529314141604163106136741228931644559414163771993514562160216020552145421013043286725291541296028632213610412218312245414156635619940196614212163211042030211942138306228372525152429552811122321044218192242414156195622404866252127638510439303719381382462303748255224335539111193228422719254223412119452233484925472736852839413721384224273042487552373324393819452844274425482330214745223340494747293622283341212148422227264280753237202426382745364426441748303065474322304047472829342237333121224861224326368024323420342640274236632629175130122657343943043478128373450373731382210261594365366324703456343840314285633829150191215168122477349949943858187377050663735038831022175961652036355708756583899311088583383515014012144681064747497099488528876770836645350768310221717361482035355219878758103993151081808312035861404444731069247667047485128706765834245627639102371734248385350219408768103873156518096120858651193844347339924466494728514870416549426962373948374242493869503740336869874465689637855551573822344939554446494328264833416449476955372448444252497269613748335069614427684737205547578522364969553546424345266433446426474555324194427524572436138483950296121273247162020473585233633693235204238453264254446263245211940320192327304539433738193923292421263226163520343516232433223232205138253226254846313217212040122096232730433935372519192315241526202614352334141638242022573216512325152629482131191723202812209617272843223519252319171519151620181431232614233822202457171619232015182918212219282321281620191721281922191914231117261929162118183124261423172240241717261924202518191816223628162140162819182129192119151424111426172940212118232420141717244016171026232436251819131644362116164025281418172940212115112418142617174020212723222038173124311620104123213618182413144417214016232541143517214020211811181814263117292021272222203814311731402029412121421829242214351737401923414129352121202016182218131417313529232125222420291422171840172919212042232927221635183722191941342919212820261620221513161717352523172523242129222221189217241916204723452743162818652256192834741935287226362058156916771743258517106234421452247214292771962242716284747453343342823655056532861743935697260364758556913677474359854310611044584561475142427768623127432844472833393447235850395331614939104698960704782557813657474459444347110405832613051324238683131374347442128343928474558563970314249571043389647066827178405752446344614751403321930383285385931553792476321673467283745645665704942148574633366472661197176404252446310861505110619483110195938109858259735510092336357677567733769641086552495114844464836757252119817677428644106108495092106294834110555965109748250739710073338257667575734069841086452335135444248587528525881787787866210640497092109291053410255786570746550113976773758266665975604063843644033563543424558422870589078438712062374086706110969105401025678118705265471137267327559666059766011763441987357401035627437045674290705090304374120393777866961124698840435642118455289471127289325259596062766411791446587385756103402728708667259053506430507484396577646936124738865434742345989311124689335242594462986415291606532382656434026284386582528533964605040848365676464368573656531477919113360992314846453371423444439862152576072328726854367265743565839285139836087401158337677164418546655531817955113866042927648324539713341943166247573372728767853967355710556543970515483768711211582376971544145461115587816655648630426576403278394119973581968169247122331007236731396635921056354327036542576601125582426975546645641116687566646643130596595404978514159975258456869927512230100441926361314366269212763126321433680254260985576423675586610564606655565746803168591559510249655185597552724574697775613079446426691964618143122265612722312692143196807542619866763536165865105356038552957338058681031552671021376585852947539721267463776361677999648769346443816212229563322355924619637757161406659359216936567356838123295033465866103612676613710585532945139107126876310963746775993587823487434562702993338555624635374671484054593092419314319696716068541233950494610066456173665110558537751130107478759109897452752635298257873545367038935785100626835854643486354583062419114376691081601155412739115498110047452373185113858217718130164762591289485267262729945778357636373865579919571004568558572431086344581006213291767683108111115120127971152811347142313181713830213018451651623612544858673827579455782876233755653899465729453155587217108194430100271324776308347111451202397501944237135614371339173730583035452351333622544558423892573055352833233955533839464229283132582317161925305027234736302147244557234650494430374356333750393337295831353023363342224145374244926330343535331139135313391242352831321823371617252850462313361721192421573546154916302843243327503833292917311430173624422841213736442563203425352019381133132213221223351931161814371217142819461613241720191321243523151916342815242127193826291317281419172124232822212336212532202325202020381833222220222423191926162514201219142019191619241520181316242523221918341615112115192626131320281619182119233222292323211632162310020192019183122202015241919142616251920271948202119291924152318231621251722191821161911181528262413182019161918141919321929182319161816141002219171918312020191519192114221621192227264820212929292421231923202114171019142124194718172819241418171916192014151916191518221920181814292216171918142017191719302114221521232216261920152922293721441932205114381050143124484724173419361422173516322044153616201533223020931860291371633191221470176617503033142915422330163919491933152022213728442232465126384650543148482624283438362322223535322244213621201933213020931560381374533401223870306621504033372911421330333927493233362022212828542234462026234624541748182623282038172331223635182217212921451912621632010515138381264512240105389530312123402937211185136133602767323836802212028775413234612040235924441728188123162030175831343633185817571941291484540126326377105107138541264812276105769597314323832943216885596185605267643851803212042774513265615040285957443428628124168630775874343233151584557944173148774023229775610752549848427612876769753436783654362685359378563525964475167322842624511965635031283457873469624824146861017741745532271515245105949373407794193724829885641526198864250128427661538267456553627353533746634159204753679328536269119436362318234418733699848531467610111841445539274452321052393234060944637424858881234143615986285010442676151827045253197333533346754174203653409362536769674389624082944110233899874532776341185644783984444632482399235260554661427958931237043145951287110442675051887055199121011939334633537512974723646401076240674367130895640519473102398927432743343856907853849046714860995952895556611527911493149707114525196713842755084881075511891911015139644668535212963724146481072940554326130365674515073643929195723536643283872901235356906871115606259478977561091525611421491371305227963538237532843210752118459150514964846819523763314146483429665553263336467483506064362940572235326639283672421231115677683011553623847387749109405640192623413363026275335552331325532475230456750344946843619363724313346483442663653453329467983366047364040342234322939293669423511127772630225329383738344922404840312636344236442663535255373127552647230136734341746233626363724393314482842203626452829257929362947354031343534242921292369243527271826142220292237373433222848293129361442324424635052373736272326341929212131034181710232426253720391914192811202726192822254829252929351731235292431213423892453271418571445207222423763336028612944297414102325524645032378536562394347829681270105218541047246225592078194319611176273719422224829257229106176419452592999317434958976537514525743451937281421136366604361129449574541025555756460321388547567394807878686070655285547947107623559817881431676117762037464230193527529447210810654644845172591049932746595737611775485245433719333816311365664143481294095665450558675556055138584765733580129781960616519859479931071161940352781498110516715117852043466130141351247511044861083754894852172521044132776517973130117120486045249376433986377654141484879401276628501448653551595512958936511635911296519761945611419449427933611632405327514920105451512285374330611914136124361105786373726893452235223414577211792113017120416037249341931643398257722412948247925127542841144545349159251292993321162791366553761345131913141344152713361532155312511120184518221937323020193736253619572637202619342323372328453821232122173841393732342331263320251922262928243625345425413454304932252729373232273136295325192913291339134613211519132515271530122711431831186191032920133713251319142610201719152317371828213825232222533820393832292333268420281933263228243627342825313431302832272731372332293127293125282940292039274621213319332539273230332742434131251912616101491413131311131514101018171815161717181521142514221853162021381829183318841428993315321724652747285131413154287327129311423152919272031152818402120132719211633153315392632133319421541142518191212321613141114171320111015201019181518111617172215311431142818201628214018351843182114269938152217246523471651294123543673271291614291514194120321523183521321322191616411529151626381324192915431422181512293219133611351720202110292020193515181126172619182217311931212862092810401035174318212326173834221724252320161929242320361927211619291714184119322323193531321922121627411929351619381824192978431922341519293119193627351920402119292620213519181926192610181917161919211919196419191037101917201819232317193414171925820191917241920191919211319191718181919222319192631191927121427151910351419131814191678271927341719133112191227141912401919202623212119161916197101919181625191719251910419198379191120171910231619141410191281219131725191119101913132119251847191522191924262519172717191914151516102114141325143216352732271517251329121012121422123319282021233021281617161972019121811251717172522102291981692811201720101916181422102012261210131025161117103913432140251344737155219742469256917153174319109151321699216414118255532573510532180151082569295810561213822743319128942185307328103179019115208112641116317167171052282221391992161152873204020431964187322722037263410221104316185176019513960439040166134983713452106741296973694515394434710968132509972645111848558457511058718078108220696858625622113856747319163949185101192587394103173908011543813464321634616710110512982681395492601154773724075434164164735272923737343922110519714345185796088517260889082166519844134104106661297073904590947547856844505972475149486284535182876978511912222059685862592213756877339637991501012925817394132173738011819544314634903264463210172129153689654576049471147292758241107164511919452629212137973979105337153456579428868723488321953826351394431104386638702790599040754885304462195459424747495562315330823469525158122495940581659193718871539137913503929141917173161321373171181354151463390156450321072271531396131927571949261141792238212107285126194246223121399739792619233314531865174247681634383238535263443918312738213842274059254062481930662854164220472355273168301634345228583049294023193016171925184315261342132039141410171116401344171413181514331315950121031272313201320271719182616171123151226282426172423231639173921261723211420181317174716161738153847521444141810271921174216404025126216192219106108151692017231527176810162234222814302129242318302117422530432826234224201714241021112840224435143118421440134495112223125236520262021177918161628112715212644242017142331163117232125172121202049131517531935165417371541477114491435103319281737164640331241165122441037103915529491727153917391031224122261424214024641845213642273044285223122415171824242121283022213526313642324035441919225140225125316535262621317932916122872782110441120131410311631162318251621172010491315125321351154103710411171519949133519331628937134612331041125125044937123913521449102724391739143114411026122418401664184517361427224421521519101231151918112410214430172120262436233223351819122294015512431835182626312132914192012177208141017111213141012161516171817169171210171317121221121117101110131121518917132619271640949133212351035123325035937124013291436102324441734143714231030121918471629185917301427223321211529104031471931114110424413191317132013241323102315181412149141513241089181826162114141520171716201814171711121814161217151217381716924122117201718121212161714111813162126181817162620271519294019491632263516352433163518371040132916361023124417341337142316301619174720291659253016271133192126292240214716311141164224191413913211318131813231014151214121410142413181047958183216691413151317131613181317141113181416121727121638191616241421142025181812161617141618816102691817162620191525291419201617262016132417162018201917109131616171032121617251314141316191636178201216162518161111101914261422721111612111016102411149982117181118152312141312131215102124161815471458103212691019101317131413171391312142413141412121927101619191216161414141425141814161417161610813101491417142614191325111413201317152019131017152019201817189101618171832321615251714141315191836281918817121716151811111410161416141571611181219103410111130924822178112315221214139131615202122163315301426101712251024101517914131716916122224161432121319191036191919311227162014301416142414141414161210161314143714211419141913231113131013181513191810131512191318151814102618181817321519411516171314111515181428131827174017401565116514131614161515131611181619103419191711123010241422168112319221814129221615201422173315301426101711251424915239151311161216152213161332311312191636111914311927192012301416202415191914151417121416101413371321191918191423111310101518121313181213121212132515171417261618151714151341221913161513611815121412131627184012402365266515131714171518131411491640101919231720121710201919144316211120191518201221221315101415171515111420102011171415914231219141514111612615191312131531451217163211131412191419151215141520141512192015131913171514131030133913131913181414181111101515111213131612111213122125121719171616171512141413172221132115919661281512201218161618131215231726171516171317131812141249144013191323122014179201519264318214220171521201821151314101319181517151111142013201017181512141512171426141516106121920122115194520173732181356192312111445157815661542148312202018131613161513133230223921131319131313141118111118151511171325161411191372191217192616241717121414161792113218913191461212141520201118181621136151517521714161619151317131612141218141413101325121919201418915151026231818422617192117192018111520141313141816171211151416131410191817121915141719263115301015121920151917211519112093712181519145692315112045157814668428831719202013181916181612131232192219214419313271347135211331147185315471749255114431929197777393417572672241917861410216539991378866191451315514821260147020111117018482110119636801586524319681451166915791742164114551847143810581969258419502053183015371912110602330189026951977191181725720108117020541354144519831680127115621997164514571914117771910114361945191023191305419521515019711523117631513819461110891071211915511913114679441510220721555194414448898308174920651398”

4.2.1.1 Pairing Abjads of verses with both text types of Quran

The exact same coding pattern of the previous letters pairing code, Evidence 4.2.1 also exist if we use the Abjad numbers instead of the natural numbers of letters as before. In this chapter I present this abjad based coding, Evidence 4.2.1.1, as it has the exact coding pattern of the presented evidence code, Evidence 4.2.1 but now with abjad numbers instead of natural letter numbers. Even more interesting commonality between the two codes is that both codes are not only multiple of 19 but the digits sum of both codes are also multiple of 19! Because of that very interesting fact, I will consider this particular code, which is based on abjad numbers, as evidence and presented here as sub chapter of the previous code chapter as Evidence 4.2.1.1. There are two identical coding patterns between the codes of the two chapters. Therfeore, I consider this Abjad based coding as a followup evidence of Evidence 4.2.1.

In this code, basically we first replace each word in a verse with its corresponding abjad number. We then concatenate them per verse that gives us representation numbers of each verse using abjad numbers. We do this for both text types of Quran (6348 and 6236 verses). We then pair the two vector that contains the representation numbers of each verse. As you might remember, the longer vector, wraps the shorter vector as if a circle from its beginning. The resulting big number is multiple of 19. Moreover, the digit sum of the same big number is also multiple of 19. Two tests results successes on the same big code number, which makes it an interesting 19 code. Here is the proof.

x<- unQuran 
tv <-c()
for(j in 1:nrow(x)) {
  tmplett <- AbjadSeqofaWordSumValue(x$text[j])
  tmp <- paste0(rev(tmplett), collapse = "" )
  tv <- c(tv,tmp)}
tmp1 <- tv #only first round
#
x<- nQuran
tv <-c()
for(j in 1:nrow(x)) {
  tmplett <- AbjadSeqofaWordSumValue(x$text[j])
  tmp <- paste0(rev(tmplett), collapse = "" )
  tv <- c(tv,tmp)}
#
tmp <- paste0( paste0(tv,tmp1), collapse = "") 
as.bigz(tmp) %% 19 # mod 19
## Big Integer ('bigz') :
## [1] 0
digitsum(tmp) %% 19 # mod 19
## [1] 0
cat("Number of digits of this big number is", nchar(tmp))
## Number of digits of this big number is 419869

As we witnessed, not only the big number is multiple of 19 but also its digit sum is. You can access this “419869” digits length big number from the following link:

https://github.com/quran2019/Quran19/blob/master/6.2.2_code_bignumber.txt

One can just copy the big number and paste it into a web based big number calculator and test it herself.

It may be helpful to understand what is going on in the coding if I print out the outputs of a few steps using the first verse, Basmala, of Quran as follows:

x<- unQuran 
j<-1 # First verse, BASMALA is input
tmplett <- AbjadSeqofaWordSumValue(x$text[j])
cat("Abjad number for each words of Basmala: ", rev(tmplett))
## Abjad number for each words of Basmala:  289 329 66 102
tmplett <- paste0(rev(tmplett), collapse = "" )
cat("Basmala verse is represented as a single number
     from Abjad numbers as follows: ", tmplett)
## Basmala verse is represented as a single number
##      from Abjad numbers as follows:  28932966102
#For 6236 verses we get the same number
# as the first Basmala is numbered. 
cat("Pairing of Basmala verse representation is: ", 
    paste0( paste0(tmplett,tmplett), collapse = ""))
## Pairing of Basmala verse representation is:  2893296610228932966102

I will add one success and two trials into the global counters for the global probability calculation in the end. I did not consider the digitsum success but just considered the big number itself being multiple of 19 in the probability calculation of the global 19 system.

global_tested_nums <- global_tested_nums + 2 
global_success_nums <- global_success_nums + 1 

Lastly, below is the “419869” digits length big number of this interesting code.

“2893296610228932966102232202658323220265832893292893299556919556916403812632640381263268133161681331619223715518791210155561791300922371551879121015556179130071289329661026601995212314547507129640387157222104516279166019952123145475022245845152908847618843162797296403871572221045162791245457324790191106722245845152908847618843162797162311395704113971557730779151245457324790191106710207738113123391162151161831106610401623113957041139715577307791511984547832956892146901429610207738113123391162151161831106610406364723632740479879766741198454783295689214690142967887843817738110416613710401839063647236327404798797667412241089213810329055131751407087887843817738110416613710401839063631106271459632224108921381032905513175140708206311061874596321879161147138142916198751407086363110627145963257810892170521384254163770892138987911377082063110618745963218791611471381429161987514070818111159010547492665781089217052138425416377089213898791137708509784710496101215289790879167181111590105474926635831137190671303667074941121215125257174159061550978471049610121528979087916733931125120621303583113719067130366707494112121512525717415906153946772477908298907979020916930828013719514290122733931125120621303143205011066513452177376631142148155971708953477581291339699333353946772477908298907979020916930828013719514290122795619019290797790741262841421711314320501106651345217737663114214815597170895347758129133969933335596497616551011190308117290788451142909463148582103290103741956190192907977907412628414217112555105166609038088575902734881271101388121290510575964976165510111903081172907884511429094631485821032901037414214752541421224412825885878658770131255510516660903808857590273488127110138812129051057691965125918968174974141329035874170613830874590963149128881490613454755156115398791508421475254142122441282588587865877013133232784047731735731784057170866206742282307791482479013956286987911221921218834157110125149831665169196512591896817497414132903587417061383087459096314912888149061345475515611539879150894845671032902161365176624141251656769066791016791332327840477317357317840571708662067422823077914824790139562869879112219212188341571101251498316651729465409854052054016044951668756110948456710329021613651766241412516567690667910167911503205217508132202142414775401241032904190730741117294654098540520540160449516687561105963141141611315022074120114861769615490965041387251032901046116622213170715032052175081322021424147754012410329041907307411125551051521141292111371101115540561434514659631411416113150220741201148617696154909650413872510329010461166222131707109181451715914132811403114113825551051521141292111371101115540561434514691651047462411471038539101214161901317113115999151159108451113110918145171591413281140311411383929077689131033215475751661817079165104746241147103853910121416190131711311599915115910845111311062905575397107033775151812059657894245113145111873929077689131033215475751661817076841517800103290968090293224187957281930126401164106290557539710703377515181205965789424511314511187289440115611548349120790456206841517800103290968090293224187957281930126401164131453715568611120472170191005311221249624181289440115611548349120790456206919645282102674657353077971314537155686111204721701910053112212496241813442814187911001705614415709283126211691964528210267465735307797637281715914241307377301374833717071235488431043442814187911001705614415709283126211596497139873751394993763728171591424130737730137483371707123548843104382110304644141571645964971398737513949937656112454886497251572235142698382110304644141571641062110322676316332560465611245488649725157223514269833046102247177961016791106211032267631633256042321101370671705614415709283126211330461022471779610167914064537104961316374569614237321190120190420315751423211013706717056144157092831262111020262904379096181550124776804762324063190174707406453710496131637456961423732119012019042031575141606497406311358255241624317071020262904379096181550124776804762324063190174707102749781901342141540753331161327071606497406311358255241624317079761907507690180207540102749781901342141540753331161327078651904684541164627079761907507690180207540289440115617048327312490810790251618273414951341764251141011114611181116131707865190468454116462707160649729718412136626041850146801161157070728944011561704832731249081079025161827341495134176425114101111461118111613170797619050676906835401606497297184121366260418501468011611570707103623678106102747418414229057143121170145111217010179761905067690683540249137681901330221496836648120575051896137346710642181707103623678106102747418414229057143121170145111217010173067843142902119777911102197514074112101379777911162491376819013302214968366481205750518961373467106421817072441032909773766307905165758711250140104131575952958142421831003261181116631707306784314290211977791110219751407411210137977791116540841674375013912121536026641436678987506690180426212766155140853141901313312481011743651174195313113414613862313890103285281818132228115519120110342801161157070724410329097737663079051657587112501401041315759529581424218310032611811166317071314537155686372471242491551301468329368919020038817797987915154084167437501391212153602664143667898750669018042621276615514085314190131331248101174365117419531311341461386231389010328528181813222811551912011034280116115707079561909541934113522411307246246407711135270713145371556863724712424915513014683293689190200388177979879151952905406591706691014775076908865409561909541934113522411307246246407711135270773130983752614939015048279158014095290540659170669101477507690886540660102771647306271102240731309837526149390150482791580140130907751687771311921521383071117513116651181116131707660102771647306271102240702412687506212722237108131307571465613115418172222817513813090775168777131192152138307111751311665118111613170712426609225138130757146561319241817222281751387024126875062127222371081313075714656131154181722228175138535663115158161708333511541817222281751381242660922513813075714656131924181722228175138246324780214141382138963153117573957037103211107663130757146561315356631151581617083335115418172222817513891651041843729672719197070724632478021414138213896315311757395703710321110766313075714656131656190417286487663877088010142619165104184372967271919707075961111113664766915902671965782958935107196572889569371248905717130572689575076901985605406561904172864876638770880101426120651211417690359540669123613539071110901135165659611111136647669159026719657829589351071965728895693712489057171305726895750769019856054065611226212471181706648843101413887241917631708921389879113770820651211417690359540669123613539071110901135165621647326411506651206386561122621247118170664884310141388724191763170892138987911377081016324557102324542063110714121647326411506651206381488175527082281751261715917947661249070620254072454488820126101632455710232454206311071415963141661105924184667201608066124214113012953322825518014414881755270822817512617159179476612490706202540724544888201266919645282102147103474258582904259631416611059241846672016080661242141130129533228255180144691964589102675611539879769196452821021471034742585829042116649715017132886540644141571641191711492184983437161211406632532313126265113527076919645891026756115398797765497941540275902511259371156163171113527071166497150171328865406441415716411917114921849834371612114066325323131262651135270759611111136647804305412701876296559061732150750190902112187476245487463385017028817536272477571685741551562260901503911265251986524915407654979415402759025112593711561631711135270740645378041657701118399655908791675961111113664780430541270187629655906173215075019090211218747624548746338501702881753627247757168574155156226090150391126525198652491540986397116247111232514213143296741721952167749429053150468323819024745411646214040645378041657701118399655908791671624125134766195321110189144986397116247111232514213143296741721952167749429053150468323819024745411646214039211066235730735741591513077911101014132908415571234661249042359771624125134766195321110189144105773427180211018041008290321901109159066975110136688433175123679081133921106623573073574159151307791110101413290841557123466124904235977196510511329066749861501301557123513917222433721618843146138668843987514070810577342718021101804100829032190110915906697511013668843317512367908113102749781901342141540496116741401965105113290667498615013015571235139172224337216188431461386688439875140708196510511627311113130347134183905162272211381841135224113072462464077111352707102749781901342141540496116741402555105147757714260907266612483723690471511301965105116273111131303471341839051622722113818411352241130724624640771113527071064150727054443851186255510514775771426090726661248372369047151130206433027232051804907711471151113203658205287919624110142299538106415072705444385118625651825296271235667531521109213627581719013020643302723205180490771147115111320365820528791962411014229953842180661311072513015126581719025651825296271235667531521109213627581719013032832831047463412611391404218066131107251301512658171901623176632135390757808798328328310474634126113914020631116115621766423454414791903907521557123466124902965977162317663213539075780879820678362367507411087319083790354190712014714025537105541612667533213907106345472728162744641136686700111535108921474181390201476536123718111088472991422063074111061913004719190110411836414862063111611562176642345441479190390752155712346612490296597720678368106612490583514989642206783623675074110873190837903541907120147140255371055416126675332139071063454727281627446411366867001115351089214741813902014765361237181110884729914220630741110619130047191901104118364148681773427184120214932254331987911711206783681066124905835149896421051941706723219065511007226290810901709751651374543690307791204181773427184120214932254331987911711314320501106651540715767968124511667169076041105194170672321906551100722629081090170975165137454369030779120413503746906660909047103853990356651540713143205011066515407157679681245116671690760411337783018413533144696132901161006135649851670413503746906660909047103853990356651540713143205011066512486642141819223813975462417690236124907330216276903303645436907301013377830184135331446961329011610061356498516704130259643665166124418810902815514764414157164314320501106651248664214181922381397546241769023612490733021627690330364543690730102555105131841313014745035171671903289644801443025964366516612441881090281551476441415716413145371556863720712420911515817651913190422555105131841313014745035171671903289644801441176957813118756107781461815702063179113177045449651320110565003825373201103825005653713145371556863720712420911515817651913190421020773837908161796907575132656517571416780990146106969305166108160130971961176957813118756107781461815702063179113177045449651320110565003825373201103825005653715013766516614620443182127967171102077383790816179690757513265651757141678099014610696930516610816013097196607355010385399041353212641661701144150137665166146204431821279671711667035146172242910708103853986607355010385399041353212641661701144222176443631041831108181570177907911317701686276615167206317911371667035146172242910708103853986921021204913796751314136252222176443631041831108181570177907911317701686276615167206317911373503746906690504117190347417668873965011661951130515872418382375614014108692102120491379675131413625294845147731096716267842108501454507791350374690669050411719034741766887396501166195113051587241838237561401410862321101370671705614415709283126211948451477310967162678421085014545077914064537456606371049614237321190120190420315751423211013706717056144157092831262111062899131131132096131831711246113157649320725944370740645374566063710496142373211901201904203157514104327268220422215512182594113617025918190171498171548443154707106289913113113209613183171124611315764932072594437073717828277341101554017159630096131832936813591901172904131492377061042022591317071043272682204222155121825941136170259181901714981715484431547071812114517191532253218443902122593607073717828277341101554017159630096131832936813591901172904131492377061042022591317072894404517116140822225850175461361965023016125318121145171915322532184439021225936070710912545171981104542014321554461352971355792532894404517116140822225850175461361965023016125322012083790629690246140195145903225975120121296109125451719811045420143215544613529713557925323223253113113120735131701220120837906296902461401951459032259751201212962264973289611195901906651621119467259811223223253113113120735131701226351142037176218259344256126138869053241971317014771881008701320510412264973289611195901906651621119467259811220678111547375224196482413610301044645022635114203717621825934425612613886905324197131701477188100870132051041651907147149259753213081635171683144206781115473752241964824136103010446450226351141351362430312479014941747156116417471101941762182594188479288476892143651907147149259753213081635171683144181211176632550190451724435741718475314157298131226351141351362430312479014941747156116417471101941762182594188479288476892143133351141097669011996661097181211176632550190451724435741718475314157298131816351142029619387268253176690520130133351141097669011996661097596111111366476690129315460130971966641141492130351716781101941762182595159241816351142029619387268253176690520130206781115473752241964824136103010446450596111111366476690129315460130971966641141492130351716781101941762182595159241650300413219029127967165130116784415771208241142901872062067811154737522419648241361030104464502583261446651162920667147661979111032267471571871101921303274829022032116470441168154473201703279214211032051376462147766503004132190291279671651301167844157712082411429018720620611111136647247901395623645441479157514801235104152428013850934116140713727614290345322601042583261446651162920667147661979111032267471571871101921303274829022032116470441168154473201703279214211032051376462147761062120702711719034417690688739687213747591747577475451475524794116524544147918119620611111136647247901395623645441479157514801235104152428013850934116140713727614290345322601042065113955613539157109416614214545077911062120702711719034417690688739687213747591747577475451475524794116524544147918119677190526111222901392065113955613539157109416614214545077913143205011066511246662411483416112426509211198677190526111222901395961111113664722290168622801385093411612035189631432050110665112466624114834161124265092111986865196170570477973135111113597779132161701718671514801235104152428013850934116120351896596111111366472229016862280138509341161203518965964837041216110454216113463170446150297150342618651961705704779731351111135977791321617017186715148012351041524280138509341161203518967563740534981106759648370412161104542161134631704461502971503426138411066511633255989879117117563740534981106710263110630324486610290540120543373841106651163325598987911711384508117822810990246116717903222341026311063032448661029054012054337330465865521381475397027913845081178228109902461167179032223453645732592479052715567330465865521381475397027911505216613181148596481055111562111711744311170665819028820251536457325924790527155672382116620567454901716841769056494901394152679151150521661318114859648105511156211171174431117066581902882025128944058155409147751424107913223821166205674549017168417690564949013941526791511741481436615515567301514543077915128944058155409147751424107913212164537804165770319669517414814366155155673015145430779151289329113236311936102121645378041657703196695266176442103814262931108250786125090965084527610327100519014290668847142210432419061344116729310111181038539730905128932911323631193610280431866571246514251804266701977791220426511305987976630121616660901710901429626617644210381426293110825078612509096508452761032710051901429066884714221043241906134411672931011118103853973090519747985804214480791904807916037018043186657124651425180426670197779122042651130598797663012161666090171090142962829086645471556691876626577091619611357332258151364807911379747985804214480791904807916037011028090564011016879372270103290815714217112829086645471556691876626577091619611357332258151364807911375963141661105435743610931192102809056401101687937227010329081571421711475373212663155714365115172415223213866884148075140708596314166110543574361093119226631125120621307185321803143230741590307791576475373212663155714365115172415223213866884148075140708532175105165534418414229057987911711266311251206213071853218031432307415903077915762581286665111554111175371003121010101706612407364789884814861702489253217510516553441841422905798791171181773819237187566614537282321129011741671715917972454906688415267915125812866651115541111753710031210101017066124073647898848148617024892282110338121135881052897908791678177381923718756661453728232112901174167171591797245490668841526791518650112045490111879157141454876653750282110338121135881052897908791676274573201791679474104810590390877021262196441715714833496198133592184983437161511010241715946014383293689190233106127967113280443512331008650112045490111879157141454876653750817731157507648517025926290117075012246224295543206169035160170594598109113241239571903121704229879117116274573201791679474104810590390877021262196441715714833496198133592184983437161511010241715946014383293689190233106127967113280443512331009561906747112431290968177311575076485170259262901170750122462242955432061690351601705945981091132412395719031217042298791171163111010942940016114281162051477731008702170422956190674711243129096150180665110779111054617217511741170631110109429400161142811620514777310087021704222581286665111554111110720954271341369068117015018066511077911105461721751174117095619019290791110422611721704229879117112581286665111554111110720954271341369068117059651051908105435735810918114851701801209919079111680152901593401107105115071170525539561901929079111042261172170422987911711976196704111066665110533361622243730162662248015290159340110710517196255536150309170468509046917119382958874110915055965105190810543573581091811485170180120991907911168015290159340110710511507117052553570175121494060212570210685163121411308711170897619670411106666511053336162224373016266224801529015934011071051719625553615030917046850904691711938295887411091505566175171417667277071411166224501399022749796437101411724485403149010265090844650904724185166390664224114165641621801571704832511507510111661408593497909355181418111727590395701751214940602125702106851631214113087111708596497574142789039148810041844775122138458375661751714176672770714111662245013990227497964371014117244854031490102650908446509047241851663906642241141656416218015717048325115075101116614085934979093551814181117275903957419066514189044941451190233106111790449808532331064817155715130721201775964975741427890391488100418447751221384583760520316651881376577916610290544574190665141890449414511902331061117904498085323310648171557151307212017739221770662597131956074182801381249823756190305572870518908611171518588605203166518813765779166102905442581286661314631313922177066259713195607418280138124982375619030557287051890861117151858810621103213111146313165959253547631418588258128666131463131631110665115466514170485415721155621704851702816862805382805361062110321311114631316595925354763141858824920665113249141875373766102902446311106651154665141704854157211556217048517028168628053828053620431866511546651428013810194180701207509657545071370214342905210362211770170509073112142413489101705317821307199714190179266907117710511507117083501042418336545375090731121739131653524245424920665113249141875373766102902446747115635474381013143066155810905874742903837246377801114214510801705875064220431866511546651428013810194180701207509657545071370214342905210362211770170509073112142413489101705317821307199714190179266907117710511507117083501042418336545375090731121739131653524245492212013790510577061938280641124661008751901321782262909111809516217010067471156354743810131430661558109058747429038372463778011142145108017058750642258128666516617541428825189089854092212013790510577061938280641124661008751901321782262909111809516217010073190837903547969045225314690142170921305774100066100823113507822581286665166175414288251890898540282773157123837961239690452253146901417319083790354796904522531469014217092130577410006610082311350782102340728981152756728277315712383796123969045225314690141964461111546651451112011554111112019611554111111690503170525529066934102340728981152756776235171379041110663259655901411059014296964461111546651451112011554111112019611554111111690503170525529066934176203172177739719618410329014044670876235171379041110663259655901411059014296811089815557411317066650135140708176203172177739719618410329014044670811029672661441141419552090142968110898155574113170666501351407081028090564011016879371061619064298791171111029672661441141419552090142967894665122849447441769050713110280905640110168793710616190642987911711278673664727291614311129096090664665132121635789466512284944744176905071312043186613141941769066165469667169050760312629027867366472729161431112909609066466513212163571121232190317721875623150879798791909329655307820672043186613141941769066165469667169050760312629065030041321902972758139909511187198791669910710134944594176904187913295111147951118131142621081414541559410566021536665224461427171121232190317721875623150879798791909329655307820673126634051326634045011598797327146418871048105545192906377915704717789104151510416503004132190297275813990951118719879166991071013494459417690418791329511114795111813114262108141454155941056602153666522446142711507661318109058747133592184984002418109067141130296742177312663405132663404501159879732714641887104810554519290637791570471778910415151041596314971507290500173214175114690810173216325114690225175621704221507661318109058747133592184984002418109067141130296742177691964528210273843969018741914730117530691201506189654851124120280418657104375619022357266124223954181128014473066610212010023295531130955312805361201775963149715072905001732141751146908101732163251146902251756217042225812867266648269676610290262167979879151691964528210273843969018741914730117530691201506189654851124120280418657104375619022357266124223954181128014473066610212010023295531130955312805361201771156190443906672770187130296742183246902235931712472325411361303478711201772581286726664826967661029026216797987915178946651611663114219990215150727981091578107513013049212018384396901156190443906672770187130296742183246902235931712472325411361303478711201771386175171417787581362894190722824114067136425609081013611211341865148537536425659081014182106418992485377894665161166311421999021515072798109157810751301304921201838439690745265002066516630151890542664782274418763378899015259571111130889120183138617517141778758136289419072282411406713642560908101361121134186514853753642565908101418210641899248537227508182111154665142811577506176848890708177745265002066516630151890542664782274418763378899015259571111130889120183150180721426254191360951192107566510372275081821111546651428115775061768488907081778812867219848243137710616290106966137731150180721426254191360951192107566510372581286661319813150627869216690102820881286721984824313771061629010696613773115018066131171124572581286661319813150627869216690102820789472212165300429165741570911312135175090261109569832936810670513059066730415205185483731610362487526171501806613117112457105845147662248496886111662245078851311566211166221613211201316622161326925132321912811708519048371226787398202691171789472212165300429165741570911312135175090261109569832936810670513059066730415205185483731610362487526172061767866224566622161519515168551156621111451311215174784187690354381111451311058451476622484968861116622450788513115662111662216132112013166221613269251323219128117085190483712267873982026911711503205266511546651471040110454901708847170665609341966412210737195970184750190969111202581373983297398262891162152579708206176786622456662216151951516855115662111145131121517478418769035438111145131596314971507222190387908329368106150719079867504291071408702731385113611118911621525797081503205266511546651471040110454901708847170665609341966412210737195970184750190969111202581373983297398262891162152579708302596436651154665144298514157070217062111102193751645571566211191313614011202022071317505707381164735863748461401311423219053031429547362351171161107450512061201511049711304795963149715072221903879083293681061507190798675042910714087027313851136111189116215257970881259643724292469023013117062111891082782577506278248752199721505527973025964366511546651442985141570702170621111021937516455715662111913136140112020220713175057073811647358637484614013114232190530314295473623511711611074505120612015110497113047988128666511541000251904115066511543945410424181101795243739713754351322615423110614911116614025190561715261690715101311706237812596437242924690230131170621118910827825775062782487521997215055279724911010942951230977111630920711057710958514877561704115257951170623188128666511541000251904115066511543945410424181101795243739713754351322615423110614911116614025190561715261690715101311706237302596436651122941517375763035575711017921741166721651321520413001095851520110561511329064057249110109429512309771116309207110577109585148775617041152579511706231611651591161635581109963025964366511229415173757630355757110179217411667216513215204130010958515201105615113290640575964837041200616610085317822747315112013161165159116163558110996789472396902469023041901706211185313180512107541512931111997215055279759648370412006166100853178227473151120131631110109429511646789472396902469023041901706211185313180512107541512931111997215055279765619041790667277063111010942951164658631142721106142110910736665165540453667521147790811751260908107914160071656190417906672770150180665115466102905445863114272110614211091073666516554045366752114779081175126090810791416007172952879127273595335104611911016611107417019015018066511546610290544106415072135171324435621554221511212669085511066102905813281471389383256217042251580351316610290581918157375921387011167690312629010241600717295287912727359533510461191101661110741701901501377232190954267214017190762317018666511311029013541676951231091141611213586611389144690572104665110775137106415072135171324435621554221511212669085511066102905813281471389383256217042251580351316610290581918157375921387011167690312629010241600711965105190467509051137483262371163162081123262901459584048151951651107751371501377232190954267214017190762317018666511311029013541676951231091141611213586611389144690572104665110775137384110726675373595143217595906066177961016791131744428781115311381159879711221511351713295589211285168190321001361347096100180955021702575426651131964462001511965105190467509051137483262371163162081123262901459584048151951651107751373921771103981979082931611281253138744702167738411072667537359514321759590606617796101679113174442878111531138115987971122151135171329558921128516819032100136134709610018095502170257542665113196446200151232110910706661061032574874917142661547332181151110121664134402153666753183392177110398197908293161128125313874470216774211207714113049266412450232110910706661061032574874917142661547332181151110121664134402153666753183224411906610693841663114230090141919021511181064944594176901219079193141663114219521677494290531504686089173566690901358721109179613214504211207714113049266412450105845394456376353795823156421511329041881238987911711224411906610693841663114230090141919021511181064944594176901219079193141663114219521677494290531504686089173566690901358721109179613214501051141171034353710385392951363114332145903229337755477062411507583212946074170190103290475399041359637115170631187491132363166105845394456376353795823156421511329041881238987911711150180723626231647314581184681121449310170104190535462104959022731105114117103435371038539295136311433214590322933775547706241150758321294607417019010329047539904135963711517063118749113236316669196452821026714024128790914144799307797287411402908589879146661501807236262316473145811846811214493101701041905354621049590227311062177293172300741487127390848167190433421661312591314572952131466387412122591317011216640751207902591274141600716919645282102671402412879091414479930779728741140290858987914666314320501106651141131354621517914254041311010424111571711620926941115752570529140411231111569323213156872757932131932601315775401115666527452766671038611315821106222131511024076171062177293172300741487127390848167190433421661312591314572952131466387412122591317011216640751207902591274141600717894665114714149113054021145355011010454061425250902781380131142149106421314967713148742811026120225913170731432050110665114113135462151791425404131101042411157171162092694111575257052914041123111156932321315687275793213193260131577540111566652745276667103861131582110622213151102407617150137723211209617215561475090143132853155906610290123296791570789466511471414911305402114535501101045406142525090278138013114214910642131496771314874281102612022591317071314537155686372471242497571137912384153831540661029012329679115013772321120961721556147509014313285315590661029012329679157088106072711488199908101331396136131453715568637247124249757113791238415383154066102901232967913921772931728981320110370311257053917960311522759065583293681063714222176240761748123655448319879117118810607271148819990810133139613630259643721193910870131101057881391002155859023690131966144114141232967915763921772931728981320110370311257053917960311522759065583293681063714222176240761748123655448319879117111156190443906672770118925195362180961915412531051172509096352888149061313069090583547651732130259643721193910870131101057881391002155859023690131966144114141232967915766210606651154952247513213185366869511434973710329090855875224142290238987911711115619044390667277011892519536218096191541253105117250909635288814906131306909058354765173211501377291795132514472432317411144401621060665115495224751321318536686951143497371032909085587522414229023898791171167433293047731811417184104416963219010442615013772917951325144724323174111444013429010914715566131950901390723590671476743329304773181141718410441696321901044268125964372541901803169081091422824109257152416264135134290109147155661319509013907235906714714263149710196810906374766141414326864736181090637473219029661065513010081259643725419018031690810914228241092571524162641351150766131810906374712114215731158795661901072701251032901003615316610290306791451142631497101968109063747661414143268647361810906374732190296610655130100131453715568637247124249155172261293103123296791150766131810906374712114215731158795661901072701251032901003615316610290306791451691964528210214775966641252170411155462079010211917023425411366452345701139213898750131904011026741156613221231234117791131453715568637247124249155172261293103123296791551301502031726262282346615869196452821021477596664125217041115546207901021191702342541136645234570113921389875013190401102674115661322123123411779113145371556863724712424975644141571555611539879151551301502031726262282346615819651051234901124191366508987911711131453715568637247124249756441415715556115398791511426371426311382761708425730766902128385877013119651051234901124191366508987911711596510519081060157315411235335706715714263714263113827617084257307669021283858770131103631514824119050496540664195729575145965105190810601573154112353357067157150320527266216665146224613658757319374231011379237023238343262170180122676101460947651321010327137515366124170790394123371301833515083781417023511337842601400601230513519014561306993132938770131294903797831375122011805155931796171561391157417113132195672372076654613911574114654266145614325142313371374231224685141503441669057029879117111036315148241190504965406641957295751415059643721375411364769634686737207665464974977411308739329113195333642441476340110510571503205272662166651462246136587573193742310113792370232383432621701801226761014609476513210103271375153661241707903941233713018335150837814170235113378426014006012305135190145613069931329387701312949037978313751220118051559317961715613911574171131321956723720766546139115741146542661456143251423133713742312246851415034416690570298791171131432050110723219078832112013706671411091725190414135710329047539904165150596437213754113647696346867372076654649749774113087393291131953336424414763401105105737167253135113722114429590136243031301433512689150229207904688433279131432050110723219078832112013706671411091725190414135710329047539904165392177110472128451306811287121157781115314152937253183907911104836129216147837253662717151175831253883411224824136142321916614031371672531351137221144295901362430313014335126891502292079046884332791713921771104721284513068112871211577811153141529372531839079111048361292161478372536627171511758312538834112248241361423219166140311874911323631662893296610213164394296271235141454130877159270694723187737566414307791514629417119132901874911323631661429037103290320115700316651131643942962712351414541308710912511323631321110281903667411159270694723187737566414307791514629417119132906743329304725312490507922021719095466324521504745214205661414957084161810171839079112211498074544155509412954541308874111142903710329032011570031665145451712531049081134707017618914073125310912511323631321110281903667411115672031665195212318614211471253674332930472531249050792202171909546632452150474521420566141495708416181017183907911221149807454415550941295454130887411128211645733216690873712316514608030779151454517125310490811347070176189140731253204318728056614264657291779079740631271567203166519521231861421147125381789841970154830782013028211645733216690873712316514608030779151325773077509051321903473072161211625311306817661029093195932550901690711042043187280566142646572917790797406312774118129729655511750745199182677922738904354071491529074310171678178984197015483078201301103027266901063259249669528881490613454247124508820790908121291303257730775090513219034730721612116253113068176610290931959325509016907110428277315780981136192102253202791741181297296555117507451991826779227389043540714915290743101716730318773676482923841103027266901063259249669528881490613454247124508820790908121291301091251132363120215217149143113236315666309282773157809811361921022532027911023406613166414310961071013171594176903245441479111114716366124955130318773676482923841103027210641301724435741718413813157214845441482013652396652453121038131109125113236312021521714914311323631566630981775627142902023077916021081212153602664143667915110234066131664143109610710131715941769032454414791111147163661249551401907547843969018741979167110302721064130172443574171841381315721484544148201365239665245312103813111665113539045654010710866423411404549015341479141600718177562714290202307791602108121215360266414366791517467841109901251525533228255180138987504019075478439690187419791671036315148241190505029521231862097021901166511353904565401071086642341140454901534147914160071314320501107184136711901136711904837111301215337119012181612191106130746784110990125152553322825518013898750711212711907134990481120948190491209101902874452879010143910363151482411905050295212318620970219037166471956698450613590751323209066901807501909622760905839222317103131432050110718413671190113671190483711130121533711901218161219110613031432050110721032904753990411566615541773609041108751130711212711907134990481120948190491209101902874452879010143911029672195669848746736851364107690540471049810905404119050407563716647195669845061359075132320906690180750190962276090583922231710312581286728189012966682619664665105113031432050110721032904753990411566615541773609041108751130392203166131443131333669713011029672195669848746736851364107690540471049810905404119050407562321103613725937714519066512581286728189012966682619664665105113015018072872908789153922031661314431313336697130181211451711006124497190415013506120236164253170123211036137259377145190665128440190132222787672905166761295110612764314172561128261202531128215115018072872908789157112123219031766516612490115317065061290111313081301328223811663491238142119454465118140208618181211451711006124497190415013506120236164253170111618071269151049040720213120723875106284401901322227876729051667612951106127643141725611282612025311282151220906931181669097235405326651282901401511713754071121232190317665166124901153170650612901113130813013282238116634912381421194544651181402086183214119066770131371658253109211010714086612021311161807126915104904072021312072387510626141376731222927248325210361424903243113116401042021312209069311816690972354053266512829014015117137540232121110207240201665129011137531707321411906677013137165825310921101071408661202131382110307842525612901126141376731222927248325210361424903243113116401042021311196701894704729014056217196701894704761791043649075023212111020724020166512901113753170743396843969025290531501491069597532665129011137531701382110307842525612901122096628090142106119670189470472901405621719670189470476179104364907501667035146172242910702321417406677013150223076404086612025314339684396902529053150149106959753266512901113753170113164911045416122096628090142106196510519046750905147890126047507431296675348735330972196675322016695811250501009090731612629018473104613126241303166703514617224291070232141740667701315022307640408661202531152665882629018479170248741872907564390246271241131649110454161650300706168268212665119651051904675090514789012604750743129667534873533097219667532201669581125050100909073161262901847310461312624130322654316689266342108312131664135290131331135150691511526658826290184791702487418729075643902462712414011105543275304884392253650300706168268212665135281072662662732265431668926634210831213166413529013133113515069151156695510131122149373415401875641307791186499791110307791902804137755661150116613170140111055432753048843922534019075478439690319774898307791122352810726626627310622031722552315611539879148156695510131122149373415401875641307791186499791110307791902804137755661150116613170110995744390130491750401907547843969031977489830779112216670351315406039073545590661241505705110622031722552315611539879148771904701112229013910995744390130491750814110665502334875402572481871781301151245082101719034417690953217016670351315406039073545590661241505705110912541665766323690471393114170651771904701112229013927715066131443131814110665502334875402572481871781301151245082101719034417690953217022654317223443131666090207873923171037321757037663212632128113779541508454361113010912541665766323690471393114170651656112819032131643488472599046870454361127715066131443131596314971507214079010013146815014079013145552491622654317223443131666090207873923171037321757037663212632128113779541508454361113065190714717114971106402373625971416561128190321316434884725990468704543611227467298797937124848202611424751596314971507214079010013146815014079013145552491663647236328964795636454369010541065190714717114971106402373625971417654976641475670454361122746729879793712484820261142475159649713992275139548704543611636472363289647956364543690105410339175806314287149879111088743984543690105537765497664147567045436111501377232190431661694151130262124887857415701342651661950511301244721203250337596497139922751395487045436111051941706723219065511003391758063142871498791110887439845436901055372065175366110208102142901611001389875015211544441326125312674965190141612536249651904543696150137723219043166169415113026212488785741570134265166195051130124472120325033763120661315178697904210519417067232190655110081773819237187568611603766145378379075731316717159115366819667915120651753661102081021429016110013898750152115444413261253126749651901416125362496519045436962065175366110208661249011476612490112084549011474549051145658610242113557631206613151786979042720510494545965104332383106666090407883171146540100105454664315153271418177381923718756861160376614537837907573131671715911536681966791512264917017633331220715913721075131137206517536611020866124901147661249011208454901147454905114565861024211355740190170583971315521383017901101747942131831757617071234296745407942390871711536516613017077205104945459651043323831066660904078831711465401001054546643151532714132845147750764461702264917017633331220715913721075131137339522328610385399090131411068666412914019017058397131552138301790110174794213183175761707123429674540794239087171153651661301707226351141351362430312479015515611641747110194176218259110884716188476892130328451477507644617095290837901795142160651631210141296339522328610385399090131411068666412911062177293172494651083275132214776307147662911022635114135136243031247901551561164174711019417621825911088471618847689213017414814366155155516267952908379017951421606516312101412961216453780416577031966951062177293172494651083275132214776307147662911025812866613114275076904107913217414814366155155516267918457385353280301245401477630779151121645378041657703196695401907547817737567749542708103280589014216030151454307791512581286661311427507690410791321507661313209063747466816374182334888091845738535328030124540147763077915125551051523645488130643487511329019511031224841323129239711515040190754781773756774954270810328058901421603015145430779151105845147750769075366110691170150766131320906374746681637418233488806519071471492597556066194130255510515236454881306434875113290195110312248413231292397115150261252642977017187641237511058451477507690753661106911702321201060661313009610346541904431114211071927163996259181463412956519071471492597556066194130596411103197266414756704543611130261252642977017187641237515961111113664732049780146491906610212055070454361113023212010606613130096103465419044311142110719271639962591814634129536116276280454414791903914965198791171159641110319726641475670454361113065030041191846861096301156664121708404977561165961111113664732049780146491906610212055070454361113022649732896379061086650898791171136116276280454414791903914965198791171186519041790667277096991282902933811105166595676211986219186510701170665609347873712466426146503004119184686109630115666412170840497756116245457334112012742931384141140461505062264973289637906108665089879117111020773757349459417690112478781148337865190417906672770969912829029338111051665956762119862191865107011706656093478737124664261475651043804893162767416547179112220476201212562454573341120127429313841411404615050669196456625317065121379148102077375734945941769011247878114833726197122466471411304926641245075651043804893162767416547179112220476201212562786736647103290475399041716919645662531706512137914832877222313575811101454369142685583411205174296971711204468105102619712246647141130492664124504063154023911260757711321076802786736647103290475399041715408416743750108121210560266414366789875020615514086690180426142904666904232687416176615514023287722231357581110145436914268558341120517429697171120446810510133511016266412496156464543690771074063154023911260757711321076802209073124290403341120127429313832936816254084167437501081212105602664143667898750206155140866901804261429046669042326874161766155140263315072321160810901974713351101626641249615646454369077107691964528210273321669087371231651460803077915122090731242904033411201274293138329368162103623610666101547541236977146708494290962185909655710902964157063315072321160810901974765651051443906310422334510904713890184440610456041176341573112090672107319879117116919645282102733216690873712316514608030779151331110315066511972453130194190153170877637708921381967085545655813637511484916103623610666101547541236977146708494290962185909655710902964157067206436651321791070319136995783058555257511123620516565105144390631042233451090471389018444061045604117634157311209067210731987911711150180725912152274185690141070733111031506651197245313019419015317087763770892138196708554565581363751148491622357666116927281151150551445701672064366513217910703191369957830585552575111236205197619066588736497208664001401501807259121522741856901410707187137901121038262114511808125653670122357666116927281151150551445701206137901127072621187063319048391369951429761906658873649720866400140109125661249032371477198545905123266108471871379011210382621145118081256536701673279477730779190290219206137901127072621187063319048391369951421027176827715541873202729050100109125661249032371477198545905123266108472581286723219078832112012901032904753990417167327947773077919029021957419066514996953234458319879117111027176827715541873202729050100421475441282514258128672321907883211201290103290475399041717041903336610357419066514996953234458319879117116604751038539107664262901325413444214754412825142492072142120248194110581048302902967917041903336610320651187411103077666327891290968331828669272369777394187702797660475103853910766426290132541344232204166966952888149061346024790132562672492072142120248194110581048302902967918531787111012381032903571601929010301042065118741110307766632789129096833182866927236977739418770279766010272517163706232204166966952888149061346024790132562671965105118849747237462378531787111012381032903571601929010301041062203172320150171698791661861426297834565753081771001843082305166010272517163706392164987916618419651051188497472374623738415615020791661507789104151510411062203172320150171698791661861426297834565753081771001843082305116064976621845415113290477546510140392164987916618461266963216610101601871101929623411062353074411323211379010301042963292473841561502079166150778910415151041612136964618375092149696461965092149680424667533284651220714716064976621845415113290477546510140384207253947957476610290139716812173026811553162908761266963216610101601871101929623411062353074411323211379010301042963292473921771103981979082929039980981128125313851321817147612136964618375092149696461965092149680424667533284651220714724920728375091249650966527384207253947957476610290139716812173026811553162908792166923411028030779149651987911711392177110398197908292903998098112812531385132181714743281017137663224920728375091249650966527106255678282991517977041685284330330779113890250921669234110280307791496519879117112271109107067218015114054216543054083722490156962249015046641262417690616272909748507024187585697018566254140432810171376632596438127215441375414111047291104210416448629015033313110492376207011062556782829915179770416852843303307791138902503311103150721989041184360904166488959415611554227912394789051036130625814132027290817136202507231412369074665552725113032090272908135202859501391210681016236491104111150105132018296107176901708854022711091070672180151140542165430540837224901569622490150466412624176906162729097485070241875856970185662541408812866651165661511408941874401543921955415615044379151596438127215441375414111047291104210416448629015033313110492376207013025964372466387218390273750661435374744841175783610177871032901009702733144307811483319879117113311103150721989041184360904166488959415611554227912394789051036130625814132027290817136202507231412369074665552725113032090272908135202859501391210681016236491104111150105132018296107176901708854017981810259669013554807661029097096881286665116566151140894187440154392195541561504437915196466719707480963025964372466387218390273750661435374744841175783610177871032901009702733144307811483319879117115872066516611053651778227290558751747165231649096816319409814704275480669025312317981810259669013554807661029097096223576661168190410741701170140057901033111664105196466719707480961036315148241190504965401875610304341110709610405192714758720665166110536517782272905587517471652316490968163194098147042754806690253123371789859669067113110661057473171223576661168190410741701170140057901033111664105120643302726612460845103631514824119050496540187561030434111070961040519271471028611201329078571104542019841715544623690297135572701227110669013437178985966906711311066105747317131432050110665125112490111307066157058653310414755478206433027266124608452271866683319554156154471028611201329078571104542019841715544623690297135572701227110669013452643141721839010041140202162135303766360456145321903613816276610290538508751462387911863143205011066512511249011130706615705865331041475547825551051477251120302130537411383618773313879122718666833195541561544737324712430324496610290537791520375264314172183901004114020216213530376636045614532190361381627661029053850875146238791186131453715568632755904715570793103491590664474334825551051477251120302130537411383618773313879122720489031665791666901671028373247124303244966102905377915203710202045141351268203391394176903336547479113145371556863275590471557079310349159066447433489716666121144103137103290120104142511427513179122720489031665791666901671028102091070672661057486762157091666901672701020204514135126820339139417690333654747911965105174311321116369640179092971666612114410313710329012010414251142751317911020773818379090975113326622432166101780963319039779195371020910706726610574867621570916669016727081773813216610178013533190879151196510517431132111636964017909210577381542637513092266810751309230779113037102077381837909097511332662243216610178096331903977919537102020417091350357301681783219029590425661061043110209667147529011436741811549141110227940667141817738132166101780135331908791518125964372103853975171187567639412417550011327581111915906644743698791130371057738154263751309226681075130923077911303734977381319210812121055811384153210721143906651138791136661701341020204170913503573016817832190295904256610610431102096671475290114367418115491411102279406671411469731006657855444375081259643721038539751711875676394124175500113275811119159066447436987911303725551051102115057074949614290290741041302824563554724183261463292796651138791349773813192108121210558113841532107211439066511387911366617013433146024649621152902907221847481311469731006657855444375014375113296554788184896412821203017018756270542984778161905025551051102115057074949614290290741041302824563554724183261463292796651138791278117907501319136995773171152879196192904544147919065625713890518331460246496211529029072218474813196641152171591791411562178439213717154745441479165166130170714375113296554788184896412821203017018756270542984778161905081773818049013556511119770436951824084335479152031278117907501319136995773171152879196192904544147919065625713890518314320501107210385399071966411521715917914115621784392137171547454414791651661301707677744229310111181038539730905181773818049013556511119770436951824084335479152031282773231141437061130412531038539730907721061161871526698679131432050110721038539907134290109147102318428210349071253677744229310111181038539730905143511054353212130680981136125317226498511627510622110225328277323114143706113041253103853973090772106116187152669867911561110317118756105837310110531414582533429010914710231842821034907125354011812972661249051028881490613454766526165381543544112907202609081721687187290932561792090150141140881316124775547435110543532121306809811361253172264985116275106221102253689030779153212803115611103171187561058373101105314145825381789893540170511540118129726612490510288814906134547665261653815435441129072026090817216871872909325617920901501411408813161247755474648106612447661249088966952888149061345475247508791100689030779153212803110234066512471242497567171591664149663165103186884710188476810612045436905781789893540170511574190665142253063009879117114648106612447661249088966952888149061345475247508791100313170716651287755774166514127731235136508229673624190907907412625081421711102340665124712424975671715916641496631651031868847101884768106120454369057233177156138411234583754114384337123492414574190665142253063009879117115133265750162490417104511321120131279103760015290901241166492905763211205728932966102261761411919532012090611319365015241431317071665128775577416651412773123513650822967362419090790741262508142171139713775149138963651529066103441138187813372331771561384112345837541143843371234924148168116155397123865947824291713917196810106171962395121434346337123862425051355511311101039702418492446513326575016249041710451132112013127910376001529090124116649290576321120571127153720795130813961236208115218739612362081152294261761411919532012090611319365015241439713775149954392184983434323610087083971377514913896365152906610344113818781337791371896662715568895291575590627367919468168116155397123865947824291713917196810106171962395121434346337123862425051355511311101039702418492446341252252112901179297149278117791511127153720795130813961236208115218739612362081152294791517166516690109520190303566603112670647811611176901551566123571131106115615717403580701314035715162081155136198060251116244715762041103116510111861217013165290857098010290661763971377514995439218498343432361008708881507266901111041121064781161117690106190531125750907217813115513619160100176014124778671623371576478552111769010608162116540907113140908070511060813039164781661117690670813031704085711314085807051786204122096791371896662715568895291575590627367919461051124756966952888149061345464930766899666224503412522521129011792971492781177915110577341966362526492749030766170967915171665166901095201903035666031126706478116111769015515661235711311061156157174035807013140357151620811551361980602511162447157620411031165101118612170131652908570980102906617610385661137477552418449902623161311502781658571819042547147888150726690111104112106478116111769010619053112575090721781311551361916010017601412477867162337157647855211176901060816211654090711314090807051106081303916478166111769067081303170408571131408580705178620412209625941071665116611581364041318331504788181051124756966952888149061345464930766899666224507915166771556641814731290474540461072068206611044492105773419663625264927490307661709682774755266730151512791378280261131477581008702418512206820444506103856611374775524184499026231613115027816585718190425471478731811956611932163251220726131429638107396471513291241874114413613722615211075190483198791171125941071665116611581364041318331504788181035484591763321951708111361698571611116498645577915166771556641814731290474540461072068206611044492194165215013578724193289111017621168277475526673015151279137828026113147758100870241851220682044450610377547394715617010441321529070784148537731811956611932163251220726131429638107396471513291241874114413613722615211075190483198791171125912877166511701044132109262520571849079112485170621115710744837013157107447218190277904722811814531107901074118147251310324596324591098577107451950717064810354845917633219517081113616985716111164986455779151716651112676907185113117062371095265542145714111212491210248140180951790217419045170664231624904132152906261941652150135787241932891110176211625812867290810699571505519101207508049062011041220245396461131149782656214137590121058942926546891753220872909321641417256895190162490411705686208851461505497096103775473947156170104413215290707841485377815072170424192907911609590102662242591287716651170104413210926252057184907911248517062111571074483701315710744721819027790472281181453110790107411814725131032459632459109857710745195071706481021814875174353879123017041851224727915171665111267690718511311706237109526554214571411121249121024814018095179021741904517066423162490413215290626961193736180770516622425812867290810699571505519101207508049062011041220245396461131149782656214137590121058942926546891753220872909321641417256895190162490411705686208851461505497096259627166512519373715014011206094765132751221384583198791171178150721704241929079116095901026622428166110750772521852269771327501909610218148751743538791230170418512247227167575054118035012551141233862519611937361807705166224151320527166519159066105533811521874908115229487211093276691041897372596271665125193737150140112060947651327512213845831987911711320320501107166511975321625747973961236208187154862816611075077252185226977132750190962331117166511031651409111190131107094590276111141811374786698843107213909526411239023849872110917669104315211020326527167575054118035012551141233862518131517166511086619613122551429075419069660108501112057151320527166519159066105533811521874908115229487211093276691041897378871072719020316651162490471335988138862413437102412184983437181211403217927376690320320501107166511975321625747973961236208187154861067744215329159066447415326651423136987912331117166511031651409111190131107094590276111141811374786698843107213909526411239023849872110917669104315211020326536115136135401809683289376816237142221123296797813151716651108661961312255142907541906966010850111205715147667766352812448329368983615574888710727190203166511624904713359881388624134371024121849834371812114032179273766901021205899042296712342057905671980316651106774421532915906644741532665142313698791320521102270321465090647021903611513613540180968328937681623714222112329679752366526371032474763632717330779120766151476677663528124483293689836155748128715771665191821962217557751414150152571710519015013147340110710505105718974181022833256375924154741829149715770931987911711102120589904229671234205790567198031665113312375128689796645490153414791416007132052110227032146509064702190351681164768116148141725236652637103247476363271733077912076617132162111347661951061537581110112081771372211389642959013658841328210121017722722120892212012135417791901287157716651918219622175577514141501525717105190150131473401107105051057189741810228332563759241547418291497157709319879117112276624177493102151612457214110340211595113290170712351384398454414791171113312375128689796645490153414791416007110215426911846853096321120750604112967530511290316651351681164768116148141725211036373219047663223693791416007117132162111347661951061537581110112081771372211389642959013658841328210121017722722120892212012135417791901035427116753661107461101151227662417749310215161245721411034021159511329017071235138439845441479117111039879190205230782020814534381624549015341479141600711021542691184685309632112075060411296753051129031665135135407160661609666195791675211036373219047663223693791416007136114247231782121901527541103542711675366110746110115110219151311045425931462184915906644741110142138411039879190205230782020814534381624549015341479141600713411001161259490141791902153513540716066160966619579167799571665180485312164413288125391252225146465307791513611424723178212190152754197193173525918967589669528881490613454789561153987971021915131104542593146218491590664474111014213841303181716651710401616651137475511426250870842415244175131166513411001161259490141791902154481258107508329368552510513336641295320909681311502725332710366979879117117995716651804853121644132881253912522251464653077915187862885514012307317512481101447414865128015290884761884398961837914160071971931735259189675896695288814906134547895611539879710514016036261132747668841415087514070830318171665171040161665113747551142625087084241524417513116651603121322565168184405407054443147539702190448125810750832936855251051333664129532090968131150272533271036697987911711104313723690751361021165115118390416615079167878628855140123073175124811014474148651280152908847618843989618379141600712594106650327751747661828402369777019642667531203229690342471051401603626113274766884141508751407085411531310812122369024315401075031311044181623122811160312132256516818440540705444314753970219013133117581110171042411879642135170321914127590811725153851155473524210431372369075136102116511511839041661507916710212058590537708259410665032775174766182840236977701964266753120322969034247651301151541153131081212236902431540107503131104418162312281113916712422635730115390155661617911101473336689961313311758111017104241187964213517032191412759081172515385115547352421516811666909417501021205859053770812433879034189681307987911711651301151320155717070111066161104131147554131111120150573916712422635730115390155661617911101473336689961021941741554705001155731224707071226669091015496151681166690941750102120547122610427620661029054196839965556679166102906511243387903418968130798791171135110490811104710490811104210023467109085525320279112815826590154766102909873190473201557170701110661611041311475541311111201505796171401345140158618144710290597307797661029059798791102194174155470500115573122470707122666909101549652114263751112081084317096511130312344112526756216182270253144915305766935142966135390702562155422151644141571648510775140791416007110212054712261042762066102905419683996555667916610290651523251913117752151661249050130144907101538553757661249071015312353757359211905104247729448310235110490811104710490811104210023467109085525320279112815826590154766102909873190473206811629717136821017085901144766170123901144196171401345140158618144710290597307797661029059798791999155362121446966681184327899052114263751112081084317096511130312344112526756216182270253144915305766935142966135390702562155422151644141571648510775140791416007167681166611046216511514784143272536741121013510541214490216782852085232519131177521516612490501301449071015385537576612490710153123537573592119051042477294483102731111395506612101249071423826721123206811629717136821017085901144766170123901144117132401943659170669107313559279117513527247473274121542777971771229024159708999155362121446966681184327899051131164305723077916311051661402271014210325303166102906116768116661104621651151478414327253674112101351054121449021678285208551320501106677961303580854564609696152358012345646090731111395506612101249071423826721128132050110716651216796121105425468708171324019436591706691073135592791175135272474732741215427779717712290241597085236690195969521231187564126311323631665113116430572307791631105166140227101421032530316610290611103354071606687096668319041651671894332672550362909012155132050110667796130358085456460969615235801234564609035137471352107375045185881431443131661029022641858135210711177612307617563617813205011071665121679612110542546870810315590661031211611011446071505741317071701746631142191548760751345698807651113122146411867913252366901959695212311875641263113236316610315115590154113117151858814317012316110115358370131962885664121141501911141675128086152310335407160668709666831904165167189433267255036290901217915166776690413973565221177017014130782441411759965111312214690715714130789813617908014690711312115132414117525141307898610137530966103213754051166714735137471352107375045185881431443131661029022641858135210711177612307617563617102177435811611156618089663698102555137540961031559066103121161101144607150574131707170174663114219154876075134569880765111312214641186791328135964371665154917066170132905107707351131662049655107018581374901621011411205433754966102901442702987911711103151155901541131171518588143170123161101153583701319628856641211415019111416751280861523102120526611014466916159668057212266110242125144669102421256610290146123147121022790262486317915166776690413973565221177017014130782441411759965111312214690715714130789813617908014690711312115132414117525141307898610137530966103213754051166714725912876677259133195608102177435811611156618089663698102555137540963414779893147966961426610014707113810329015107113851013013823698113753279151813596437166515491706617013290510770735113166204965510701858137490162101141120543375496610290144270298791171110347537536153112815826590154132102120526611014466916159668057212266110242125144669102421256610290146123147121022790262486311287157667716516651661401472591287667725913319560825912876677661102091761844772395403076641250417908139614173112821032901766102902199634147798931479669614266100147071138103290151071138510130138236981137532791511038190783925130779160051112051157907975162170180103290144270810347537536153112815826590154132106774421756651968131355912775110505107249907116271511706237248517022697755912015663630779110550953135413024713770811105837277902037478254413541301351056501577562113547070812871576677165166516614014755342422711047115751157238591782121116187152661008157135078225912876677661102091761844772395403076641250417908139614173112821032901766102902199679151667726931416690665527611371765274835117714149046237103819078392513077916005111205115790797516217018010329014427087417814703766222431426249814145461139521067744217566519681313559127751105051072499071162715117062372485170226977559120156636307791105509531354130247137708111058372779020374782544135413013510565015775621135470708259128771665166174755342422711047115751157238591782121116187152661008157135078255265871902031665123611177911204383779151667726931416690665527611371765274835117714149046237682064366771679010203141478701155176690120637142901206741781470376622243142624981414546113952671558690411875616566481709655901654785249162591287716651661747259128766176617505401959807771509655265871902031665123611177911204383779151667719511097172542929668206436677167901020314147870115517669012063714290120610354845947918422372505405427634929667155869041187561656648170965590165478524916102113066910775404707041166110454130669432090108647236328964786651135105475659130669107325912876617661750540195980777150961021205471226661441141475019096142621307396720124190321059073090810317915166771951109717254292963414779818144641912271021210488503546241769032751196103548459479184223725054054276349296878628301846853096321120750604112967530511290316651102113066910775404707041166110454130669432090108647236328964786651135105475659130669107325537132140575533265901405110212054712266614411414750190961426213073967201241903210590730908103111271539790178113766155341477981814464191227102121048850354624176903275119610391286018466609047401171096667301380372193752592372232962878628301846853096321120750604112967530511290316651140732401129471611292553713214057553326590140511491267337989367112715397901781137661551416690195961096680896695288814906134547895611539879710391286018466609047401171096667301380372193752592372232962351374766609035173772077150904543610237164100140732401129471611293611036378970014713617561792090561901509614912673379893676712596617071492597547915817651913113065119961416690195961096680896695288814906134547895611539879768320526677103290475399041713513747666090351737720771509045436102371641001517716613181090587472025215535712290154753951166485422419173147215246190454901704504714556066130152901032361103637897001471361756179209056190150968135964371661319135255733922214158101651291081395115662111107373641089010812475767125966170714925975479158176519131130651199625912877166131913535572961392111504871117384215262511519568668320526677103290475399041717913866775359051661060791571517716613181090587472025215535712290154753951166485422419173147215246190454901704504714556066130152901032631061667710329047539904165131707576650851781929045441479115714010329047539904171813596437166131913525573392221415810165129108139511566211110737364108901081247576768116103290475399041712591287716613191353557296139211150487111738421526251151956863157501106677863417142177773115179138667753590516610607915730318166778439650966204965092247190631061667710329047539904165131707576650851781929045441479115714010329047539904171813596437166131147774435751151528791114847146391710618051400132725111042653202022078398791171167681161032904753990417187862830184832933014335126831096132908874146030111087741460307689898791171131575011066778634171421777731151103104377513206680703012454030754098540307540987915130318166778439650966204965092247190827747553362502813596437166131147774435751151528791114847146391710618051400132725111042653202022078398791171112465113131113169146922760905839217667918786283018483293301433512683109613290887414603011108774146030768989879117111249890398362114665161570211112155229014234181555811118489831066412610702514549017087110103104377513206680703012454030754098540307540987915110322711042166113861875612278146227902761701224711381524217157170120711386690488907113162758791827747553362502171326698637142277121148157411487087201766741362511246511313111316914692276090583921766791103354071606687096524137524131750621504124989039836211466516157021111215522901423418155581111848983106641261070251454901708711010315117065510516712276090583922107319879117111032271104216611386187561227814622790276170122471138152421715717012071138669048890711316275879135175407862829020225590362511713266986371422771211481574114870872017667413625110212052276641615222711014765109734686141424107913210335407160668709652413752413175062150415152266775379605183566190411031511706551051671227609058392210731987911711151181667797090321679010923966203135175407862829020225590362513151577166131761205577109178114135110212052276641615222711014765109734686141424107913210375062171751286874356874146208301666239751286301683667915115152266775379605183566190411067744215321093884567151181667797090321679010923966203125912876677255471146671351362397763016898797315157716613176120557710917811413511031511164687501202874944594176901341708540101729718262136625221875090223116981841429042415548751454361211037506217175128687435687414620830166623975128630168366791511941652135135849390481317518768366427518769824623140710677442153210938845671713216211134711666813211101891871081212105581664143516969951232591287667725547114667135136239776301689879710214592901101873531031511164687501202874944594176901341708540101729718262136625221875090223116981841429042415548751454361211715414798147432140907754195320120951118791577530710613347541476629629053150149581521871941652135135849390481317518768366427518769824623140779956677466635532171321621113471166681321110189187108121210558166414351696995123320155861876245113271863245436905710214592901101873537316610212014775439422155299177919010521715414798147432140907754195320120951118791577530710613347541476629629053150149581521878277413542153275142781021256211023413527995667746663553210212055716783293682296453915728715290884761884316222913517190948100320155861876245113271863245436905721621468197268132251561101941762182594182819015964417661617652731661021201477543942215529917791901052501116669613037570297132901303761042978277413542153275142781021256211023413527995667732176166611017186711056602291102120557167832936822964539157287152908847618843162229135171909481003206811637514314793618843319661002162146819726813225156110194176218259418281901596441766161765287862837104661021201073077915150111666961303757029713290130376104297320104377513206680709833077915179956677321761666110171867110566022912816611075077896695983193232068116375143147936188433196610079151667710385399041651317075790811178262901413277410414217118786283710466102120107307791516768116103290475399041354035865112619366692908114631036543373016817895220290411385016629629053150149921393266110543371249014373145436113201043775132066807098330779151124467036984821206209642913737657786511496208028166110750778966959831932351374766609075733782774907696618791489159082255231561153987911227915166771038539904165131707579081117826290141327741041421711103257101145262902587410414217116768116103290475399041354035865112619366692908114631036543373016817895220290411385016629629053150149921393266110543371249014373145436116513014680916952539082976146898791122124467036984821206209642913737657786511496208015032052721237519066726529085701060127235612785762081111215610114721314036807051716176204122011610014140351005524751117905606613010263513747666090757337827749076966187914891590822552315611539879112222441786651248497135881210170450413219362904392139498791171110325710114526290258741041421711204318665166514168572110534375532331105408815128013812016051146401363371925087081064247909111468280443101371763750372805363766581445319879117116513014680916952539082976146898791122258128666131571574121077590101017065163901416570170887124904918796313511111249030779180872407901121067571731107104711704132163514711969689488276612403647898848148617064815032052721237519066726529085701060127235612785762081111215610114721314036807051716176204122011610014140351005524751117905606613010261023406651665141156610193417017181137662008165115224990580474539039130753974217728932966102952908379017145191841353109665617503724912102482659127021929045441479190626568906267538186903845441479112645390398722441786651248497135881210170450413219362904392139498791171197619017056548631422410621190170143662244195918219622175577514141501525717105190150131473401107105051057302565105718341300338122452419180117815741580702987911711204318665166514168572110534375532331105408815128013812016051146401363371925087081064247909111468280443101371763750372805363766581445319879117113311103150665166514137221570701766774166217066165934258128666131571574121077590101017065163901416570170887124904918796313511111249030779180872407901121067571731107104711704132163514711969689488276612403647898848148617064859643812665166514576303111125113211014640136337202320652078398791171110234066516651411566101934170171811376620081651152249905804745390391307539742177102021013257556115398791668095290837901714519184135310966561750372491210248265912702192904544147919062656890626753818690384544147911264539039879210267465735307797976190170565486314224106211901701436622441959182196221755775141415015257171051901501314734011071050510573025651057183413003381224524191801178157415807029879117112235766611666514180701807010188511464570117066560928987911711331110315066516651413722157070176677416621706616593413377830184150750763001702888149061345478154118038111911016615477743025376485715758190170616613716357056113562931262651661301140596438126651665145763031111251132110146401363372023206520783987911711249206651185165231135171321356661105094383779278190912392212012135417618316019669699512310202101325755611539879166802767843661171521875641185011710713427927819091976961352351521387919692102674657353077971024292566690741047301201724549011365108173190723477410445436112235766611666514180701807010188511464570117066560928987911711650300418075828741140290864162921062473906672913377830184150750763001702888149061345478154118038111911016615477743025376485715758190170616613716357056113562931262651661301140314320501107232141740108471038539907112410329096522905314965512065132166901001701302905314911665113879130013424920665118516523113517132135666110509438377927819091239221201213541761831601966969951233715210847103853990713219078832112012907301305024913282084215013029666410838856537276784366117152187564118501171071342792781909197696135235152138791963143205011072966512741849603751290654154351321906851109072347741044543611102429256669074104730120172454901136510817319072347741044543611232901441670414689716974150103701170661659281461118111613170765030041807582874114029086416292106247390667299216692681101011379066422441240103264214611314320501107232141740108471038539907112410329096522905314965512065132166901001701302905314911665113879130013469113296820131968204186908058266147965111611138371521084710385399071321907883211201290730130502491328208421501302966641083885653719651051543661161089191108578236155642156661617477919028413131432050110729665127418496037512906541543513219068511090723477410445436112316252612228451788965241869080521161113823290144167041468971697415010370117066165928146111811161317073321776811346161720032913161202131921669268110101137906642244124010326421461133217711046111110329048111533315529313713169113296820131968204186908058266147965111611138631906654292131631131832905427659906123543037011414563531554371965105154366116108919110857823615564215666161747791902841312322026668261581612474524110203441471902316252612228451788965241869080521161113810622175628210290556567553418512156133217768113461617200329131612021319529018161561653019535565332177110461111103290481115333155293137131186901816118129812347065707751481447111316168122711025510329052012046665263190665429213163113183290542765990612354303701141456353155437466103290750761357315154049634145914012414220192269612414253019210329014571901212191530905631262110473750349023220266682615816124745241102034414719010207738379081969061775750103290147771190285705797139754751146103290202307662777912192106221756282102905565675534185121561258128666512281557115113290410791329529018161561653019535565574190107902614246141666508987911711186901816118129812347065707751481447111316168122711025510329052012046665281773811355324118756773907531115581124103290417551363077915146610329075076135731515404963414591401241422019226961241425301921032901457190121219153090563126211047375034901907738196866454728290820512801020773837908196906177575010329014777119028570579713975475114610329020230766277791219278947266901028343217126740339825812866651228155711511329041079132258128666511154186613113597576904031705741901079026142461416665089879117113143205011072321120129632190782103853990356651540718177381135532411875677390753111558112410329041755136307791511020773837908161796907518322451662147079167321669035490160935662149699681770571391706857512029227690121354437708611762277822271779196183496761409213879190331903977919531327171119077381968664547282908205128030020665120210714946857321103616016514705716510717107149401315281087822277894726690102834321712674033982296747750769050254066689664317515411625812866651115418661311359757690403170388451476688437870961715914241307379631421307111320115846642390145643249356178201387911498782621996643139523143205011072321120129632190782103853990356651540711058451476688437870963530691759417028125414314778478816416816316722322151961554791020773837908161796907518322451662147079167321669035490160935662149699681770571391706857512029227690121354437708611762277822271779196183496761409213879190331903977919531327171166010272564390296271241262199512547364390296271235290531527471102473002066512021071494685732110361601651470571651071710714940131528108782227328451476688437870969566884312536114229674775076905025406668966431751541161566955104321212437366411242650462419013810624461936631142106575150154801399034111688723766884310714911515245490296271235141454611453884514766884378709617159142413073796314213071113201158466423901456432493561782013879114987826219966431395232714290731578038741575166224922214431316166884187212056651960688723766884310769571058451476688437870963530691759417028125414314778478816416816316722322151961554792221766966901199610688514966010272564390296271241262199512547364390296271235290531527471102471062177293166511351361504919687258917583885621073198791171132845147668843787096956688431253611415523690268411101971299024175214215166220220553519602021353971040183907916901566955104321212437366411242650462419013810624461936631142106575150154801399034111688723766884310714911515245490296271235141454611459211881874192009614712682087915398791152327142907315780387415751662249222144313161668841872120566519606887237668843107695715013772321904316691075081817473766102907939211083227110736876514866421226691201506149098791171122217669669011996106885149347516447815721679198797307661069210621772931665113513615049196872589175838856210731987911711112045661713198797307664469615523690268411101971299024175214215166220220553519602021353971040183907916901965105166514583381929045441479190109191241708791210731987911711921188187419200961471268208791539879115226631146987501091917131574150570815013772321904316691075081817473766102907939211083227110736876514866421226691201506149098791171129778157132908847928847689251329164635454361113034751644781572167919879730766106921337712083711250067144782905340135109115180866155906612455375090502123351301120456617131987973076644696526784314172781010451333641110921388070819651051665145833819290454414791901091912417087912107319879117112067841102499102168572903971357316162663114698750109191713157415057082767841102499102572181120249350111672977815713290884792884768925132916463545436111302752031721461032902026697270252118911875641185011710719830710712229061884113573111732111024056820321384316370143011116614565371337712083711250067144782905340135109115180866155906612455375090502123351302014547675261653815149845436514252678431417278101045133364111092138807082064171135736639461352798089623190882479086884713164314996422067841102499102168572903971357316163921772931665114290230726961432121580705722290618841103232717112767841102499102572181120249350111673921771104611113071071222906188411357311172629010188471316435574183201105304543611130275203172146103290202669727025211891187564118501171071983071071222906188411357311173211102405682032138431637014301111661456537131453715568611113014683293689190388196177979879151201454767526165381514984543651425963977293912364213143296599129186348312626511352134206417113573663946135279808962319088247908688471316431499642206433027213573014311754015566403540143197535476328339217729316651142902307269614321215807057222906188411032327171134290109147282598911566248184685309056268212668431262111491372905314911665113879130013439217711046111130710712229061884113573111726290101884713164355741832011053045436111308177313530779119020211147270571936323690471036103166511387913001341314537155686111130146832936891903881961779798791512581286721817664147411259639772939123642131432965991291863483126265113521341726111515404437511211011511511127220952321137901030104296322905314941206433027213573014311754015566403540143197535476328318121111722013710019010031416660905331303429010914728259891156624818468530905626821266843126211149137290531491166511387913001341337712084373184413290837104146238793713912101249014373145436111308177313530779119020211147270571936323690471036103166511387913001345408416743750290531562114111031262903077911502581286721817664147411224678411021913101205223178172611151540443751121101151151112722095232113790103010429632290531494169145804961556666951236755444110230779150213573161018121111722013710019010031416660905331302971357311065817524146884799681627842133771208437318441329083710414623879371391210124901437314543611130748311022652901355375035152138791988205534849352879756988208614230548754084167437502905315621141110312629030779115040111055492253202139903578114590129017661032741884117770824678411021913101205223178220177110253695511751399065476814631814769145804961556666951236755444110230779150213573161024921756966952888149061345413843666292971357311065817524146884799681627842921026746573530779774831102265290135537503515213879198820553484935287975698820861423054876052031665188137906639414226553198791171140111055492253202139903578114590129017661032741884117770819274917416651422706636781632201771102536955117513990654768146318147976190417906672770162100255870216230675052103622117701703078187531710657541769018157512178613361443137710616290106966137731249217569669528881490613454138436662957419054740114090263116181347871929879117119210267465735307797551491115157126669201201703478719018501171221865140122492605203166518813790663941422655319879117111331064347110922288861319223271036610319274917416651422706636781632492072132508540104508540561153104508417021261316256115398791110100976190417906672770162100255870216230675052103622117701703078187531710657541769018157512178613361443137710616290106966137731817731157507648517010456969066180315854861359032266188987911711574190547401140902631161813478719298791171159270694729566680759617011166151246398461427501047181120306712810332015010470777819190530415701015551505359624849713593731987911711551491115157126669201201703478719018501171221865140122492964467416651424948441233104170254342905121312411049039133106434711092228886131922327103661031503205266571032904753990411506651577750182562805421711522804431286610324920721325085401045085405611531045084170212613162561153987911101002581286665720431866511488177311575076485170104569690661803158548613590322661889879117119164746241150721064323271104159270694729566680759617011166151246398461427501047181120306712810332015010470777819190530415701015551505359624849713593731987911711574190674711665881143725964258114348631130964467416651424948441233104170254342905121312411049039881286721266615190406382976812649857526904065132212049831987911711150320526657103290475399041150665157775018256280542171152280443128661033618108540192901469710425812866657204318665114826631772753661107463077911064937141377837225906610341916474624115072106432327110414753732120631557143651156441121138327476688414150875140708574190674711665881143725964258114348631130596510432121243736641860702830901070312511709879117118812867212666151904063829768126498575269040651322120498319879117116321207025266315510373127017142591796031104351683411577690572477147634103290144249151127090852715010470760214268477731008702122315987911711361810854019290146971041062120702525364775690109791683411291555697919022720793254257097110770131266317727536611074630779110649371413778372259066103413321772931721846651414776102604516987201103484185165750475373212063155714365115644112113832747668841415087514070810491414517181140311384467422263216612356596510432121243736641860702830901070312511709879117111022683270651135307791211496458701140312625807077634871203707763330976187632205569612107632505010090113070713164911045456070762809014249019521643570146111613057092129053150116613170163212070252663155103731270171425917960311043516834115776905724771476341032901442491511270908527150104707602142684777310087021223159879117112261043169213831412985131641425707106212070252536477569010979168341129155569791902272079325425709711077013119651051665081311429060161975122255935290531501131213170133217729317218466514147761026045169872011034841851657504019011613264510451196189515961015126413810491414517181140311384467422263216612356399810457365110228581188581476142906016188253106290531501311022683270651135307791211496458701140312625807077634871203707763330976187632205569612107632505010090113070713164911045456070762809014249019521643570146111613057092129053150116613170123290147783177477814115076310170170133616613122610431692138314129851316414257071049141451712109041141372009041540545184535470511104010041137514086411411316660909657176717153045229053150116613170719651051665081311429060161975122255935290531501131213170131932050110457155343451470956151135444413201554762682126684517701413275530414019011613264510451196189515961015126413810912545115175168057971761217513998104573651102285811885814761429060161882531062905315013110511247501251013165661010896695288814906134547523928621056706661312329014778317747781411507631017017013361661313143205011017145471038539906510491414517121090411413720090415405451845354705111040100411375140864114113166609096571767171530452290531501166131707170249307791540293140210910385397307416583319320501104571553434514709561511354444132015547626821266845177014132755304110964915401291504035910540699079074111109125451151751680579717612175153841156274320150103296539906617105112475012510131656610108966952888149061345475239286210567066613111701267832247412901690856473143205011017145471038539906554877841644662265971141729184289329661028613511219040980523285390613288160446155142348901607041103290156350901779010760217711702493077915402931402109103853973074165831022683270651307791161722213709042413013842109649154012915040359105406990790741111216315402729409113942901158867144538411562743201501032965399066171584115517923418991159421170126783224741290169085647548778411358677931891529029248314054877841644662265971141729184853178711101158540103290277130861351121904098052328539061328816044615514234890160704110329015635090177901076021771162311252368677919521231187564126328419511042265130103853990411201301022683270651307791161722213709042413013842181211172931019013041411216315402729409113942901158867144651905263713190377751641611301293712917103853929047170166121113015841155179234189911594210205677321257051682611305487784113586779318915290292483140133124756253184766125380908531787111011585401032902771303143205011091812190571132354011111002661905716231125236867791952123118756412632841951104226513010385399041120130843109178218633717181211172931019013041419768122211719361192130310311308114166110517951211032967104138270641311287231966130315223320111306519052637131903777516416113012937129171038539290471701661211130162311252368677911094166142145450779110205677321257051682611301058128315641972277236611069113097196133124756253184766125380905735107915876152882018654012460362314320501109181219057113235401111100266190576207141253721385132975470705408431091782186337177467841165836236110729110115197681222117193611921303103113081141661105179512110329671041382706413112872319661303152233201113012828132706513077911461244070241881133116502175730779796206517618311016061580901411623112523686779110941661421454507791636472363212157125123125121511058128315641972277236611069113097196227901322534147723725449111218282110193701610425735107915876152882018654012460362809102125627111221142132907467841757326207141253721385132975470705406801084796470321551144746784116583623611072911011517565104380489313125942138141706101131247110193701610421282813270651307791146124407024188113311650217573077979620651761831101606158090141273417132115611026014451963404111071911138140716745970241866143729791860104636472363212157125123125121516561125668208108372714710232965547227901322534147723725449111218282110193701610428166414106210680831176202741125561901048091021256271112211421329074678417573242153903414066521763739144741872072941110379152902901122140680108479647032155114413090526111501101886631142189361429013171032902311812519401311117130222715775651043804893131259421381417061011312471101937016104233946540666274932367914859227341713211561102601445196340411107191113814071674597024186614372979186010420631766106169751110305665113020790161158767144656112566820810837271471023296554757424741540320904549034041632813279229220371032901290478166414106210680831176202741125561901046503001101183119687566311901402906813046572979742153903414066521763739144741872072941110379152902901122140255510515306612111678617667734625167213013090526111501101886631142189361429013171032902311812519401311117130222715797641572311514653041490530173233946540666274932367914859215361751048107147715290814134214020631766106169751110305665113020790161158767144206784140175731835601061477114597011475742474154032090454903404163281327922922037103290129047188457821407139741443295702418320501215553979274111715165030011011831196875663119014029068130465729797232202658997779117720725925551051530661211167861766773462516721302404554044342011011517481661210369019811010463602306613015165213097641572311514653041490530173210581773265352137140766773462516721301536175104810714771529081413421401314537155686111135911701056602324213404720678414017573183560106147711459701147306784380415546572979718845782140713974144329570241832050121555397927411171511156112339152486351304134413247351906190137371043141376666813490137311302322026589977791177207259566175460374665907510024741525517477917957240455404434201101151748166121036901981101046360230661301516521301062905567383209015591904732090116901304119280417104324714079161337105817732653521371407667734625167213061414366101113901556690531838749175317761314537155686111135911701056602324213404725812861361358190403540467715014090562841951102624221701312104651627913470830678438041554657297973741029584432507761156112339152486351304134413247351906190137371043141376666813490137311305409052477021260104834733113066609053079177514656113056617546037466590751002474152551747791795729281017139200653299517101941134417116821290671106113010629055673832090155919047320901169013041192804171043247140791613371064141721287227294071019411345136130614143661011139015566905318387491753177610242390327337211371032137190153715632311905694724723390411561132156311043529135258128613613581904035404677150140905628419511026242217013121046516279134708596510431325403734654015034950956425402896514115610355774117374102958443250776355315134189147773147024189931703068218633717540905247702126010483473311306660905307917751465611301623311799353213912266412115402928101713920065329951710194113441711682129067110611306129020671090106907011471535247233137190133901301064141721287227294071019411345136130976491540222509696133661301024239032733721137103213719015371563231190569472472339041156113215631104352913525117544342011011518726393282638116272948089072469077417058251110336111305965104313254037346540150349509564254028965141156103557741176817049013013917166772835531513418914777314702418993170306821863371759615280053801623311799353213912266412115401062177110961765741114012004812155229014234181651151463901472791611708612902067109010690701147153524723313719013390130566175930106320901169056679111047976491540222509696133661303667843817799890503758943100791679613163110450504574603746666090361004824319049251792696551651481031091708791906251175443420110115187263932826381162729480890724690774170582511103361113023223221029850116619511304625041145102352691032904118777616661701762251102601061372613141666090131130681704901301391716677289644674117518157158575961528005380843109173521043141327907405612141139141166701466214110385397307411710621771109617657411140120048121552290142341816511514639014727916117081028619017222261411832101208482591317075661759301063209011690566791110472879012210385394962592607763667843817799890503758943100791679613163110450504574603746666090361004824319049251792696551651481031091708791906202113113111115121270613149211101115531512322322102985011661951130462504114510235269103290411877761666170176225110260106137261314166609013113092217790157212797090131111151212706131101137121115196446741175181571585797681222611461113151115122370621270613110154312111518431091735210431413279074056121411391411667014662141103853973074117651905247149103853928977024414611028619017222261411832101208482591317071776112141320502121363212123215132797641682376011066904791311512328790122103853949625926077659651051124109481911511707977041689611111137379614168211620211311311111512127061314921110111553151505511227567972147109769879192217790157212797090131111151212706131101137121115115078222513619060840015111025946846245697681222611461113151115122370621270613110154312111512497077626812216225197211315961329070717051194170357065190524714910385392897702441461220905010815644244177611214132050212136321212321513279764168237601106690479131151232321109615752132177218596510511241094819115117079770416896111111373796141682116650300411215187091362599650551122756797214710976987912067841165495284282903219072966197501507822251361906084001511102594684624563638107147810718452831013110010545450779167249707762681221622519721131596132907071705119417035702619303211512051151523113051013766197916722090501081564424416814519094554066130703749154770415867311142468380564171252571167147414548890130320905021106688411387013091086631147232110961575213217721810555661105171628391627975096341411386296274123426314442371265030041121518709136259961138417120516139121066110592510439277346687251811707814347716419010587016104266884157014813196320462476412513177236611069113097196206784116549528428290321907296619750573510411808361225791345311509655779152117026047117121774741106624537841612955101403638107147810718452831013110010545450779167562141667904990481849481904981310341211665126193032115120511515231130510137661979167181125714750122377437131101109133211168145190945540661307037491547704158673111424683805641712525711671474145488901303209050211066884113870130910866311472061764432511042472331371908846130901037411710555661105171628391627975096341411386296274123426314442371225117644325110458688024190904127411711384171205161391210661105925104392773466872518117078143477164190105870161042668841570148131963204624764125131772366110691130971961621764427909051141741702745411158748121674832851012490460702071159071196664119585316019593532050453793551142908874117573510411808361225791345311509655779152117026047117121774741106624537841612955101402361115171261401212459112359137818453165116562141667904990481849481904981310341211665115032052173205073610635470764035866110385398618112571475012237743713110110913321166320501101716832050731113236312626679020617644325110424723313719088461309010374117843160173252341732562931251176443251104586880241909041274117100017052471961209630529317026290303741041621764427909051141741702745411158748121674832851012490460702071159071196664119585316019593532050453793551142908874117206176153664189443420776236111517126140121245911235913781845316511665112010771132363122290612541473150320521732050736106354707640358661103853986681554514799915517447528416631142663205011017168320507311132363126266790206784319735824741540185468068770140121281661596660901407914693784316017325234173256293116231414702576404766124443921308186164599014712682141000170524719612096305293170262903037410418111159010012453771137061345540188206176153664189443420776104766106663215132143784113332050155565487141137861381024265112010771132363122290612541473746471025191412223114214071678878724191734901423808162801547766815545147999155174475284166311428764541833105783916231791100461536206784319735824741540185468068770140121281661596660901407914693777190526111141222901275620645450779724145410188741176914136612911623141470257640476612444392130818616459901471268214181211175267631111195222490846181111590100124537711370613455401889563245579813253851661021208661032909072147957104766106663215132143784113332050155565487141137861381024254214117107120840901411122251746471025191412223114214071678878724191734901423808162801547761964195105111566101920811378764541833105783916231791100461536607141112225114012127092673157461650413217024841902001101156610192081458329047771905261111412229012756206454507797241454101887411769141366129184678431365721487915173572110691318121117526763111119522249084664611157157144103411104115727062115661019307081458379563245579813253851661021208661032909072147957206784142167770968061001402905751101429073602573516016545171975421411710712084090141112225163647238323264796307299224315509015477619641951051115661019208113732678433187796612412912517911726961135181416666290417415704664181468013816459708607141112225114012127092673157461650413217024841902001101156610192081458329047162317911102946611377014290174112212911299113845512149619229951834516621417084678431365721487915173572110691398617644325110465122230071264611157157144103411104115727062115661019307081458372067843911724712416220575206784142167770968061001402905751101429073602573516016545171971507822251663114132966956072821318143474185108987492397125314290991371429016211048461011124563626364723832326479630729922431550901547761487843873106287296776326784331877966124129125179117269611351814166662904174157046641814680138164597083617896236110322965516512421103601387061161411082422170256150290471711488461011162317911102946611377014290174112212911299113845512149619229951834516621417011674897234195222807051750986176443251104651222300712206111111322247147816088620678439117247124162205758611469159041261321411369011867773115128470610912281507822251663114132966956072821318143474185108987492397125314290991371429016211048461011124563621824914743153641511487843873106287296776105812831562361783547690596226141615711101481461113036178962361103229655165124211036013870611614110824221702561502904717114884610111344171576411309165714766411301116067112161271216465706218153199739909018165116116748972341952228070517507464710251914166311421091551452955728753065190760677762061111113222471478160886746784313511569211666101986311681117648168164361903213531211714162710144861146915904126132141136901186777311512847061091228150785622113553195125455805769110294100772619371067904114418249147431536415150978478371046611069266352412611401212146875377918601041058128315623617835476905962261416157111014814611130471203156747371085611341474170274590577481216749328510561151314717101712161017454352741171344171576411309165714766411301116067112161271216465706218153199739909018165116102809056401101687937663678157587891939674647102519141663114210915514529557287530651907606777625551051142128652250115117142652412481011130611148966118829018606746784313511569211666101986311681117648168164361903213531211714162710144106217729316651140121214287072366110691130971170708661577013205104165225011511714265241248101113061133396611649615078562211355319512545580576911029410077261937106790411442581286222131753710031210101017076612403624172631368677871954574558651321341201102894125419083113050978478371046611069266352412611401212146875377918601042815810591167501012104041757711574784132400155299112733396118071050299177911164712031567473710856113414741702745905774812167493285105611513147171017121610174543527411737417712068214371422537062622107481311028090564011016879376636781575878919396134632491579813292851811294140901843513011480841817790791722770320902993761375724166311365287912062555105114212865225011511714265241248101113061114896611882901860617410031111610694714513010621772931665114012121428707236611069113097117070866157701320510416522501151171426524124810111306113339661164961702495183916231797465729791238723715570911131613170624866513757913807513025812862221317537100312101010170766124036241726313686778719545745586513213412011028941254190831130656190715779014132662484412219373761479611054142670937634171081729010293737121140321792732170262248414315081302815810591167501012104041757711574784132400155299112733396118071050299177911161376190715779094668731270171421925707081423219118031202145911003101042418119154433249171709373741771206821437142253706262210748131956190715779010712062860123879375646513107065713463249157981329285181129414090184351301148084181779079172277032090299376137572416631136528791206162247143175259253208061711974111048245411646254017410031111610694714513070419051456426314442371217024951839162317974657297912387237155709111316131706248665137579138075130120171012071571839056011045488925435165619071577901413266248441221937376147961105414267093763417108172901029373712114032179273217026224841431508130240784380476463120240791130126180664147221309711702592526290677418413520101454161885236543713761907157790946687312701714219257070814232191180312021459110031010424181191544332491717093716465215581308111089048271329049147070108191210312224128724215622241287242172224217137856513212163595619071577901071206286012387937564651310706572467843117540664128692320901354903818410938779151162247143175259253208061711974111048245411646254010363151576323011111814965785701151561490704190514564263144423712651907147149259751516565030041212701111301201710120715718390560110454889254351232202654977514653151130240784380476463120240791130126180664147221309711702592526290677418413520101454161885236543726137586417583553031164652155813081110890482713290491470701081912103122241287242156222412872421722242171378565132121635156695510432123732624154081121321960737116321905048237320502021720310136612111302467843117540664128692320901354903818410938779151258131662204340222514624190138608872186932356103272116374117103631515763230111118149657857011515614901616519071471492597515165650300412127011113025693671380952113149080111618842323220265497751465315113013764117158659087937262901018841480261375864175835530311974574141141001133159066156695510432123732624154081121321960737116321905048237320502021720310136612111301031715213851321145970112671121258131662204340222514624190138608872186932356103272116374117421227862917913012893296610210737147142155400161245451471191030170139766100256936713809521131490801116188423103646578432368677911471191080961376411715865908793726290101884148097641171421969016010329017114019745741411410011331590661599080701033215475751661815404075408411401031715213851321145970112671121699011412519011909581052131661701467321804113142122786291791301138290718849610225150861219697131107371471421554006385641121113124545147119103017013976610012819071131103646578432368677911471191080966813207525514771231319764117142196901601032901711405817664073742612614712675596706290536540159908070103321547575166181540407540841140174150981521354921202597979680413169901141251901190958105213166170146732180411311062905575397107033775151890131894245113145171382907188496102251508612196971317269047771504775132539710120263117411375139016622241765640176212638564112111312401209161253128190711311028091401519113753949112011771248108893069015683119651376406539802151140816168132075255147712313195290206705811680705724210212531325817664073742612614712675596706290536540684151780010329096809029322413117415098152135492120259797968041311259102902102474961311062905575397107033775151890131894245113145179861756641290750810750547995175272279417013910445621172690477715047751325397101202631174113751390166222417656401762121623182058411154527013151890153112715651329613916613789907980461401650314562112401209161253596314166110593432251316651130829272651166413839418770810280914015191137539491120117712481088930690156831196513764065398021511408161536676195358209210750124801642022122411309529020670581168070572421021253132505961426660905841117089689715510839719391684151780010329096809029322413147120315674737516631075012452713074562111259102902102474961312061764432507701875672696559098820151303389045911280444166722489013098617566412907508107505479951752722794170139104456211596314166110543571517977041689275713912121049578614796110541426212248921301623182058411154527013151890153112715651329613916613789907980461401650314562116703713613273179147823446865963141661105934322513166511308292726511664138394187708131453715568611113551117042217025615029053142456211536676195358209210750124801642022122411306919645282102671266964657297975059614266609058411170896897155108397193913617896236110322121837138666090530510416113859734145970241845490197136674197227723661106911309711704712031567473751663107501245271307456211596311069508013128290951774526888522531138475311249623370241810075504610349128290148849019290103010481906421312061764432507701875672696559098820151303389045911280444166722489013053851043804893910901619071121877835375963141661105435715179770416892757139121210495786147961105414262122489213037470776651100901044341889700371421275888311266964657297915167037136132731791478234468610627077613072319650989075131453715568611113551117042217025615029053142456211691964589102671423219118031561153987976919645282102671266964657297975965104311598949051731412532904141346661516749971477366174165831442888539061310309034590411843617896236110322121837138666090530510416113859734145970241845490197136674197227723661106911309711701062110661555110779683116013810926280414531151092531314164104512821028910271596311069508013128290951774526888522531138475311249623370241810075504610349128290148849019290103010481906421313578395180108066102120160791538510438048939109016190711218778353718551656701701315189102681585141623438311614114374707766511009010443418897003714212758883112669646572979151106217711055431253138282102541339770708106270776130723196509890751138510471731801061411381584612353831027169196458910267142321911803156115398797521491371706863189642255661363164179153596510431159894905173141253290414134666151674997147736617416583144288853906131030903459041184392110294665113866367817829016189851891022821027110621106615551107796831160138109262804145311510925313141641045128210289102718146578477061011411176120616796551651109421091708791357839518010806610212016079116217625919140110256425109140185516567017013151891026815851416234383116141147467841165836236867104190717411210270254781547461908111514125329041410413290121791146452421564523212163510621771105543125313828210254133977070823220266623278761353224813011363774371019562871011320601110477540524659010385397307416626251113851047173180106141138158461235383102716052031567011471262825214913717068631896422556613631641791532499031266648511266879213676103290551373921102946651138663678178290161898518910228210271137619048785377011725090793582721945066216632725317024186532462503250300741178146578477061011411176120616796551651109421091708791586176443420770753281331110274720775345881352731621762591914011025642510914010205677317068261121536909041668414611211151416534213474678411658362368671041907174112102702547815474619081115141253290414104132901217911464524215645232121635102861903015215190102131232202666232787613532248130113637743710195628710113206011104775405246590103853973074166262512322029029611686612100146111316052031567011471262825963141669014790155212692109324990312666485112668792136761032905513770419694310501502331102629092074515221376190487853770117250907935827219450662166327253170241865324625032503007411717014778964657297911358161901157972008135861764434207707532813311102747207753458813527395611212153690904166841461113116647754710205677317068261121536909041668414611211151416534213481490105058151903015215190307791102131102861903015215190102131232202902961161511210014611131232202902961168661210014611131101149905821269210935963141669014790155212692109357419066421008767619078641467690721163701934105015023311026290920745152270419694310501502331102629092074515222869047051525435326186714195623661564651381701477896465729791135816190115797200813168190170611638150908668741764915621129055518082632629017017610413195611212153690904166841461113116647754719678474657297912072369125511579720081490105058151903015215190307791102131817731451785123766100190451992169066156710262906747410412153690904166841461113113064755047232202902961161511210014611131244103290977376642100841967920397107902156103290757576907211637019341011499058212692109319272914352138207903301305159713591120141882015190690791102131574190664210087676190786414676907211637019341050150233110262909207451522357753174352690791131286904705152543532618671419562366156465138421904705152543462129111442472411204831874571681901706116381509086687417649156211290555180826326290170176104131604250901883191826196784746572979120723691255115797200240466311069055421229614931341461113716552681773145178512376610019045199216906615671026290674741041215369090416684146111311306475504723290139082224142585818113170152244103290977376642100841967920397107902156103290757576907211637019344361464913215260903162658871111927291435213820790330130515971359112014188201519069079110213168011296770908551385132151127147357753174352690791131129490471647324720042190470515254346212911144247241120483187457374178711101231250155307604250901883191826196510519081079013676103290551373671421069371459117426290674741041215369090416684146111313836471044724046631106905542122961493134146111371655262751787111011648601715107019348014707919066102120556536300525813723290139082224142585818113170152160810171136678418380113701117691743981501057157436146491321526090316265887111286714313152190560776190130987973821195315190690791102131680112967709085513851321511271475808104571411976811348925350766110141320502531362536632151329613051818647966610570176530901255172366110742104129490471647324720094770211138391390151903077911021373741787111012312501553076042509018831918261965105190810790136761032905513736714210693714591174262906747410412153690904166841461113138364710447952457838372979196106770713837297912751787111011648601715107019348014707919066102120556536300525813736114611071190905542126921493134146111371655261608101711366784183801137011176917439815010571571136175104810742135232629031590342472867143131521905607761901309879738211953151906907911021316363151140714773081042651001041441574181541161118754058081045714119768113489253507661101413205025313625366321513296130518186479666105701765309012551723661107421041487843147772910610381429062315556951498341365142947702111383913901519030779110213715751414114466513413617260425090188319182616851818114466513413698952457838372979196106770713837297919481773266260101111662601793611461107119090554212692149313414611137165526236311251831101378051893613651427690103276682019771136175104810742135232629031590342473921381106691770132907294314378121496335459140709013024034145063631511407147730810426510010414415741815411611187540331766645779907966447148784314777291061038142906231555695149834136514227517871110123181057914064146511612190623540157514141144665134136172232202902966140611116137168518181144665134136983126212037126290694731041393266110137315111021894817732662601011116626017928690470518481184134705113123631125183110137805189361365142769010327668201977102623157821662213921381106691770132907294314378121496335459140709013024034145012718231578219133331766645779907966447150299706514061469010213127517871110123181057914064146511612190623540697822106190873512242322029029661406111161375691369029761320913831262120371262906947310413932661101373151110218150269524372869047051848118413470511311124108715123581511384063042010262315782166221433120117160131127182315782191332611081265148540514211611138150299706514061469010213110202702772514213127513815113813169782210619087351224167416101578218113151116418256913690297613209138206784147139256150269524371351196106111911241087151235815113840630420128304147433120117160131232204921382611081265148540514211611138268116202102027027725142131275138151138131596226429612401409071129070651907515113275314061311674161015782181131511164182174263540711903008526020678414713925627825341521381351196106111923054329316112812534657125341492513291590471283041473622315816654410964013146293610329019115711613014061469010213723220492138660215829032190722651032513066859818111613126811620259611012401032901246140655126214013146441769686251132907681385962264296124014090711290706519075151132753140613198617511729024620340631135214017426354071190300852602063176610666124265923211596118236855375771081138154459782278253415213819850108121874916907852861442305432931611281253465712534149251329159047343147847706414128199220724517715542236223158166544109640131462936103290191157116130140614690102137312621304265022624112180090144794322281751161113824115517677660215829032190722651032513066859818111613163645702104445344124116545115159611012401032901246140655126214013146441769686251132907681381171126844657299881901477135722986175117290246203406311352140636784715740622071413012994331262110159222490846962744411255103264114767879117776420631766106661242659232115961182368553757710811381544597824941461111314175613781104116111387518211023614611048824131264741985010812187491690785286144206784148954541642525134314784770641412819922072451771554222321109701737107366121113131262130426502262411218009014479432228175116111382411551767710202629043790961815501245968047623240631901757076364570210444534412411654511512751028723713515690771262646116137753332075515205725447510911161381171126844657299881901477135722227375861802141131182151261116806251089520744315166122611676113166411151106661801316111512612021312071016321161477636784715740622071413012994331262110159222490846962744411255103264114767879117776461290768314113801097041421106106111611131494146111131417561378110411611138751821102361461104882413126474332205331127131816624711313863208061710213205090779035479206784148954541642525111711268446572998750103172110411022175710317213153510221757811331165021757139121210329068879142212043123211097017371073661211131206784132763518741983714746572979710202629043790961815501245968047623240631901757071031841712103743714531562177180735681049390819011614617072751028723713515690771262646116137753332075515205725447510911161389529020681129625330970901388371049621470901697722737586180214113118215126111680625108952074431516612261167611316641115110666180131611151261202131207101632116147710621771105633711712114011165638147717751415313146218616263130777147262241544869012161131311421853151411162737761290768314113801097041421106106111611131340249457668906926474012812021313322053311271318166247113138632080617102132050907790354798117077696559074124790180219613417087915111711268446572998750103172110411022175710317213153510221757811331165021757139121210329068879142212043125813168290222511048290410540512147797206784132763518741983714746572979727327745820259191116967713011833116120480771031841712103743714531562177180735681049390819011614617071372810457306811361974517119042571190812309503215519118718043507281329050171036202131319174615163223419215111612089529020681129625330970901388371049621470901697716246545797644785668205693205053666431290710378313161605283796123967109081429106217711056337117121140111656381477177514153131462186162631307771472622415448690121611313114218531514111627377245456711588741287486357294798871155471441109933616588611441552644537554341120117429296131643901694697874182933275387913402494576689069264740128120213186519049050268106741829330768178466381132363110385399035741124101662966114217111308117077696559074124790180219613417087915117013141754611614696258131682902225110482904105405121477971036236781061027474184142290571431211551451112155101758711250140104131575952955962421831003511516277011164182827457596128127327745820259191116967713011833116120480772491311090901330683664822149750518966334671013875140707137281045730681136197451711904257119081230950321551911871804350728132905017103620213131917461516322341921511161208103678431429021115542275140741121013713597779111616246545797644785668205693205053666431290710378313161605283796123967109081429306784313377085631528316257150756514856701493901407012411014471441346120143245456711588741287486357294798871155471441109933616588611441552644537554341120117429296131643901694697874182933275387915661812624110151383197748577140661471426701354653170786519049050268106741829330768178466381132363110385399035741124101662966114217111303067843827759777911358107120121791115792741117151170131417546116146967313098375181125624112047715110362367810610274741841422905714312115514511121551017587112501401041315759529559624218310035115162770111641828274575961281258131662204370222518047616190187564115566222211517072491311090901330683664822149750518966334671013875140707339175518552140750601412161358210329028110367843142902111554227514074112101371359777911166561125668208108372429541277139326611015331514546511551316711322575107045657811350208967061070136745471371012190790306784313377085631528316257150756514856701493901407012411014471441346120143259204930315215715545618679756618126241101513831977485771406614714267013546531707956190954193411352241130747177569639357623166601707306784382775977791135810712012179111579274111715111717061207152187565435136042138264491236110361135511569045629022213017077313098375181125624112047715116818043587121909157713290615219254372581316622043702225180476161901875641155662222115170733918144325077633917551855214075060141216135821032902811098901514015589682146346774153155437656112566820810837242954127713932661101533151454651155131671132257510704565781135020896706107013674547137101219079076617531136146572979117757075054510257545115478518359065517479103241635111843636142259204930315215715545618679710367824246572979117757171956190954193411352241130747177569639357623166601707948451478709649091661990117170612071521875654351360421382644912361103611355115690456290222130170711984567831453221367823631752818358311318182513113875148849073112895214016818043587121909157713290615219254372067841136117901087919138166159143713391814432507761701314175467811361098901514015589682146346774153155437206315189082246572979776617531136146572979117757075054510257545115478518359065517479103241635111843636142500445175871036782424657297911775717110296032115158901484171777948451478709649091661990162815229379703104865114057320906673047103853949690116777119845678314532213678236317528183583113181825131138751488490731128952140181111590961352011166870902067841136117901087919138166159143712063114272110666124146921301269891177140732871311038539901030113254259312121241469213030762167120177170131417546781136162176518960325251107160478419016111043141470426631141321001372012309131130206315189082246572979761290206130862902486681103115177207717947817071514717022961092419090790741115004451758758611166591448131531351041304481511029603211515890148417177779651321740314158716281522937970310486511405732090667304710385394969011677740623637341756153718111159096135201116687090587491415721707754831504152557206311427211066612414692130126989117714073287131103853990103011325425931212124146921303076216712017725551051906022066327766609053079151162176518960325251107160478419016111043141470426631141321001372012309131130160611190540591821308236752754183581317541837715754184062347661290206130862902486681103115177207717947817071514717022961092419090790741112204561745487741665651586111665914481315313510413044815140623637400615316590530797796513217403141587358315161121665218731504152557406236373417561537130120107738324718713005874914157217077548315041525571501805668131110574019011374825551051906022066327766609053079151388457821327401901001457025087915116061119054059182130823675275418358131754183771575418406234764563154010419015570922045617454877416656511621762592526290303706212904134414739213082267138188467070840623637400615316590530797704190554356583823107083583151611216652187315041525571202904703715910431679023966701147121090222927130120107738324718713001334114748212074831222124791511501805668131110574019011374819651051307661031221101142665883336519313019312017738845782132740190100145702508791515222471161034574171558407081834396692070279122392456315401041901557092964038715721679116217625925262903037062129041344147392130822671381884670708270313133124712460875109223456770419055435658382310708312227903915714143290222824611202904703715910431679023966701147121090222927121651477412271124621171399012413341147482120748312221247915139220719549813911851662309047636211011210514729057591236614470728932966102370225427357139148196510513076610312211011426658833365193130193120177384137901131446190547262242670152224711610345741715584070818343966920702791223927894665166124903237147198754551232661084729640387157216791177791819811025740121018072373145114290170103959621213807012703131331247124608751092234567103501351016253186109030330779113890201987919891706113741222347013122279039157141432902228246120431866131307665119630766408987501216514774122711246211713990124282773421578977903922071954981391185166230904763621101121051472905759123661447072394871119630779158070298791171137022542735713914837178985966901804131849541466756172932211766919638413790113144619054726224267011501806651119439522788250661066507016504757566106981150789466516612490323714719875455123266108473923410166577901777918198110257401210180723731451142901701039596212138070122711066571120423215501801460861244875790810918625751974184135551103501351016253186109030330779113890201987919891706113741222347016264971254433730766979879117112043186613130766511963076640898750236315122113881148337282773421578977902663179193161661244450051239487111963077915807029879117111166514732164224681113566140423717898596690180413184954146675617293221176691969644662143281625466511549871135702362654839879117111501806651119439522788250661066507016504757566106981150204318665115469615097779155231535514392341016657790976190453903733478114814211595111371032901506170491701934227110665711204232155018014608612448757908109186257519741841355515964975531069333661063319879117116264971254433730766979879117111020204129665753510813892154236315122113881148337105194170672901296541180316432901136690751987911711266317919316166124445005135281072662763328397566796830779122270707116651473216422468111356614042128281327065170657021136136221104138463155840708964466214328162546651154987113570236265483987911711817754627142902171613301449013911706715110613870720431866511546961509777915523153551418065185766714713545785766714797619045390373347811481421159511137103290150617049170193420631766106627325951637847280138120160516682732754759649755310693336610633198791171175651043804893515713244312456671471020204129665753510813892154574984130779710985402731554765404426610212014112329630779151105194170672901296541180316432901136690751987911711948456798901981243558721108771143119529011436697352810726627633283975667968307791222707071285101240184975717010441751290472513078201301282813270651706570211361362211041384631558407083022064366131463131655595925354763141858881775462714290217161330144901391170671511061387073811661171601376651228443571806518576671471354578576671473143205011072195541564625612711013947685315105113359218498343746362705651313209015309215420631766106627325951637847280138120160516682732754715021066576712018904467120559095227712426695010615690158192142150171259237118519611849170175651043804893515713244312456671473311103150561306610627290100488073126742171151906628570157498413077971098540273155476540442661021201411232963077915127867366472277124266950176902361711919098170133170794845679890198124355872110877114311952901143669757419073166934990955807029879117111285101240184975717010441751290472513078201303841106651306278111389753537307661033022064366131463131655595925354763141858867206437266102120166142227212260908108114833738116611716013766512284435720431872666826165631412116115022261137187110160572101115190204671429087901033311371874017567707314320501107219554156462561271101394768531510511335921849834374636270565131320901530921547894661316611046696109521200104018390797358146701150210665767120189044671205590952277124266950106156901581921421501712592371185196118491701349773819259651068137307791506701610423311103150561306610627290100488073126742171151906628570114697310066578554443750278673664722771242669501769023617119190981701331707204318116665180566142666414307177907974063127574190731669349909558070298791171115018066572384112274181461101671651251307066537503841106651306278111389753537307661031031785640631135880523224741472917790797406312767206437266102120166142227212260908108114833716231125307791661244450051204318726668261656314121161150222611371871101605721011151902046714290879010333113718740175677075663151245509012410165401354807917894661316611046696109521200104018390797358146701986175755904758424190117512234977381925965106813730779150670161042752203166517711086833666146901131481469731006657855444375014631961693077911303720431811666518056614266641430717790797406312714263149710196661029032090637471956664131105908671466680766367121296111909804175881501806657238411227418146110167165125130706653750181211115666110462361421906857103178564063113588052322474147291779079740631272353473574111669013171051231571623112530779166124445005178945610711166106183625114112410329041631361836211756631512455090124101654013548079122790493966690931711986175755904758424190117512225131146983077919011210495615080575111049349626150805156211022710089317117522031665177110868336661469011314838411072667531711049111150805751110492985615080131951150511461806676082146319616930779113037789472837224729610706701032901160418271358651927141142631497101966610290320906374719566641311059086714666807663671212961119098041758810207731741131190162669042367181211115666110462361421906857258128666516651422701530811372353473574111669013171051231572581286729012961501301818114768111989066150513029085901201309317117894561071116610618362511411241032904163136183621177815072135191132906665818410812315722790493966690931711302596437265111312214611032371250959086757226418320904929090412267698797872589176735314797661029024212526222987915125131146983077919011210495615080575111049349626150805156211022710089317112321511032905354705913287258917307797384110726675317110491111508057511104929856150801319511505114618066760822703131325751092234567353147976610290262229879778947283722472961070670103290116041827135865192714115032052665166423908744791728149150147170262227690987971020773174113119016266904236765190520791413076690218258128666516651422701530811373926576657661301210111154506278103290165258128672901296150130181811476811198906615051302908590120130931711817753077915086613012101112288865790810918421313076519022266512544256142413076690758781507213519113290666581841081231576312066514894112486528141701123763213167054065190520791323025964372651113122146110323712509590867572264183209049290904122676987978725891767353147976610290242125262229879151258128666511477176441415715541013133450751883561357504518651618279537741782232151103290535470591328725891730779720631146987501361038540669118041828968565190135727031313257510922345673531479766102902622298797631206651756989060912128013812452079132301130661247968086110150320526651664239087447917281491501471702622276909879729777218341914011267453732150319311701122571106519052079141307669021820678417196107120181171591664149083926576657661301210111154506278103290165601457374537321369036831817753077915086613012101112288865790810918421313076519022266512544256142413076690758206176443256959079864414157155410131631206651489411248652814170112376321316705406519052079132521175751023196331566181249014212476901475775725812866651147717644141571554101313345075188356135750451865161827953774178219651051131151109146140224537825132780758147577147987322063114698750136103854066911804182896856519013571961463003961554166688766827582631206651756989060912128013812452079132301130661247968086110781507232190110664241831910723297772183419140112674537321503193117011225711059643812725422737301376660901717761502079166150771027515104120678417196107120181171591664149086914528296187419673332361103706610832751680714160145737453732136903683154090935167220663291076644171571488329368919066108320922061764432569590798644141571554101311062177293172661245323166102901983293689111028013832243176544521175751023196331566181249014212476901475775718545736612421210112421256610290262229879119651051131151109146140224537825132780758147577147987321901709675460106395255247557196146300396155416668876682758210202041296651896695781507232190110664241831910723105845147150491961331103314785158724742107319879117115964381272542273730137666090171776150207916615077102751510413321772931722486642141877910790193076690101111462177911356615123384104684724126707151130691452829618741967333236110370661083275168071413064865406104310321701307321180145015011805367011186273510690664001345409093516722066329107664417157148832936891906610832092392217563077917786127064942271163011105456688540106217729317266124532316610290198329368911102801383224317654425812867232190110750769066418540185457366124212101124212566102902622298791781506651311519159066113022611511205770615676280138319111113647929879117111901709675460106395255247557134751141205696418454414791901396413037307662484131437832893768162317915381020204129665189669517261665761329030779113688214018175066531493825376653287565371058451471504919613311033147851587247421073198791171158611112611323631203712332248472905315566609020730925717083321772931722486642141877910790193076690101111462177911356615123384104684724126707151130388225422614505132662914066256116512803064865406104310321701307321180145015011805367011186273510690664001346472254255951101150139705230129174111392217563077917786127064942271163011105456688540817756276610290302379227381437976610212016675142781472952439073151987911711258128672321901107507690664185405335104189328151741706116211256851698251901166856781506651311519159066113022611511205770615676280138319111113647929879117116311106651154106657611066515442511451377111181957502482789610385397305666423905065705526612454279511347511412056964184544147919013964130373076624841314378328937681623179153839217729317218776756766248411356624841797311232511210930779178403319027161921726166576132903077911368821401817506653149382537665328756537170328379096555111218379096571451103241107266102903389014070290419879117115861111261132363120371233224847290531556660902073092571708314320501107232114113712701475128277484273732388225422614505132662914066256116512807894721421566101211307791951096127065261155456616816166514653113614670112329046701611561307791809701663451847513264722542559511011501397052301291741115965105190810790661029025714026638762338817756276610290302379227381437976610212016675142781472952439073151987911711809961507223612117088459136682504361554761065291963473131071713653351041893281517417061162112568516982519011668568145462017915047241875115170140661516311106651154106657611066515442511451377111181957502482789610385397305666423905065705526612454279516331507224212530518329368162791124131392177293172187767567662484113566248417973112325112109307791784033190271619267425790125183101083293681623179112419217032837909655511121837909657145110324110726610290338901407029041987911711266110182146636669662251067935112840213423143205011072321141137127014751282774842737321064150727522715656611287219206343278411508103678947214215661012113077919510961270652611554566168161665146531136146701123290467016115613077918097016634518475132282516624111111391441827850145132905661410134596510519081079066102902571402663876233839410298571765669032940374076114690141809961507223612117088459136682504361554761065291963473131071713634451459132902921352104153147512575111235125181454620179150472418751151701406615122357666116128118166422413216380130633150722421253051832936816279112413178817052779787129907756617251627421142192332537483513067425790125183101083293681623179112419230114751011115054280226786238130266110182146636669662251067935112840213422825132296371215132157467373096830796326761355325120547106415072752271565661128721920634327841150810363575123651896559088576622492873712349511128251662411111139144182785014513290566141013444614615115045471809668190394102985717656690329403740761146901411175146736757164277473363445145913290292135210415314751257511123512517354570296967057100796871316269010790141223576661161281181664224132163801301259664152307915906653766121144307664474110079642788170527797871299077566172516274211421923325374835130781507266901095133596610296133833496183198116238218451626923011475101111505428022678623813081773756629677279715098820259256112681069081075113075111208937727911412825132296371215132157467373096830796326761355325120547196785110215110930772110690681843575123651896559088576622492873712349511110516487509663698251351313076627905615771446146151150454718096681901364418436651490130183904350727115548751358918117514673675716427747336938510307423691301581456719222653696735457029696705710079687131626901079014134378981058221501051202005116276740104177731125966415230791590665376612114430766447411007964232845362512456611770974427120127343307872909177093587815072669010951335966102961338334961831981162382184516269219077381662011151596695982513387093626680817737566296772797150988202592561126810690810751130751112089377279114194845738439690187419671408761184677819290791971617931491778105849797271111503057819290811196785110215110930772110690681841036236781061055667112149633584698410410825915255681641461779079153456711051648750966369825135131307662790561577178946651663636730766161644781572223411201274293078725891757422913644184366514901301839043507271155487513589181051124117502236690106312445490261779669528881490613454574227668093851030742369130158145671922265369637178989915519373683321393171134378981058221501051202005116276740104177731350374690103290754784396908277466827453577581130425131915903076610975132197479870435817776313331951381401384168184328453625124566117709744271201273433078729091770935822090212324915904539066809014119077381662011151596695982513387093626680116651449763991590447151948457384396901874196714087611846778192907919716179314917781058497972711115030578192908117887849914166718432015641183902322981036236781061055667112149633584698410410825915255681641461779079153456711049141665711130515066511577178946651663636730766161644781572223411201274293078725891757422981773811356686013510065732733179762690227902161437911051124117502236690106312445490261779669528881490613454574227668033217729317230768307987507566129016024519275214051752140317751741371789899155193736833213931711251783620930598251130239907373114466102902421253051238662967112618372883503746901032907547843969082774668274535775811304251319159030766109751321974798704358177763133319513814013841681841487843217317517195522090212324915904539066809014180211026224537213145011181120938868120121080210869131813510541662931311166514497639915904471512975145430768307963071105403784411351311052037788784991416671843201564118390232298357512365189690882751662249293123495371049141665711130515066511577126611012095114413576431232301110266898512714887088177381135668601351006573273317976269022790216143791251311251831108774811093531007332177293172307683079875075661290160245192752140517521403177517412454573124275732421252011598797327100251783620930598251130239907373114466102902421253051238662967112618372881051124750966952888149061345475667514878432173175171955817731353077911723076672979118075796305901097208021102622453721314501118112093886812012108021086913181351054166293131258128672102902491104130765155702211296417331791110371081110379921101002975145430768307963071105403784411351311052037296412432661459012901824431151394183153055342741702791110373575123651896908827516622492931234953720631125183110668774811093531007107251129779111013392266110120951144135764312323011102668985127148870859651043212352104314141660540307200662868649066104104901468017773113086713702101143625131125183110877481109353100714878432198992639616511581651507866237029068244245457312427573242125201159879732710033217712010203166131165140713116514379018410511247509669528881490613454756675781507230111066884122157322142383013053058177313530779117230766729791180757963059010972015018072107220155252627081281240411710903059625812867210290249110413076515570221129641733179111037108111037992110100258128666516539066749753075732327533661247032404117168329368106903059629641243266145901290182443115139418315305534274170279111037105112475089669528881461345475811251013165661010122524797379340901242562063112518311066877481109353100710725112977911101339210207734127054070092723510858531262110251140369632730590104136596510432123521043141416605403072006628686490661041049014680177731130867137021011436258128666511554185166140818071301416468057588631487843219899263961651158165150786623702906824415018072751305415115512684886591991239013003321771201020316613116514071311651437901842894401166576261317821204441421166511577178150723011106688412215732214238301305305596510432123521043141417262293072006636014813615018072107220155252627081281240411710903059678150721554184882742662712998632581286665165390667497530757323275336612470324041171683293681069030596809963197215932256512141329030766211120303227627973071202108170879710511247508966952888146134547581125101316566101012252479737934090124256345207263151762349595546511095637905471101211378955403110207734127054070092723510858531262110251140369632730590104136106217729317298251907337206283381110118121904181010636690516110118121171258128666511554185166140818071301416468057588637815072183579513218390217597411584831150180727513054151155126848865919912390130010511241175675237411441050669086979638813164390109115816026766610290597897553129236227909116651289440116657626131782120444142116651157712275086652108234112014942932815537816614016450059651043212352104314141726229307200663601481369210296754624176903124778426801757519879712271417815072155418488274266271299863884325951956036580563546215117861251203248259174271478099631972159322565121413290307662111203032276279730712021081708797150320526651566417572418557017614787066714734520726315176234959554651109563790547110121137895540313503746906660909047466381038539903566511062177293172982519073372062833811101181219041810106366905161101181211712582964756155403540135390138102725417690366136904847913793469311066403134781507218357951321839021759741158483128944011665145515540354046326690743151963236155130761043103215513017024187177911067116105112411756752374114410506690869796388131643901091158160267666102905978975531292362279091166512861108966508987911711227508665210823411201494293281553781661401645002492048903166511291407754223291809014737332192066853766102907753714237941157319875019512023812193766296120112751305908996140667141921029675462417690312477842680175751987971227141206784111966105754223222245372373713052352963788432595195603658056354621511786125120324825917427147974175862807021911003959063210513538550903301471063772237147150320526651566417572418557017614787066714763111066511541935150603329015679153898791171135037469066609090474663810385399035665110285110353798791122103710417711469021527148841708258296475615540354013539013810272541769036613690484791379346931106640313435751454308412645371040183907914828944011665145515540354046326690743151963236155130761043103215513017024187177911067116986453747431540700724511150905969626638286110896650898791171125131146981836637042854013902713587241917115027148841708249204890316651129140775422329180901473733219206685376610290775371423794115731987501951202381219376629612011275130590899614066714125829622917030856041115942519029674134206784111966105754223222245372373713052352963710516012021785611511323631668021044313197417586280702191100395906321051353855090330147106377223714710945441245023163111066511541935150603329015679153898791171110229970651388131247124194144755198791508142951511352334176517617172102851103537987911221037104177114690215271488417081376112168262667907567690324609041272216601110477540524659010385397307416626251357514543084126453710401839079148366784381779989050375307797202561153987916099540761175610966801243734698645374743154070072451115090596962663820617644321014132750667304110820178577128315257377821431103741112513114698183663704285401390271358724191711502714884170856617644210385399066730472931011112905125829622917030856041115942519029674134116746312045797811496571013192269317915110516012021785611511323631668021044313114878432829367289329661022014549028885390613149247745611539879151109454412450231232202658351126807131968691061419612610229970651388131247124194144755198791508142951511352334176517617172181111590192269317911030798694084361053117166113421376112168262667907567690324609041272216601110477540524659010385397307416626251206784150067770105100041135707124010051254511511527176790126103119310070836678438177998905037530779720256115398791609954076117561096680124373463741777077014378474963354659777119290387107140206176443210141327506673041108201785771283152573778214311037411159611012301219010329072121454056617644210385399066730472931011112905110205677321257051682614134413247351200541904251408641130417706121035341119226931791131463463155840708116746312045797811496571013192269317915165611213790311150932184726637170841416631136130148784328293673701283156419722772366110691130971170201454902888539061314924774561153987915158611151712610329037539901503143665191306612450852208255371055314166609014823220265835112680713196869106141961261176951311079402229056295731198244632142714718111159019226931791103079869408436105311716611342168190170611638651043922102079016115886720820678415006777010510004113570712401005125451151152717679012610311931007087164148834151261331661304639026075702545101176902531428527083741777077014378474963354659777119290387107140612902067109051590953582066814728969631115090806524121842083012622047269161905107024182472339034074111596110123012190103290721214540596510432523739254096555112511101072921421711139121210329010684570210015110205677321257051682614134413247351200541904251408641130417706121035341119226931791131463463155840708766176443250770134145070711132402577712924081163619642956474893103217017024181991426181103245371120142901447196555709265611213790311150932184726637170841416631136130650300413219035162205419072370128315641972277236611069113097117069196458910267735377006531537331591268205861115171261032903753990150314366519130661245085220825537105531416660901486919645282102671011101901806517111122019066907541735756578852151289797117695131107940222905629573119824463214271475326351041572137107178593491171528820186540124603621681901706116386510439221020790161158867208120153712071511281133206819071641488341512613316613046390260757025451011769025314285270874678411658361391226641217571411905043810661290206710905159095358206681472896963111509080652412184208301262204726916190510702418247233903407411195611221066342272216964990481819481904981396331201100911038142903779013059651043252373925409655511251110107292142171113912121032901068457021001518261418923213976822139262668707661764432507701341450707111324025777129240811636196429564748931032170170241819914261811032453711201429014471965557092162319624779111022249050877065030041321903516220541907256214199540761176613099540761179059190351306919645891026773537700653153733159126820524110901212951322931914825110913941291711682966130139412990591903513069196452821026710111019018065171111220190669075417357565788521512897972464315066513211399010703198151951327664824753263510415721371071785934911715288201865401246036223220290952123145461629627416041066660907005138270671471201537120715112811332068190255510516660909809088575273488130687202417467841165836139122664121757141190504381061062178711101231177907917227704524567714744704372932956112210663422722169649904818194819049813963312011009110381429037790130277141228710631901417106901418261418923213976822139262668705968122258141812784912009615040210748571623196247791110222490508770266317842161570532616369014156214199540761176613099540761179059190351303583178421514195326111609014152411090121295132293191482511091394129171168296613013941299059190351301036236142106321142980316651246431506651321139901070319815195132766482475097847661437297918601041078172879013632549707156362232202909521231454616296274160410666609070051382706714724641110319665403581726167169741872330482555105166609098090885752734881306872024110363151202107910341147822964686106217871110123117790791722770452456771474470437293225551051111706450208277141228710631901417106901416703713613271117914702344680663114132201371001230913113059681222581418127849120096150402107485737095573742257741477846251652130266317842161570532616369014110197510110827531176417025413583178421514195326111609014153851043324663566577381397782014054010362361421063211429803166511824914713856218111301110961450978476614372979186010410781728790136325497071563621036315120210791680420871131274791510329041137019080514224641110319665403581726167169741872330482063176610610866805132103853990416551321036315120210791034114782296468672952466381125551051111706450208256259253319071397262901021474104142171167037136132711179147023446806631141322013710012309131130179818101141583266166912130370955737422577414778462516521301136661104190751661307625095623307909066884165213010197510110827531176417025415863176610614211091073666511875675366110746791950475385104332466356657738139778201405401024239032223377509012913714290371032909056719022212089479513467013161707132140905963735190958364735190476471824914713856218111301110961413145371556863166585132103631512021079168042087113127479151032904113701908051425668498791206317661061086680513210385399041655132105112411750665214463183796965590543757295246638111812111112465113511819537256259253319071397262901021474104142171195632455798132538515316660901407914824710329096539909065513217981810114158326616691213023617644275090513332939556710190103741111136661104190751661307625095623307909066884165213059631416611059370815090184511032904753990413510911112641661701138586317661061421109107366651187567536611074679195047184317536611074679151130102423903222337750901291371429037103290905671902221208947951346701316170713214090596373519095836473519047647366784334980490554035892540969051113145371556863166585132160637419085401045170301803154059730120185666190664141346191170222715114611181131701645315543756684987912619077516476611032214512049055112188613110511241175066521446318379696559054375108117871110123146572979113587212051619011596199813181211111246511351181953760513811013177013290772943143781214961451914129181906235409563245579813253851531666090140791482471032909653990906551323431478477046591406412681161219062354023617644275090513332939556710190103741111022987065113817590139591515963141661105937081509018451103290475399041351091111264166170113835612837706269747116859311613118431753661107467915113019891108471032902749148265115641119914651383667843349804905540358925409690511150269524774061371606374190854010451703018031540597301201856661906641413461911702227151146111811317016453155437226491411381167513130414151261907751647661103221451204905511218861312751401383166511166651299745341116131138151108117871110123146572979113587212051619011596199813370225424981396612460513811013177013290772943143781214961451914129181906235404711206210329013140657585511314069068611015190915321469112134314784770465914064126811612190623540230510514631956853151051146111161371022987065113817590139591511062206535554312535076611021835612837706269747116859311613139217790670110198911084710329027491482651156411199146513822750815716413747811741933223740951622116418215026952477406137112804217418113111183110315123110110253122120877253965590857282406811712531161372264914113811675131304141512063179110292337692541416104131275140138316651116665129974534111613113815126190583125874917413236315649113113312307024188710137440659824131264743702254249813966124275904761325701108247112062103290131406575855113140690686110151909153214691121119746312014290731571673012050678133167230510514631956853151051146111161371176957813118756107920222511715941811181214539040919449312626014010622065355543125350766110218771905261112229013934134152904543767911726113981320904701313921779067011095290556664147297919052637227508157164137478117419332237409516221164182162312224901555087915111280421741811311118311031512311011025312212087725396559085728240681171253116137112804217418165045942206317911029233769254141610413168416129655906487731654519871126146321082864913154711472619058312587491741323631564911311331230702418871013744065982413126474196934181426255321249510329090121222311422759047613257011082266317911102941196675332496512207147119746312014290731571673012050678133167162311461209874431460471038539907421158130117695781311875610792022251171594181118121453904091944931262601401681901706116381301779063779152570321616115771905261112229013934134152904543767911726113981320904701312271031611097709879734111354095290556664147297919052637227907751647557741667710666609053279177111749032090510511421711130162312224901555087915165190526371491243414157112804217418165045942106290702151580131103037230314166609047437684161296559064877316545198711261463210828649131547114728913171782903219071129452051118122345711323540111110026619057196934181426255321249510329090121222311426817052471168401728309622542917242017026290139741041421711130266317911102941196675332496512207147160810176678418299613441479162311461209874431460471038539907421158130812788490600540417469423231168190170611638130177906377915257032161611551896095901116632483322271031611097709879734111354023256773170682141443579159107105042215034411195125804641554026217485722790775164755774166771066660905327917711174903209051051142171113031432050110173736641651905263714912434141573311103150562164732641150558182668329511873456169632106290702151580131103037230314166609047437102423905059280615631366110321032901290472891317178290321907112945205111812234571132354011111002661905710226832706513077912264777690674111530961411197113882110575775246590103853973074117681705247116840172830962254291724201702629013974104142171113054877841471151654171004665632854122612946418041658529616081017667841829961344147930611656951845402539119385296289329661028863185613051270722650510117617185796812788490600540417469423231232210132575675611532997913251896095901116632483326632050110729604519290115147771158867153513147917613441872621230232567731706821414435791591071050422150344111951258046415540262174857255510516660909809088113157526657248813068720241314320501101737366412264911151132363157661428892228904921513311103150562164732641150558182668329511873456169632728319651961878613647996552247190102423905059280615631366110321032901290472067841489621741252823283790751007916710226832706513077912264777690674111530961411197113882110575775246590103853973074117162311427211062229013956952559042011112536250907310967162672598311642313796953104572079067110711715487784147115165417100466563285412261294641804165852961062110661553224711072979152342152247110113667723661106911309719630611656951845402539119385296357458395180108066102120160791886318561305127072265051011761718579635878472016157841804759615890666090757147103290180937067232210132575675611532997913274678411658362368677916766320501107296045192901151477711588671535131479176134418726212309484583790962433125551051666090980908811315752665724881306872024169196458910267247411016561153987915122649111511323631576614288922289049215113761125715373521733916817248157072831965196187861364799655224719010296090611514165342140206784148962174125282328379075100791678156773170682616632483315116231142721106222901395695255904201111253625090731096716267259831164231379695310457207906711071171783106032910901619026047242179834579132493271476215033227141151903077911022111062110661553224711072979152342152247110113667723661106911309719628236497200170600129902534682129067110470516521461113135745839518010806610212016079149414726211624717796987912165247661103221451721151523114617358784720161578418047596158906660907571471032901809370671376112658516690410901461774678411658362368677916710621207026123690431416681166471801916218201373790611373710431413766668134901373794845837909624331286904705152543532891201489104641113869196458910267247411016561153987915118249147311516674819213113761125715373521733916817248157072952262111086512246671519014951605511582703710296090611514165342140699812225825519010965113068720241815677317068261663248331512467843872111911049032166901068056644131783106032910901619026047242179834579132493271476215033227141151903077911022111396969777919010723781184161217282364972001706001299025346821290671104705165214611131131661150910132911267511319586715190711152409716122649414726211624717796987912165247661103221451721151523114617190773115546327734269059622613761126585166904109014617170321159147919616711516290326261176509096791816872872921470241810621207026123690431416681166471801916218201373790611373710431413766668134901373725813162125131325066102962301372869047051525435328912014891046411138392110470371612236211147907758647187499047613211824914731151667481921311431901518010845248903266241908720131131829027035417713172952262111086512246671519014951605511582703710622067714654110873272916821816211111177111310011114669981222582551901096511306872024116069457139100574690635120221120764712467843872111911049032166901068056644131130904765199161140750100415411111291210140565690100566411131139696977791901072378118416121795290717144016803814074010041112512277761202131131661150910132911267511319586715190711152409716122681773911555406658713013081116130629911331764111401907731155463277342690596226660209513737061329016637451546470416180104364904501703211591479196167115162903262611765090967918168728729214702418776324915112153690904166841461113116647754725813162125131325066102962301376561123497411103221451205115152311461139211047037161223621114790775864718749904761321343843375664111187446170142300464155402621748146171431901518010845248903266241908720131131829027035417713119850108471561204876331084769464411511138106220677146541108732729168218162111111771113100111146976812226132366310611317848787269232186511606945713910057469063512022112076471160631540124180659013090476519916114075010041541111129121014056569010056641113165030011021251559130111321290412682126611085661952907171440168038140740100411125122777612021319983205011021251321146137127014721211861017691411493184443131817739115554066587130130811161306299113317641114019407739016591255115987971611429214776602095137370613290166374515464704161801043649045013420650241486295173247414227545677632491511215369090416684146111311664775471514610577322473077651321876215596710904866561123497411103221451205115152311461155312212514641554018329683710329041211121536909041668414611131130647550473438433756641111874461701423004641554026217481461725246531813201201086186411265150870613225014147010412911138198501084715612048763310847694644115111381270121053712157551669041017025395468212906711047051652146111319768122261323663106113178487872692321865131277314517851237661001904519921690661567101461716063154012418065907681210807505210362659091721146265030011021251559130111321290412682126611085661125147112225176661796912551159879713011429214151998320501102125132114613712701472121186101769141149318444313160426090188144977791130719407739016591255115987971611429214775807732247307550513296106770711342065024148629517324741422754567681051451532121131131132138545259341414140151461057732247307765132187621559671090486451464134252108031138695135763154652031702111515531221251464155401832968371032904121112153690904166841461113113064755047188170217961726391308156653252465318132012010861864112651508706132250141470104129111388535070651911112712865836456115311270121053712157551669041017025395468212906711047051652146111315762564433617063466648662419053613831277314517851237661001904519921690661567101461745146909954342530725912070715176812108075052103626590917211462102131182595112514711222517666179691255115987971301142921415125412107734561022222411410456706120107125911604260901881449777911307172567061379714790747804634141477580773224730755051329610677071514233150101900901063376658890215554635214611131512206781329646341151257681051451532121131131132138545259341414140264415707710890473908141540134138451464134252108031138695135763154652031702111513182704117711162405136131188170217961726391308156653314131101131165511394114856662321315092037101901815834161137802222905245111388535070651911112712865836456115319001039021711630717711715429214151576256443361706346664866241905361388810629015472221241514514690995434253072591207071516756773170682678122626114513264737121536909041668414611131383647104471021311825951244103290977373671421069372021451329414617254121077345610222224114104567061201071259111000170524719651051908106651217256706137971479074780463414147754511948171361411299023051761864167051661542382111385142331501019009010633766588902155546352146111315122067813296463411512563528561156832606479404116132215511251174141772512154711930895373212906711047051652146111312644157077108904739081415401341388815045146471291467151467641469441570172515113633114617318270411771116240513613120258212514641554026217543141311011311655113941148566623213150920371019018158341611378022229052451113896161451473442347396114130158536817312354138211138900103902171163071771171542921415167596432125111162772158669017078225146111318810629015472221241513121706171672311966327734269059614614161571110148146176756773170682678122626114513264737121536909041668414611131383647104476042609018814497779117079125511598797383114292147724410329097737367142106937202145132941461755047661134773296106770711000170524719651051908106651210215646511634214054511948171361411299023051761864167051661542382111385164062414740624156091406416352856115683260647940411613221551125117414177251215471193089537321290671104705165214611131287241782823361875615115488150451464712914671514676414694415701725151136331146173613157218762155710904862025821251464155402621754118151961302453416490750961614514734423473961141301585368173123541382111388141210634722224114713209066609014044148116514511212369771061066476759643212511116277215866901707822514611131318811306519762134113017022221301776312170617167231196632773426905961461416157111014814617355567561423515956750837773681120467509051604260901881449777911707912551159879738311429214771246432861475504766113477329610677071150410215758321904903141156102156465116342140421297967528217040779112251640624147406241560914064122471181222512223114132103853944541966952872417828233618756151154144912109022231141321038539445419669589170141791483613157218762155710904862861210197207581329055866132142415286812559042011111815196130245341649075025295320120102107940222905629573951191454116462140814121063472222411471320906660901404414811651451121236977106106647812206435618722223171515731881130651976213411301702222130177630259643561416371304039664161681355567561423515956750837773681120467509051796315405890666090904728264097779141677371246432861471041930750512767550511019012428729915714715041021575832190490314115624920489031661312994212979675282170407791122343849568841977791479135115130171321032901761201211174319290387907114722471181222512223114132103853944541966952244897234195222714714491210902223114132103853944541966958917014179148121010437244614213322231142286121019720758132905586613214241528681255904201111741488990981522229584677578622224890322529532012010210794022290562957395119145411646214025693610271397109040111795241321649013024057812206435618722223171515719752571110148162318201363025964356141637130403966416168116465215647963154058906660909047282640977791416773759611111132224711546216255272283521038539101271104193075051276755051101901242872991571471334544124502312492048903166131299656190283352144523438495688419777914791351151301713210329017612012111743192903879071147120212013790470573827066176433111191302401082244897234195222714712840656377437495701361161403114815613170112101043724461421332223114210280222401513550131102711023768031621113117414889909815222295846775786222248903278150222511762591329039110447611883111613056545655544790176222445776256936102713971090401117952413216490130240572214121018156907113419752571110148162318201361028611205551167114916441116181861387011646521564189147819048973149064010022297156538596111111322247115462162552722835210385391012712415105130787255436141390148156937311351411312893296610223535581561104923150415511138133454412450231107535581186801005161296656190283352144521167125497743665168871114511656113112021201379047057382706617643311119130240108947702521671147435690138128406563774374957013611614031148156131701636315170628858746823614139012451127771415110280222401513550131102711023768031621113188381492778150222511762591329039110447611883111613056545655544790176222445776255714281138451477431365621241566776127585255111382214121018156907113462641110652728337224225190496321317224624511027102861120555116711491644111618186138701206431507287827810717065121113145125256378276420189147819048973149064010022297156538108909584129250662592517241510513078725543614139014815693731135141131206311427211062461101033725554479023110329018611177641175572615114055227167733090907741137235355815611049231504155111382497077614769467310103277107535581186801005161296105812831565571192125666811131504155374315361951204189011441622116712549774366516887111451165611318511289056436107125450770207258211516785174451409477025216711474356901388177371235132775820690214153136448012820690245510365706363151706288587468236141390124511277714151814901767413290104245715142903103152001206711513188381492728690171202206901042457157255714281138451477431365621241566776127585255111381020104511049056131206901042452111516264111065272833722422519049632131722462451102771190470718021757706120107115620643150728782781071706512111314512525637827642010286190287521113861041951204876111256421409012113710890958412925066259251727090327065150370641653091868023527826615116580453714114524508074618588196691317570151206311427211062461101033725554479023110329018611177641175572615114055227167733090907741137138290123203246411907096741195120616140955807418805312497077614769467310103277130907796938913077038462008141111442021311058128315655711921256668111315041553743153619512041890114416221812111156891254502073554785112890564361071254507702072582115167851744514068418208443208417690757540817737123513277582069021415313644801282069024551036570249902715245411395250451610271186792626183213784136126261591315411441156408149017674132901042457151429031031520012067115131357458395168162311467510206121220081791482511324545143276312048231131286901712022069010424571575863114272110614211616166910907503209068570518171411941762592475879102010451104905613120690104245211151337506641810876207144111117119047071802175770612010711562063114272110618195750173248332241653299511509086688417649156211232659053241102861902875211138610419512048761112564214090121137140195741272910266902505312128324884120726074421441111127090327065150370641653091868023527826615116580453714114524508074618588196691317570151170872144906122079204011972221249811365456950770137138290123203246411907096741195120616140955807418805317282775105122790547102171147480716005431381541321161517031322116112113713090779693891307703846200814111144202131203111449108478023021381812111156891254502073554742745412352467623113654741137684182084432084176907575402061751424127414047480716005431381541321161517031329053223517156249902715245411395250451610271186792626183213784136126261591315411441156405078117132147909915421218170132733131357458395168162311467510206121220081791482511324545143276312048231131604811713285584411113091327507690421540586311427211061421161616691090750320906857051817141194176259247587942610114215119511175076904215403375066418108762071441111115091212518022947215233411772224127413132719151747712113720631142721106181957501732483322416532995115090866884176491562112326590532412861206219512061652139196821256425317690115191416530918019512015666170168141131140195741272910266902505312128324884120726074421441111175234293166571045656706118075017087214490612207920401197222124981136545695077013725812862125121224841321092772215120021347728277510512279054710217114748071600543138154132116151703132211611211371011209587711319515123011867477121137203111449108478023021381509986110326681101641314274541235246762311365474113724920493037361907011523215189641910329018611177620617514241274140474807160054313815413211615170313290532235171565668498820810837240507811713214790991542121817013273313136635514751157211566122060481171328558441111309132750769042154021881058919761656327390906034771316360774261011421511951117507690421540758371349060111786770131150912125180229472152334117722241274131327191517477121137267589125321138286120621951206165213919682125642531769011519141653091801951201566617016814113133917581411907024221752849013181115761377523429316657104565670611807501075355850065316137191911605511138584128015125812862125121224841321092772215120021347340249179908101461329061611055161321151513513110112095877113195151230118674771211372806075028260726531044873069260413247101062415511138866041318205564957715099861103266811016413166186411106613169141215162285132794166906478624181702968013124920493037361907011523215189641910329018611177658357612185611565329951320906690180106147825129064819590104131621113756684988208108372402063114272110619671140736629071881909017323209066901651070714154286518906417736635514751157211566122020678438721116275261131607461715611064177218810589197616563273909060347713163607744711131141779675154061623890207103636015175837134906011178677013164074215514613826758912532113812775828278714126121167234138339175814119070242217528490131811157613742171471032902246441580134466138107535585006531613719191160551113858412801517835105122121138340249179908101461329061611055161321151513513110627077022912439013902213828060750282607265310448730692604132471010624155111388660413182055649577150140710501923619060840066321513212164906071341714118675770616879012705406168713253487661864111066131691412151622851327941669064786241817029680131626431417211250049113175227619590156347132903560136018437051138583576121856115653299513209066901801061478251290648195901041316211137249902715211664138023391143551125171113820631142721106196711407366290718819090173232090669016510707141542865189064177105770252129562649032135151668111312067843872111627526113160746171561106417716081017406678713407614181032211160156907294113296669064717013011046451547712771316472795539151447111311417796751540616238902071036360151104910727147191433236047360735155112237341281640742155146138281589618444131796714413469812775828278714126121167234138109181115612447481516614083372242251904963213142171471032902246441580134466138970919690136121915611015111137165452783510512212113814790476710094764181561320881466138106270770229124390139022138596314166901476641815123279213115014071050192361906084006632151321216490607134171411867577061687901270540616871325348738817732662149081315666214904783762215690615715621162643141721125004911317522761959015634713290356013601843705113872530665116160091811675688070103193151125171113811564115124990271521166413802339114355112517111389549170162215862041580351311057702521295626490321351516681113124920489031661313085109056161669010461171215652131156481721381608101740667871340761418103221116015690729411329666906471701301104645154771277131647279553915171071571616672113446613810491072714719143323604736073515511223734128134024917906612908717011123113128158961844413179671441346981749847330341113141102227062527151091811156124474815166140833722422519049632131590516715621838615413131160077970919690136121915611015111137165452185881120714661381479047671009476418156132088146613859631416690141619013171131303685191101375431451151596314166901476641815123279213168071528098117415511138388177326621490813156662149047837622156906157156211289131711562129017411461317253066511616009181167568807010319315112517111381156411511516631151330642137244617156110641151954917016221586204158035131109181115632171129212511017687240110575176904390622014490864701121191101092121091041329022744770640311137683581360111024356249204890316613130851090561616690104611712156521311564817213822220517154684396905645110385392905554479060612190871104202710715716166721134466138326512861217018947047617910436490750340249179066129087170111231131198698421427214717498473303411131411022270625271526192032115120490115536475905167156218386154131311600771166126511163061038539901690871858811207146613861651326876610647596314166901416190131711313036851911013754314511516363151140716785676677390131685651179680715280981174155111386519052476612753396523071106641811127101302891317115621290174114613165611250882081083724117790791178711101247103290287151341369086742353215290342471516631151330642137244617156110641151374177120114214373619014339159729104969633215327024181091811156321711292125110176872401105751769043906220144908647011211911010921210910413290227447706403111376835813601110243561621762592532050616296274160410670052371416777277325907113422220517154684396905645110385392905554479060612190871104202162311427211061392229061887474544124502713265128612170189470476179104364907506122621431904432102722161506422350377431866601110477540662114121253935074166198698421427214776617644275090512871011320611769610311725096264277961091032447411726192032115120490115536472661764427509051829087211087896619531801971216197696283124904601051179103296116612651116306103853990169087691964528210273267901093732493077916721730120536047170318115547557616513268766106472043482225710151101711325736222571002177901030110154132118655636315114071678567667739013168565117910146869904519220790161158867307791152651905247661275339652307110664181112710130347129320564164728122104756150478411506665611250882081083724117790791178711101247103290287151341369086742353215290342475722633521043141374177120114214373619014339159729104969633215327024182892691031180119672089616726190150771621762592532050616296274160410670052371416777277325907113437906590754735244111771486620670823841122741814841122031665166241901059715962962906133528932966102662102376126687333280741111623114272110613922290618874745441245027111031817669010451321908192298306109590143593058661226214319044321027221615064223503774318666011104775406621141212539350741668619032392854710401147861072824111592323227554131659014079713985357661764427509051287101132061176961031172509626427796109103244741171591043101223286103853990907771266176442750905182908721108789661953180197121619769628312490460105117910329633750173205073166130155761788755737531651104129314028763541339152486351301001372012661563158659022221306613010385392029013069196452821027326790109373249307791672173012053604717031811554755760366101277010329065014221041489479744122791396610127705751351175314142829011517687214141315593122657151142908820434822257101511017113257362225710021779010301101541321186558178989910276756775221155811241032904175513635492707971592774748201014686990451922079016115886730779115267431330921211111013922290618892150171347129320564164728122104756150478411506668210163766811527915722633521043141102767532479721365176624141186797289269103118011967208961672619015077236182756711615628617226140381244157155247141414299797379065907547352441117714866206708238411227418148411220316651662419010597159629629061335550901557001431362695990128967061244546621023761266873332807411123618224073243170131110318176690104513219081922983061095901435930586236768118675671032902161365176624141251656769066791016797861903239285471040114786107282411159232322755413165901407971398535511328379096554796573013203211203388166159104310122328610385399090777154904635321908406651130207901611588673077911523375017320507316613015576178875573753165110412931402876354133915248635130100137201266156315865902222130661301038539202901301695096692232669221835159879160366101277010329065014221041489479744122791396610127705751351175314142829011517687214141315593122657151142908843124752756115398791817898991027675677522115581124103290417551363549270797159277474820443528561151132363121211130331366516176741155866811389010301044690362770674313309212111110139222906188921501711567203166516680421418250903134387376217435473077914837124142496632136519879181151124272653248779071032757976776703525142682101637668115279117371190174654030782056115290292483140102767532479721365176624141186797109035121668709613312010730530782067321679011084110329015031435234115113053165116482431905011015111171236182756711615628617226140381244157155247141414299797107906690754740183780996559077375550901557001431362695990128967061244542823921885087911824509425557288814906136278044189570236182240732431701314352814675213766775164192130877280905096618843354454507797236768118675671032902161365176624141251656769066791016797107374690669050411719034117688739628369144776511328379096554796573013203211203388166423348066753321842151326714792119751601529029134214054904635321908406651130207901611588673077911524544113591832141666416950966922326692218351598791102167106413017261671697418723304157431247527561153987911023401710321231787229790296103246152217774435285611511323631212111303313665161767411558668113890103010446903627702361821203322161905048241150124291145177907912601101567203166516680421418250903134387376217435473077914837124142496632136519879181151124272653248779071032757976776703525142454140129961287232068110130331490307791152173711901746540307820561152902924831409312530041247753287411402901421233611444232311090351216687096133120107305307820673216790110841103290150314352341151130531651164824319050110151111713187739042152103290475399041357416610790669075474018378099655907737586861906780108066102120166837110965553679128239218850879118245094255572888149061362780441895701091251732190353219066920751021511433229690342474352814675213766775164192130877280905096618843354454507797526293804427509051665497128741140290166804514651163421401073746906690504117190341176887396283691447761020262904379096181550124782804762324063190115701170661659281811161317074233480667533218421513267147921197516015290291342140348783517409616296090262115170745441135918321416664621090661311241032909649170751116137102167106413017261671697418723304157252465818132012058773143351521441389070291496335459663219531121907975568164146192907915347171102340171032123178722979029610324615221777102152538618671111551516706215023249151138150344188281890901320150103853929032066913355312361821203322161905048241150124291145177907912601102235766611666753321525215181714782903219011010066106630502321085133575531454140129961287232068110130331490307791152583576661161208411104281436111066110506328147289329661021062185247861055219056071052909933653077911379312530041247753287411402901421233611444232319068719168112075012190103232631877390421521032904753990413574166134206506099628686190678010806610212016683711096555367911085190186982229010912517321903532190669207510215114332296903424719407732229645211471115090477432108535376885262938044275090516654971287411402901668045146511634214011789211750320110898137031241569024971105265187249307791570102026290437909618155012478280476232406319011570117066165928181116131707217324177773115114110385397306651600713487835174096162960902621151707966611075047621090661311241032909649170751116137148908141343411321617716066613613832090667739012111464911154739071526908209922111246522225246581813201205877314335152144138907029149633545966321953112190797556816414619290791534717181773751062511329010174370061942491479925241251895421114098654051321509017040714712515461398014066512729107140113710215253861867111155151670621502324915113815034418828189090132015010385392903206691335531131968632477539669528881490613454561153987916412235766611666753321525215181714782903219011010066106630502321085133575531142903629031272652826955716610021106007158357666116120841110428143611106611050632814713861751716036610182087536850578161062185247861055219056071052909933653077911375019036411032186901304111752811179557690687191681120750121901032326321416619610626684683796965590934169987916691213420650609962240205191523016656043791416007110851901869822290532781929819407732229645211471115090477432108535376882824140013191713010712087761651161178921175032011089813703124156902497110526518724930779157066137958231564215113290172261403812531571679879111713021732417777311511411038539730665160071288908662482419064316190866903081172907884511429094103853973074166966611075047293101908667737743190866148908141343411321617716066613613832090667739012111464911154739071526908209922111246522230110061935151031665604815754241509046881773751062511329010174370061942491479925241251895421114098654051321509017040714712515461398014066512729107140113721312651681229267706104202259131707131968632477539669528881490613454561153987916412581286151221961001365321701429073191110620214290362903127265282695571661002110600715861751172903598642114290100184157197253319432124277710121013132090531612531386175171603661018208753685057816142903710329032090661107004720047740415407125350190364110321869013041117528111795576116210212511762122531104013741658332141661961062668468379696559093416998791669128553825313209615719016420224020519152301665604379141600711021565626287401281253532781929832595139086861921058150111111266520372824140013191713010712087761651162254633486614313212701846613795823156421511329017226140381253157167987911171304490904113290641483773215285005531234418522539777912268044665614295728890866248241906431619086690308117290788451142909410385397307416660390105947231110904682369777911719057629310190866773774319086667954733057157305661303052671103011006193515103166560481575424150904685927069466512958575066520111213126516812292677061042022591317073375065222545103212101032436562581286151221961001365321701429073191110620220790450766374616586175117290359864211429010018415719725331943212427771012101313209053161253282651716360903481429037103290320906611070047200477404154071253102340665148241190506660116210212511762122531104013741658367439661936119219371003171103370685538253132096157190164202102357454412450231102156562628740128125323078363077912024332595139086861921058150111111266520372062261029693368945225463348661431321270184186423423231590107474490904113290641483773215285005531234418522539777912268044665614295713274740469056241603901059472311109046823697779117190576179719511158774117111446795473305715730566130305267110286904705113986241365927069466512958575066520111125070278471413213713741337506522254510321210103243656107535589511381085220790450766374616128380901529034214028265171636090348548778322969046647102340665148241190506660374138901657706743966193611921937100317110337061281151030110716231289329661023399510171429061555394210235745441245023137014610832345680921682307836307791202431271802121429015414020622610296933689452533705090105118642342323159010747102308558201761903213274740469056241109320509096510277961981051038179719511158774117111443703553096421969016028690470511398624136186306321424767317532320905712507027847141321371374172035491473735114290219145250348107535589511381085279411450678138581283809015290342140139219114015073519114054877832296904664715078565631122257374138901657702064990241901937811401281151030110716231177251901329078691339951017142906155539422064990241905037316116622213170737014610832345680921681283525722490951136481782127180212142901541401709513714725337050901051159110865113103321023085582017619032159110476325041103111311093205090965102779619810510382064990241901135532987170131370355309642196901602531519688413118630632142476731753232090579556411861305772035491473735114290219145250348638564112912021317941145067813858128190151131139219114015073519114021753756411507856563112225717411481032907514814774320213120649902419019378114085113597321772519013290786916501103007061312064990241905037316116622213170710989049390321501555010087511283525722490951136481782174195985717095137147246201355801213736159110865113103321424549063151159110476325041103111311511336472064990241901135532987170131633460110659103090345904118425315196884131905964547142961553195564118613057289131752618762638564112912021311128041178357128190151131259890120113217537564195150521311322181156417011741148103290751481477432021311501073572524393113885113597329581222531605111010091316501103007061312519047011114157313810989049390321501555010087519183220725390169961311741959857417176711211312462013558012137363431464134252138142454906315117417452453132151133647129412057355647326334601106591030903459041184417453114151905964547142961553136614611113128913175261876270695784384321381128041178357281581414882598901201137025188541315092037253479101901815834195150521311322181156417012002255220751272750469671501073572524393113810281403620958122253160511101009131134411190052511312519047011114157313810633766514918322072539016996131232120125771384171767112113124151051463521313431464134252138181725120963601741745245313270014418261294120573556473210390217155307177117234417453114151666442750905136614611113119013463706957843843213825646750905128158141488106167102715770251885413150920372534791019018158341102114103135722200225522075127275046967421242102722140102814036201170126158463513134411190052511311514196790524841063376651420014418262321201257713814878411651061121241510514635213111420925944616757141321084710385397814718172512096360181762112225170014418261051388632901334821401039021715530717711723425682148715546537135197561414116049431666442750905113399152611361901346373111013961256467509051930382110791106167102715717426630810211410313572220678111421242102722140651120107764643245117012615846351361318152151419679052484206226801376611016979120014418262024331492071190140148784116510611211599076222541501142092594461675714132108471038539781472014414182228318176211222515861115171269741116624141110513886329013348214063752323631569585182903219011024690247137972568214871554653713519756141411604943158611151114110385397301339915261136102740117821449019373073111013961507102247949690736199930382110791724746746874969617426630825832626251222402321048483703641692484206781115963141746786642951070677651120107764643245174100311422141021331946611661318152566955031015039590511429088741112062268013766110169791766176467509051117250961617275103087904622024331492071190140266176442750905124813011363774372931019086615990762225415098617646750905193115110329090901472014414182228397619691590184595847161616554539516762207995488241860741172893296610286519099264624545127710329014758611151712697411166241411475451325486375232363156958518290321901102469024713797137611274031110740171586111511141103853973025813166651510316616548157102740117821449019373060647716411507250710224794969073619979651321796316660901407977247467468749696638626364730121044825832626251222402321048483703641692484778513151838391623187119369659631417467866429510706778132031562164732641150665124331174100311422141021331946611612828113826288742751407085669550310150395905114290887411127341713214012129417912159618756962601257661764675090511172509616172751030879046263631518908044532319027115588021290158664911779079126010426617644275090512481301136377437293101908663921101138764851171414791131135857510791541611526721875654098617646750905193115110329090901475965104315066514276901907141161218236981137932791976196915901845958471616165545395167622079954882418607411775355618296695981272286519099264624545127710329014763120519681083724112396710901268208111382628874250882014647545132548631663077037741967528881490613706124454137611274031110740171596510438964217013120281137932791258131666515103166165481571036236781066610154717790791180770222241421713785651321216356064771641150725487784147115147414812197965132179631666090140797133106432321110115177907911807703209065902993761371083209065901274166311365287911376386263647301210448853178711101238103290357897115508901416619902151447469668451297465090623140778513151838391623187119369640190754784090293166131551106985181320315621647326411506651243312063114272110610911581424569066582311471268214128281138262887427514070878378963077911869511767417510227341713214012129417912159618756962601251667035186512617023501879263631518908044532319027115588021290158664911779079126010420678362238372401239690193977417690669021679739211011387648511714147911311358575107915416115267218756540522247116299791596510431506651427690190714116121823698113793279159631510519513617986742353215290342477535561829669598127227661818687411714929516114524649663120519681083724112396710901268208111382628874250882014663631518908044667103247667505151226779117263166307703774196752888149061370612445418245121577901356759651043896421701312028113793279125832626213110861101356710362367810666101547177907911807702222414217137856513212163586151656841814112096650132090667304141217775487784147115147414812197483151143129010329047539904177711331064323211101151779079118077032090659029937613710832090659012741663113652879113731241252231902477478531787111012381032903578971155089014166199021514474696684512974650906231403441021936119261196210731661374019075478409029316613155110698519566612911009541103853990414120631142721106109115814245690665823114712682146601261031160702540661701659062477837896307791186951176741751025862491503907021801031400702540166703518651261702350187925962269975074334720678362238372401239690193977417690669021679711365101115714664038115320631711755222471162997917714181126484651755963151051951361798674235321529034247970171111993059458502708766181868741171492951611452464961344171326349079416111013675024176901779062763631518908044667103247667505151226779117210912517142601711075708391623182018245121577901356767037136132731791478215034418611061290116620411017142661317422583262621311086110135673851022827551243311597551753586576291416517586151656841814112096650132090667304141217778177381879191187401751471529081413421344667483151143129010329047539904177711621762592595111874175492324541301394731241252231902477472361764675090514527610327100511429088723441021936119261196210731661376231072722835078062907290812803071939090579566612911009541103853990414126617646750905111931428195215616172111419666012610311607025406617016590624763687534964196790171151119412223158624915039070218010314007025407661764675090511713919593115050373908137612229220111725090605405962269975074334731415066513211407615031603419314121490156557540790721136510111571466403811532063171175816624877951251474904111035221791779112133890872110932910727714181126484651753664566568162156453903731031127890901091925190901037297017111199305945850270861537321103853990308751003141666090148134417132634907941611101367502417690177906275963149715066516036514091111091251714260171107570839162318202063176632658353235215261952409111930891363963201103143113777571661002670371361327317914782150344186110612901166204110171426613174265030011017137251961148635812411312910282110501732011031431635929357166100838510228275512433115975517535865762914165175314320501106651303117323983216724147103853910127181773818791911874017514715290814134213446697619013733120190109321596315076790864721621762592595111874175492324541301394716217644275090516632185411429901301250412177123617646750905145276103271005114290887268415181003584222184966026210805616024191934390901091314789090103726231072722835078062907290812803071939090575861901705654507701235703092395703039010912367909010996273081901037226617646750905111931428195215616172111419613310641301724431316368753496419679017115111941222313887723425406656041676617646750905117139195931150503739081376122292201117250906054099845373078207663154032046509062262314150665132114076150316034193141214901565575407907212164537165770111804977791211708816624877951251474904111035221791779112133890872110932910728091111678621880901307179157852253138576528791211708366456656816215645390373103112789090109192519090103727467841165836161766664114461537321103853990308751003141666090148210784380418677410766102120107307791596314971506651603651409111290518259253208046445413014452110320227023690155320465090622622063176632658353235215261952409111930891363963201103143113777571661002137619010401049347430120813437104281571372516651650300110171372519611486358124113129102821105017320110314316359293571661008636411506651141170665431104467613313573752070266811003143205011066513031173239832167241471038539101271156695510411875690158766108924690213154647651122635162215657311176901043135046148337976190137331201901093215963150767908647259651011157732190353219084010624461936631142162176442750905166321854114299013012504121771102077396661021205384310712199147614451712263516221073768415181003584222184966026210805616024191934390901091314789090103725965105190810116612492171591668113073758619017056545077012357030923957030390109123679090109962730819010372206784112124929979115610366124471441844113310641301724431312067841121249201262424313617561792090130140903887723425406656041628440190681311382701782998453730782076631540320465090622625222471169879111015035100561216453716577011180497779121170861674579750779111015592809111167862188090130717915785225313857652879121170820631766327204519213897431417216111168770874678411658361617666641144290518259879194214122290195214921302107843804186774107661021201073077911022821417121244610874114150215592202961901402905182592532080464454130144521103202270236901553204650906226281773816674316641416231791511376190104010493474301208134371042815713725166518104573664141623179175370092636411506651141170665431104467613313573752070266811001020773816690180223529533350890106135149143226903210776906830090156695510411875690158766108924690213154647651122635162215657311176901043135046148337392177293166578371109655478987505965101115773219035321908401062446193663114211984573345221183110668179167102077396661021205384310712199147614451712263516221073794845837909624331596510519081011661249217159166811307372581316829022251305205405374176902168202225154020678411212492997911561036612447144184411036315154041190505021961204381905081156206784112124920126242431361756179209013014090276784372311093668886616378011150901205313427154964713155716610082844019068131138270178210275180414268131352965914052224711698791110150351005653217510516656053422706636781137616745797507791110155922581286661317537100312101010170766124036478988481486170248922063176632720451921389743141721611116877081843175366110746791517536611011172497126970675360157071543372905182598791942141222901952149213081773811705111022821417121244610874114150215592202961901401036236781061066471329013033141299177911168177381667431664141623179151258131682902225114275076904105404610714782022251540810457366414162317917537009265190307614965552467125951102077381669018022352953335089010613514914322690321077690683009065030041214121965223921772931665783711096554789875022012083790621239690473119845733452211831106681791676519071471492597547351617654094845837909624331117695781311875610710822257951118791110493103922581316829022251305205405374176902168202225154054214117107120830921411122251119154438915410581062221024175103631515404119050502196120438190508115641381041732967618415722606135727678437231109366888661637801115090120531342715496471315571661008326819109042037155465376832312472991027518041426813135296591402144579750879111066515321751051665605342270663678113733321111564639029549274741232138412801389071832717411212581286661317537100312101010170766124036478988481486170248926770902107323129219165454116468184317536611074679151753661101117249712697067536015707154337527777156641101299091581773811705112331075867001032906244549031262419671036236781061066471329013033141299177911162278177246661151318634781781706238480147822581316829022251142750769041054046107147820222515403417212201188016615525690259540651903076149655524671259511013107416552453764561138687801238378014782116502572815595595165030041214121965223094219816012551457318512621402201208379062123969047323320575515612067912275181471547029382706516519071471492597547351617654082774755268391623179157117695781311875610710822257951118791110493103921101937784390533193905421411710712083092141112225111915443891541058106222102417561125632056108201785832629091118393372871616010116185471293101160413810417329676184157226061357597146424187563585922590225134162563268191090420371554653768323124729981130872121104433022144579750879111066512976224188727147811213219607371168401728309622542917242090289329661026553811671161889632773629231510551256708333211115646390295492747412321384128013890718327174112130381382760224116647690387901076667709021073231292191654541164682598271379835154540264120361419635154140224719052777715664110129909155671857114713617146361468372069623310758670010329062445490312624196711552229071472229090585294512278177246661151318634781781706238480147821321229608223872872110917961110115134172122011880166155256902595401377827654801376611050331101310741655245376456113868780123837801478211650257281559559512711377613670137817653011197759253144109242121140173248332222916309421981601255145731851262140130127361295202136284907616276148723320575515612067912275181471547029382706511287130711361894835125690431412628277475526839162317915713131302371335921711334370140711019377843905331939030723740177411658781033516112563205610820178583262909111839337287161601011618547129310116031713775210615222902531414165152048597146424187563585922590225134162563151176541025047737240411111345033781130872121104433023038138471563203211203388122251297622418872714781121321960737116840172830962254291724209023362071575517840210817291510293737655381167116188963277362923151055125670810377394715689709373038138276022411664769038790107663877156561903501111518115418410175309614132662484412219373725982713798351545402641203614196351541402247190147711105111210031010424181191544332491717093756718571147136171463614683720696448125810750681263704907029110011552229071472229090585294511471257167501283292015114075010041580371321229608223872872110917961110115146671432861032130080712491032907403713778276548013766110503312722221248571750502711377613670137817653011197759253144109242121140173248332222916259117989062080137661105033710490222612581750130127361295202136284907616276148710211376221115531379017071452623131287130711361894835125690431412623373276479673827069042114013131302371335921711334370140710360171041144070220261411157136130307237401774116587810335123310720211151712631713775210615222902531414165152048128789715652564131106598032320905714596103816353935470315117654102504773724041111134503377071583916231791688215438270170830381384715632032112033881222513372531104323382902221320708307797962065176183110160233620715755178402108172915102937373152343292851105814670169457076163670176364314110810377394715689709371036151119176035010091101151387715656190350111151811541841017530961413266248441221937372273170453688101271703144147711105111210031010424181191544332491717093727721783130448125810750681263704907029110031386511401301145020832161205624537349741130145903423609023281731714712571675012832920151140750100415803717132972511412591011150564667143286103213008071249103290740371038122271401511071067401511191544115311713627222212485717505067155362478423115173183115162141262259117989062080137661105033710490222612581750216214688721101538729611401038539909214122810211376221115531379017071452623134553718010314001561116590557791821303373276479673827069042114095571222773517787536532753035614224741146814079167103601710411440702202614111571361303164549075071319774824718756132107108323159057233107202111517126109732445340478105733718755046812487225132445340512114712878971565256413110659803232090571459610381635393547023310713276121787382902325451715353228244124815447144192225150181707707158391623179168821543827017087011301206913110332154757516618170733725311043233829022213207083077979620651761831101601713213155591875641125190110660741706632131315234329285110581467016945707616367017636431411083332177981311354921707081311036151119176035010091101151140732401129471257910990572259662155425181359409056122731704536881012717031446722411615015550100875127721783130259627156915901839241901619030741262313865114013011450208321612056245373497411301459034236090232817317307193771511233411141511732530908302419010311607081713297251141259101115056679041431540102170300723356627505161210381222714015110710674015111915441153117136483716190414315407404314502499027217038081160695154515314167155362478423115173183115162141262132178113073011010124539040924723390180456231114021621468872110153872961140103853990921412285211036374683761471174284171701291125013056455371801031400156111659055779182130103837121837909112171090719695571222773517787536532753035614224741146814079167671175770812151611120617674112064632573164549075071319774824718756132107108323159057171321866704241349735173109732445340478105733718755046812487225132445340512114735116150407315405129565595090270223310713276121787382902325451715353228244124815447144192225150181707171327315983170896869103290663325770113012069131103321547575166181707455591407373419015234210490115171321315559187564112519011066074170663213135671314351513143571011160414319015714133321779813113549217070813199182222602511405016674921019614073240112947125791099057225966215542518135940905613511511049040110194843870194674695202136672241161501555010087511197173517311813914136259627156915901839241901619030741262862321062313725625939111413829014330719377151123341114151173253090830241901031160708877153110570863671071193110212708679041431540102170300723356627505161210320119214134275611015050130483716190414315407404314502499027217038081160695154515314117132171908574721224190245130245120183132178113073011010124539040924723390180456231114067161750407315406176743837361965211036374683761471174284171701291125013056233130719155122290253321038371218379091121710907196111690291771425774673138270657241851110901429149013067117577081215161112061767411206463257307321427219357050903827069017142114017132186670424134973517313910329081683418501468014435116150407315405129565595090270269466728876312869090585047671713273159831708968691032906633257143143688117161161517611425697455591407373419015234210490115297503324703521212113036142416148741836014686142907107887904125086735671314351513143571011160414319015714129750366573138513250597011135114216047991822226025114050166749210196297911429015516820940610610329071361303511511049040110194843870194674695202136303813847156128723206811013011971735173118139141363411071002919893137691216511018756609659058754071608709648091661996862321062313725625939111413829014322731704536881012717031444653079862750877153110570863671071193110212708307321058939521231357510961574051110305103853973074166512177710320119214134275611015050130707193772639155917022122536685464913613017132171908574721224190245130245120183315116111001614063521159701312621724634125301164621406716175040731540617674383736196749406111001673031038539202325288415401341312331307191551222902533212411596143710329060251286111690291771425774673138270657241851110901429149013020162648378014782103213831292819018730732142721935705090382706901714211409675433236247871471441471391032908168341850146801444981495601101421107364363586946672887631286909058504767689128661554507021379017141479151503317798130143143688117161161517611425697257253807151253121208297503324703521212113036142416148741836014686142907107887904125086797782889128722975036657313851325059701113511421604710375062140981481375436083715914311548141123298276682130297911429015516820940610610329071361306332337619046358076121905303580764117107074165831363038138471561287232068110130803511376454811108874165833411071002919893137691216511018756609659058754071608709648091661996119205755156120679122751889903196499015122731704536881012717031444653079862750895621307321058939521231357510961574051110305103853973074166512177741661701138791966707193772639155917022122536685464913613072332202511389012039562289371409077541315116111001614063521159701312621724634125301164621401425537081137051747110210673230749406111001673031038539202325288415401341311411195616336721032110411545212411596143710329060251286211175116411905820162648378014782103213831292819018776463907838713610251470419675433236247871471441475052929081312531049045225321813641526177014981495601101421107364363587917013690797110113368912866155450702137901714147915150331779813046539711091081122066854025725380715125312120819113249984959614198130240108977828891287231970218113437659013080103853920225321814870118311026810375062140981481375436083715914311548141123298276682130723661106911309711706215215546767416590170819752633233761904635807612190530358076411710707416583136421301909041653902629056013641946632142479997072893296610254547354071608709648091661990664129075095949051402110115451602708141110115012061450970243161680351137645481110887416583273135516482135476155510361439867210340211071411101233310511013521119205755156120679122751889903196499015114626303756595309581121381712701404171036873660972431412621385687275758313897260135141131107548668776895621870252586515901607319170112251964166170113879196610815518302861101039791131471412471141556021828610759470196212311675710866805118715582277672332202511389012039562289371409077541141351351340371107251321356411111703219541521141212130976421372081045244971707052089731810362621425537081137051747110210673230100575018161350586371411195616336721032110411545250570690333212795114013652070222292766321513221117511641190585313017056103115090545764639078387136102514704114739053037469065907541177729310385391012355394314166130505292908131253104904522532181364152617701483659040786526763122242390612541437791701369079711011332902467717479971120137116290479379655726141651514743719280417104324714079111021029946539711091081122066854082147753472513261265315181987573714719252109152652420311962163111702629013913619113249984959614198130240108141119902049303152561153987915131970218113437659013080103853920225321814870118311026882152454016026311096530769174901601514164707902689096104288853906131244547567723661106911309711706215215546767416590170819752278108160682271124905138915429357175100942130190904165390262905601364194663214247999707256707340321951370765780154445154547354071608709648091661990664129075095949051402110115451602708141110115012061450970243161633184721107215223017136211740357727313551648213547615551036143986721034021107141110123331051101352187104165195141131225971174586401462630375659530958112138171270140417103687366097243141262138568727575831389726013514113110754866877622396811882124160896156167951478702525865159016073191701122519623487540144905406039075074370123017106351311081551830286110103979113147141247114155602182861075947019621231167571086680511871558227761421452137212661110114135135134037110725132135641111170321954152114121213097642137208104524497170705208973181036262477211013152650516832111316631141530473103470173100575018161350586371381755801429012211630647390811476512122205057069033321279511401365207022229276632151324235949160120753110753130170561031150905451421452170500111525821106222196231411101151421817473414739053037469065907541177729310385391012355394314166130781714766609041195354707648365904078652676312224239061254143717381651081011139658310629024677174799711201371162904793796557261416515147437192804171043247140791110210299745320501106677250131135618110324537112014290144719655570751009821477534725132612653151819875737147192521091526524203119621631117026290139136728165102221248105615519655721451021411199020493031525611539879151141351255150610215103261667320628215245401602631109653076917490160151416470790268909610428885390613124454756712190153815573224537841615101341712221101083278108160682271124905138915429357175100914222980371010147412610632237371305121531454706714971120895815803746904548822567073403219513707657801544451371091728090517090581321224220724112032084907110332154757516618170733184721107215223017136211740357787596117404704723673037103853973075541871041651951411312259711745864014910716075492150205557791541621466222396811882124160896156167951474111262476229961037282370217234875401449054060390750743701230171063513138320721193775705090171382706904211401421452137212661110113380446671281158565132247176350597011135114216047477211013152650516832111316631141530473103470173199584742217141397859753077915410566023242134047138175580142901221163064739081147651212220870242616050415195730779796206517618311015452205444112612611512074149201309719642359491601207531107876590248012075328047513389431362362847061317228142145217050011152582110622219623141110115142181747341211701609777115234145678171476660904119535470761118517301153103341821131516116131707173816510810111396583106263241901071781460121108153103315174532050110667725013113561811032453711201429014471965557075100914370639190191134106645251613118151728165102221248105615519655721451027624190107170792651401321774744552014192641687016121311413512551506102151032616673206228174811068610527141750131121901538155732245378416151013417122211010831418590202175902534671289077941422298037101014741261063223737130512153145470671497112089581580374690454882505540815905111049335116351313710917280905170905813212242207241120320849071103321547575166181707293120949807113187596117404704723673037103853973075541803741770411106921161491071607549215020555779154162146622425017137294663115152713141112624762299610372823702179219550513418320120551111933131131383207211937757050901713827069042114024232141313442173013071319062369022370241827113380446671281158565132247176350597011135114216047293120949807113171131199584742217141397859753077915410566023242134047331251907653752043176731131870242616050415195730779796206517618311015452205444112612611512074149201309719627132141313419012124219193113161510721417024182718765902480120753280475133894313623628470613172282931209498071501317113112117016097771152341456971949014321045611118232012051151131111851730115310334182113151611613170720511521317103613122796051224209969495251904258131536412702418271263241901071781460121108153103315129311593970414491438872381706131143706391901911341066452516131181511093205501311902627789516852419020621155123642762419010717079265140132177474455201419264168701612131307107136151104119615151110248281748110686105271417501312493093395811248925133614185902021759025346712890779429311553970414477502511205854722290253123128035110435122228613055777677813771409052011611512394850554081590511104933511635131921951704971304417101201832931209498071131653205090473103290351115280374177041110692116655532425017137294663115152713111913521005148117251424417011118114713019631309016021943112421032702418921955051341832012055111193313113127177486720741214540827226970904213124232141313442173013071319062369022370241827127129290352521592111513014691904829312094980711317113165473540331251907653752043176731131661669075153701461105091943114910327024182713214131341901212421919311316151072141702418271803494369110770293120949807150131711316547354097194901432104561111823201205115113113725191311471069013155621032702418205115213171036131227960512242099694952519042581315364127024182716511311350351110804501531151032902405923514417011113829311593970414491438872381706131245113122104113277810212951204113110932055013119026277895168524190206211551236423101151281467131252108702418738131265627770241857209467307107136151104119615151110248153355484711265114812124930933958112489251336109212807735108212801478221290253706131293115539704144775025112058547222902531231280351104351222286130557776778137714090520116115123948114289327907368729059766917677921951704971304417101201831071421766981127653205090473103290351115217161531849301201020901764717916555388421985265258709087171751307791151119135210051481172514244170111181147130196313090160219431124210327024181439541723513027177486720741214540827226970904213121118496136519655901858307912712929035252159211151301469190486418756752001111874991522474143077916765473540193064221714307439862750661669075153701461105091943114910327024188838145475471561153987915180349436911077045126106831966956547354049577644221249153451132241164212521502417136130137251913114710690131556210327024181420784530371301412602071412197117019369692413463050252921306511311350351110804501531151032902405923514417011113819524511312210411327781021295120411312388122264892031011512814671312521087024187381312656277702418572094676916520765701153355484711265114812141120210771763132928071001041616120213110921280773510821280147822129025370613147104904087372652477227901181080671142893279073687290597669176771011202115188319071677010714217669811271111329035153703810610735725223811171615318493012010209017647179148125390143211037265247710714086612021318842198526525870908717175130779115132142076132901150110651101122213177013114395417235130777110311424903243113116401042021312111849613651965590185830791387227775186105282901511108836418756752001111874991522474143077916710399473113454130038111930642217143074398627505117739859011688381454754715611539879151171207807658209451261068319669519582624566240561151374957764422124915345113224116421252150241713613061111242901553701290454909271420784530371301412602071412197117019369692413463050252921307750336105026547422151059021812893296610251147051110331777615311953810725038222296529213123881222648920101321765022307610714086615316916520765701951242779125917116194651101122213177013141120210771763132928071001041616120213120111271633563471049040873726524772279011810806716112147670613244050011531716773411472101101120211518831907167702718282221031044753281490142111132903515370381061073572522381164212130570716775612848125390143211037265247710714086612021311228791160137358135061226145339066012213131651914032142076132901150110651101122213177013129132141313429011138483152788177711031142490324311311640104202131101361471477624229714126210011138722777518610528290151110883103809071901401101384698210399473113454130038116316945446266766113151177398590116194444170159164470416126416917120780765820941120717376453209195826245662405611513719573624476244056110168611112429015537012904549092770695741139136290531507507750336105026547422151059021811667035146172242910702126409017105165714151147051110331777615316503007061682682126657381072503822229652921311020563499030782012610790501191101321765022307610714086615311028619087105810051856299471719512427791259171161946511011222131770131162315111159051272910701304561002201112716335633399811696103275010852161121476706132440500115317167734114721016320571562594549092727182822210310447532814901423211401070373023718031414767040311481317016421213057071677561287730130613431704117190741046140311122879116013735813506122614533906601221313165191401713587140151401476314031129132141313429011138483152788147430556329907731305168261403111013614714776242297141262100111812753448557090259114461204511204131103809071901401101384698299127156212501801130131131631694544626676611314112128777321402128766609053047574194444170159164470416126416963154571941703564666090142475531514112071737645320911119414175160699907570195736244762440561101686329777761715611645490927706957411391362905315075064364132246569012716670351461722429107021264090171051657141632626076999035706503007061682682126657632977711119571562124549092710205634990307820126107905011911051207124777015941251771028619087105810051856299471716320571562754549092716231511115905127291070130456100211111241233998116961032750108523968807329412155840702473701363182599159664110129136459159015390155661617916763205715625945490927101119622674348615787971012190790321140107037302371803141476704031148131701321103637897001471301469740390327730130613431704117190741046140311452857156104582329804411244541713587140151401476314031138722796352811323210379623631474305563299077313051682614031151171901289075644189450812753448557090259114461204511204131121222714775062477614776624135222243325374799127156212501801130131131111355403551230816210847103853920241121287773214021287666090530475741980417644041703193152631545719417035646660901424755315132130761329078652193930381111941417516069990757051498441183540417683308632977776171561164549092748132911030556385509025754064364132246569012713184745793141138540632626076999035709514492221107121732150576329777111195715621245490927514961062956508791113540105120712477701594125177651251828104811198820307791131463463155840708632057156275454909272271003119453509017710766111112412589571125001190346167488044214641208702418453293516889790719013039688073294121558407024737013631825991596641101291364591590153901556616179167245816510222124810561551194177916637101119622674348615787971012190790477249713746530074169232110363789700147130146974039032803291241701411043110452857156104582329804411244544580490351001464153251387227963528113232103796236312854781464176151171901289075644189450787512341666090171412122271477506247761477662413522224332537478051551485244265111135540355123081621084710385392029458392110411342526007119804176440417031931527575124921555031113213076132907865219393038913294163155856514984411835404176833082119841374222481329110305563855090257540803291241701903248715631131847457931411385404132917011449514492221107121732150576321453134514961062956508791113540106712061032856957495394256512518281048111988203077911314634631558407084135881512271003119453509017710766411710513581072475895711250011903461674880442146412087024184532935168897907190130773294113210385399090505124581651022212481056155119417791663775125145134477249713746530074169228518756416101803291241701411043110113297517356115398791514580490351001464153251351477135663179321633261722854781464176122875570713901354683535090177107667875123416660901714148051551485244265184038213013941945839211041134252600719201201325327575124921555031111415451032730130498913294163155856477601110329211984137422274180847108471032904753990413580329124170190324871563169729115013616960857413291701144159143351132363166632145313411652242241106712061032856957495394251928211087164964711402525116156871211252211701413588151116117040815141171051358107247252354471180781222526177329411321038539909050513471651162158751251451349601571472175232363166521112851875641610154043190504506972641616751113297517356115398791516941747981063190126174111351477135663179321633261721161113245047228755707139013546835350901771076681124396461100110831211642817115131289329661021161113713114540231578221884038213013941786762001080371306131920120132532811167612109082312038241348871415451032730130498263463903104776011103291019564064170874180847108471032904753990413530440509202131697291150136169608572514027615914335113236316615190179751165224224114620219282110871649647114025251161568712112522117014690224401101161170408151611262252354471180781222526121873093471651162158251905329601571472175232363166521117311403054043190504506972641616751731996694174798106319012617411130353470711161113245047116111168171041318112439646110011083121164281711513181124513014114011611137131344161417670154023157822181401106461005513054735864080131613281255819097684090896517867620010803713061311161130411041354010436901701012537557107190214191936465371367003061414241459011095356161021750701811167612109082312038241348872306462634639031093090461374246334517081019564064170810195640641709304405092021319207133013591137352172514027610295171612995173110225313215190179752171711711111082311311462025047390110168222901884104121737312621613712222975221749746902244011045272290110804519225104526112621161126317013121873091954073532050907412531312519053278387331211317311403013037212840314239021212414613173199671045390197935511429094939690116501032901037413035347071967744275090512222845711611116817104131811606913102194102841968112451301411401980256463267140344161417670111611290105290128446513114011064610055130547358640801316132812558190976840908965176112451371087653112188113184575270641116113041104135401043690170101253755710719021419193646537136700306141424145901109535616102175070181814251857103561801312306464115403919340652693090461374246334517086919060311077561872366110108731106116751311019564064170910027410728661592071330135911373521761178172431610619087451275350756511381029517161299517311022531325719087119110171418540942012171711711111082311311419037126514854051421161113850473901101682229018841041217373126216137122229752217497540573139046650221867821383213145272290110804519225104521166951959015011611263170131142451711080311811954073532050907412531314115183001283726934217922174161013090411377838733121131122262204921386830422113037212840314239021212414613111977430562626711779902697119030085340299200741322569075151132355311317104539019793551142909493969011650103290103741965571013109290145141981340747494906541110776801389677442750905122228457119810722999011567747672811320255925281160691310219410284196383796456319835131284207411905619802564632671401416397514756114010413741696116112901052901284465131437902175696695288814906131244547611245137108765311218811318457527064113103722510813173241903207510838926151116417614081814251857103561801311355418190143570406598411540391934065261947151406837691906031107756187236611010873110611675131143121170144132246561981409017510431262111002741072866152118418121157896181217012895141637418414229057611781724316106190874512753507565113842054013014697403120131167571908711911017141854094201116111661201244714190371265148540514211611138144020261509711110484513154057313904665022186782138321313428829690166531104132131116695195901501301231262901802170485164541110170121119812621447114611131142185315141116353142451711080311813421418501017177729021612910714314076241138411518300128372693421792217416101309041137200116429670621880735681047588412226220492138683042212013710017510037137862833226611211977430562626711779902697119030085340299200741322569075151132355311312511036193292625779709214611132902627513114096557101310929014514198134074749490654111077680138116922834182311152608013811981072299901156774767281132025592528376567011804126211131383796456319835131284207411905625165192232141639751475611401041374169614670276312626278053651131061273374601701314153111314379021756966952888149061312445431111631121131131037225108131732419032075108389261511164176140200404967761238327701909071382730970436921311355418190143570406598191819032554044317211513307415641115711158012150571613153651559050131788131194715140683714132050136113236317416696921431211701441322465619814090175104312621192185904821101621044164901302407702118418121157896181217012895141637418414229057214187568813612510719042054013014697403120131167791875675779569511611166120124473087663745643279074056144020261509711110484513157132972511071547342882969016653110413213157329725132461614670120243141108130123126290180217048516454111017012111981262144711461113114218531514111635319121220621067120183342141850101717772902161291071431407624113834117299620011642967062188073568104758844423780966103120137100175100371378628332266112106325701113585291376357931116538766251103619329262577970921461113290262751311401373510163293575190324876003176611692283418231115260801381417933775547706241150837656701180412621113197178906031101877851526251651922328463797169111113617561901509614670276312626278053651131061273374601701314153111319217552275661751219095427283352144776311116311211311417120213629619205113290384503371391216659120040496776123832770190907138273097043692131118355776200132904541130140191819032554044317211513307415641115711158012150571613153651559050131788131131033215475751661817071413205013611323631741669692890899092411172508070651451126192185904821101621044164901302407706803796479325051214187568813612510719012183796134131777918756757795695523196665508110553545111314014621230876637456432790740561096207451768930690156831196513764869613257132972511071547251154832074125405732972513246161467012024314110842037840111204731701910053112280902932124961813119121220621067120183121187565698714253513193012010719634117299630347011012196870202131442378096610315208777660646382177013110632570111358529137635793111653876611930583780920741410676341907077613735101632935751903248760031766967744275090512169040638790177107607519151141793377554770624115015040791012229056295739717890603110187785152614101502872971501016296121413843111513222254762024111037384637971691111136175619015096119810222313956559655217135197561414116049437921755227566175121909542728335214477657621537710830816131116308159562471417120213629619205113290384503371391216659178209904167846772079018472671441183557762001329045411301406737805113290432602297926916725316813790775152524213103321547575166181707420961073311029073677973250130890899092411172508070651451126111661115905111617170368037964793250511685158232552247909209046641121837961341317774849729993863050232706359777911002741835152319666550811055354511131401462121812111710381429016715021213110962074517689306901568311965137648696132124291611857257111326873280230213832251154832074125401621261133159017749141420378401112047317019100531122809029321249618131596315105195136179867423532152342471211875656987142535131930120107196695784715111731681994730347011012196870202131471113361962401112905405208777660646382177013165611298095424101139134119305837809207414106763419070776861147824099764713159028166967744275090512169040638790177107607519151108696457021147615115040791012229056295735471902379511214141287142731141015028729715010162961214138431115132222547620241110373103171529711138119810222313956559655217135197561414116049437705113199418126450438121576215377108308161311163081595624716310847103814278147782099041678467720790184726714424171518590178742175051256366737805113290432602297926916725316813790775152524262681779611311782113973110141930324209610733110290736779732501307943748212074831129961038539909041289329661027463129310113611661115905111617170361645103290411708411685158232552247909209046641236111601202662015756632411367136748497299938630502327063597779110027418351157511901111013118121117103814290167150212131116612513920631766321429092612090920706318413130416590170841124291611857257111326873280230213832213523236315646743229690152903424716212611331590177491413567732126413291701144596315105195136179867423532152342472062485116923331695784715111731681994757613159051141112032516377554770624115047111336196240111290540106270770987583065903661135140966561129809542410113913416211218320508290160757701472103853951307791210778611478240997647131590281664751759388961604745451277103290160108696457021147615111664181205110352411421605471902379511214141287142731136130905037743729310173074117103171529711138722125440132665152905321544770511319941812645043812172998535847533154477816190501631084710381427814735745329922514969307417071932178651307791221708241715185901787421750512563610191114223311039019373062681779611311782113973110141930322555105111170645020879437482120748311299610385399090414064537115612037282651201663168307791150367463129310113612164537210615111932140785632616451032904117084154877841135867793189152902924831402361116012026620157566324113671361166247920120453232990293103126901301575119011110131166914537236340615311119060541754111661251392063176632142909261209092070631841313041659017084111201262979029610324615226611234115540418655256132213523236315646743229690152903424710164170211616118037571011921303567732126413291701144103171529711226222773901435459620624851169233311315311684628349015671715732119013701111878620014592657613159051141112032516377554770624115066092782746226811646214010627077098758306590366113514096576167905110452479667911621121832050829016075770147210385395130779121077366355721442639207124751759388961604745451277103290160201777132905092594621401166418120511035241142160227364914411012710411574813170113613090503774372931017307411713736656413872212544013266515290532154471028619076491510134131729985358475331544778161905019490451411414651383574532992251496930741707193217865130779122170840190790110583447411038539202262321311019111422331103901937303064435176242115472255510511117064502083394617575233321405228406453711561203728265120166316830779115036106212056489706180901381216453721061511193214078563225935141975490221138548778411358677931891529029248314037517514213111074881381166247920120453232990293103126901302591148970658045213816691453723634061531111906054175412257851223706277185321311120126297902961032461522661123411554041865525613210584911112182364136010164170211616118037571011921302255241540134321110137540103171529711226222773901435459610703732127031416660906131311315311684628349015671715732119013701111878620014592665611266609053277908166092782746226811646214024151051496354319138576167905110452479667912591101382078625111181366355721442639207129522793572192017771329050925946214026196274441103241521252273649144110127104115748131701189154571661941703570137366564138137818464428157148124218086822947556205102861907649151013413130176146789611445404714413469012514769467521949045141141465138220905669990697401907901105834474110385392022623213110512539047199355971329065701713064435176242115472174147776146789646572979117790402339461757523332140522837014377177109095830701739901297011972710621205648970618090138241772561306721110917147694625719126225935141975490221138577491115123906389098215202375175142131110748813820132052779627444110324124861324624922725911489706580452138104975777506014121235116290411962257851223706277185321313402494571031160612076570125105849111121823641360197936175902531556214147310009074153135597225524154013432111013754038490501617072812181070373212703141666090613131220909669990737656112666090532779081106290470611414513236315114029014511535480511030184470770113770724151051496354319138227113776107190125355972591101382078625111181798810457285136031202207657012449522793572191031818421412031971242903977896213518638357035597261962744411032415212526116651662659096861289549447189154571661941703570213262582446501710511378184644281571481242180868229475562053309250107286592301761467896114454047144134690125147694675247935581753511111361756190150170220905669990697339319611331511025510512539047199355971329065701712061450905159238887024181741477761467896465729791177904021031713270690111590711049711307791294996157821391117093701437717710909583070173990129701197272673649198100666090532471112417725613067211109171476946257191262691965622241415271365774911151239063890982152022363196512979675201320527796274441103241248613246249227172126671599175562791511049757775060141212351162904119669123611064190511442363134024945710311606120765701255365107411167061379822541881203119793617590253155621414731000907415313559724171521618113973037586148212439142755638490501617072812182168771610325195176902469047314022090966999073713717610647069051106290470611414513236315114029014511535480511030184470770113770726125332362472271137761071901253559722649111519369692413492130798810457285136031202207657012445364186413132155777110121121044313110318184214120319712429039778962135186383570355979164115616790239150562611665166265909686128954944768415179053513521557213262582446501710516264111065232925914169202131330925010728659210203201677951262508142171147935581753511111361756190150170318667731062934547291142616847811015012761471111111550113566256339319611331511025525437050488140121266904890142962061450905159238887024183717734140845136442905611542210317132706901115907110497113077912949961578213911170920165090859608813821161397825510326163211407690150913419314121490156506901563651469540120913540150344136141281903569014277512167751845905402059054014490540603908411326039021290510511421711267364919810066609053247111314320501106248738621391166537506919656222414152713633990905826657962123141616757236319651297967530042337193714012126690489014296172126671599175562791513497731875687161796903566102120870164561691236110641905114423631146973100665735544437505365107411167061379822541881203113394211750843968601911018353549957710181099131288110668690142962417152161811397303758614821243914275561178921175021531471015314166609090216877161032519517690246904731406111081171022059030310051209013717610647069051224411906651288814906134545611539879164466512612533236247192041397673512702195401424166168843969066355805196071902264911151936969241349213022490296657463412144776536418641313215577711012112104431313193205011066511875610721066515287971463882001779798791519164115616790239150563214119066513009035121666596804115108736142907365054073136377437103290965399090357766516007168415179053513521557129321186901022519051375579307871247901138781756626411106523292591416920213180112904173052893296610226902518110203201677951262508142171134977381996921040909682051213913186677310629345472911426168478110150127614711111115501135662564189614479707902689096104288814906134545611539879164466512543705048814012126690489014296933004122167905241223717734140845136442905611542281773908559724695214964495202771711597412801446610212016630779151201650908596088138211613978255103261632114076901509134193141214901565069015636514695401209135401503441361412819035690142775121677518459054020590540144905406039084113260390212905105114217111043272482204222203211292031514431112896070731432050110624873862139116653750220835090471104150116235437441429075733990905826657962123141616757421104133961371936290352411105875290661019437524135630042337193714012126690489014296611445148100113910259475403497731875687161796903566102120870164561244136469589902945431704504132193904452071243581091666491020967501469731006657355444375017811190249742172501174142908001926853096762012106514913394211750843968601911018353549957710181099131288110668690142961695169013766581102096750117892117502153147101531416660909061144341845401503441241969061110811710220590303100512090113350813811519361761936290352411106610196717115446862244119066512888149061345456115398791644665129640387157237139411103901834396692070279119204139767351270219540142416616884396906635580519607190976190909177707472521339613767411782177116661011008810969066581909016093224902966574634121447762495087041110666599086677015054796106573790669180319320501106651187561072106651528797146388200177979879151306657502031665198791120165665132141190665130090351216665968041151087361429073650540731363774371032909653990903577665160071344385110665797798597820751129321186901022519051375579307871247901138781756941466651355906643673166101969301145338820747987491714266154736625315351321081212260908117918011290417305278178713411206842925464414157149103290156517912690251815568164146177112218475857349773819969210409096820512139145152259152418961447970790268909610428881490613454561153987916446651280711901746540421561116728104108933004122167905241223543961542185821106229597621113315901618177390855972469521496449520277171159741280144661021201663077915133190441169520106325520311378236752782661387555610329028715110432724822042222032112920315144311128960707530811151312221245757856672086806655220835090471104150116235437441429075737147170754097621364813159087421104133961371936290352411105875290661019437524135610296090529214217111306114451481001139102594754027031313257556115398871244136469589902945431704504132193904452071243581091666491020967509210267181463901377971781119024974217250117414290800192685309676201210651497815072417667854040115041668005069040114150070232623729690152903424716951690137665811020967508650112010625718321310401839082053540115041143611443418454015034412419690650300419879140665718335148271932229013956171414791186113350813811519361761936290352411106610196717115446862205677346671407167856418952559030779148372964038715723713941110390183439669207027912014549056115398871107786576612197619090917770747252133961376741178217711666101100881096906658190901609310577375147465735307797249508704111066659908667701505479610657379066918039981041665711930866442448753754066102902167973066575020316651987911201656651881806657107167576934438511066579779859782075112861866651664351151012540717841572173967509414666513559066436731661019693011453388207479874917142661547366253153513210812122609081179130218066571019028755287901014966537502781787134112068429254644141571491032901565179126314111665773116590140415713911665375055681641461771122184758578121296651164510325805114290886651600714515225915293109141665710329047539904135280711901746540421561116728104108258326144665175832103211057051142136248241906131671032904190860665160071354396154218582110622959762111331590161336193519854052054080741173319044116952010632552031137823675278266138755561032902871516501914071222418127290208111142451711544680530811151312221245757856672086806655596431416621064573714717075409762136481315908715669551013118756122786610296090529214217111302806611075051423907505110381429041150665154071270313132575561153988713509010914714077510047151797704166609014892102671814639013779737178307791668628279090502204130463155496793135913413077912090750463463155840708781507241766785404011504166800506904011415007023262372969015290342471247395095133131321736147573552142706747806660905307915135658570100214217118650112010625718321310401839082053540115041143941466651309108663114165030041987914066571833514827193222901395617141479118630218066511429629113790199662205677346671407167856418952559030779148372786736647755477062411502014549056115398871107786576612157419084119426290812989879117111057737514746573530779738116611724013711686146441415723814211032048917032032711670696132902611611125973752119095901701034746711181086690263998104166571193086644244875375406610290216797223119104881806657107167576910275669045791128618666516643511510125407178415721739675011661067120457973021806657101902875528790101496653750237934579726314111665773116590140415713911665375010453644579781212966511645103258051142908866516007117612101761474904176311032931091416657103290475399041351624514775021714131702583261446651758321032110570511421362482419061316710329041908606651600713271305684579733619351985405205408074117105557211045797650191407122241812729020811114245171154468079445675964314166210645769196453817667911566955101311875612278666990126901937811402806611075051423907505110381429041150665154071120501901441595403509010914714077510047151797704166609014882211966703801731408540791042217101218768611845236861205175781540371783077916686282790905022041304631554967931359134130779120907504634631558407085367507611154012473950951331313217361475735521427067478066609053079151356585701002142171110281875611154094146665130910866311411171761120714732013224678114030218066511429629113790199663917708110581032902173065114290145278673664775547706241150507102735112969013069090454790483574190841194262908129898791171117110989285213121590120351438116611724013711686146441415723814211032048917032032711670696132902611611125973752119095901701034746711181086690265071027352419696739081280307193909057289329661025341611161222231191049561121215369090416684146112111514165342140102756690457911286590708221411061186631142170132051224630502327064115190307791102211116610671204579768418777958723332115123793457977784340120213110453644579713969697779190107237135167115162903262611765090961916872872921478281184161211514615617612101761474904176311032106217790105741658321016111013096451877782162451477502171413170218810457264128148202136327130568457975627157442750905110555721104579786135112190403540794456795611212153690904166845113529713542269196453817667919588151895507816163050232706419655907838371437353077911519010213769901269019378114094770211163050352096120501901441595408991111018604516480702111145822119667038017314085407910422171012187686118452368612051757815405367142142153675076111540680108477549696470321551102818756111540198351084772366110691233321151117176112071473201322467811407784340120213139177081105810329021730651142901451551901701111315071027351129690130690904547904831062206157151127914114418261711098928521312159012035148613571219040354050710273524196967390812803071939090571327474046905624153416111612216231176157524205873917604733302461441501010341342540956112121536909041668414611211151416534214010215646526261311634254012865907082214110611866311421701320512246305023270641151903077911022111611478477091406416841877795872333211511338119862159214721877843401202131186901588541396969777919010723713516711516290326261176509096191687287292147828118416121151461564751754541164621401062177901057416583210161110130964518777821765011101213411201652290531602188104572641281482021361505964361130154453905732117115627157442750905163726258244650171057861351121904035403448943175021010728666695611212153690904166845113529713542268418168590102595881518955078161630502327064196559078383714373530779115190102137118719071399213794770211163050352096636313212429075381899111101860451648070211114557624791590457915153671421421162247414457976801084775496964703215515863124945797198351084772366110691233321151330247419644189408414727977784340120213121936511242903976715519017011113110363151141169423101142321911803710622061571511279141144182619736457506090142817069012459018332861357121904035402704570280677513527024181327474046905624179631911118761131162311761575242058739176047333024614415010103413425406162341105901708404224711041021564652626131163425406643027782161147847709140641128594117041594116722315113381198621592147218366351253413677041186901588542821687721415932587202414751754541164621401166965120125967507321459610385395746813947342176501110121341120165229053160399810178102228848045364115059643611301544539057321171165030041555776372625824465017105715933112083916231791573448943175021010728666618111159070100090474145734442684181685901025153647277539121806139714011871907139921371889545702318773701615553970241863631321242907538197641171137331201903527411757624791590457915196452103290961741171622474144579765611229310111124146638741175863124945797124131415701383233024741964418940841472797704531018604774917031382193651124290397671282813270651132907066710813113410363151141169423101142321911803759651051969610321201301973645750609014281706901245901833213761121306526227045702806775135270241810516012081635392029013079631911118761131956112130652626162341105901708404224711045965105111521437223173205049621901306643027782724141130652621285941170415941167223151809102141507323663512534136770412361116612187211091713773043365073770236901157147409066170141282168772141593258720241586111591352104314111669651201259675073214596103853957468139473421464167042202130399810178102228848045364110621779056311120265030041555773911694128051110581593311208391623179157236431411081161191544315518111159070100090474145734442411453902277720213615364727753912180613971401074512022278318895457023187737016155539702418330202131477581470241897641171137331201903527411763856418092629614711955751102013113014114096452103290961741175673776610711411132790730782656112293101111241466387411724545147119103017012413141570138326919890236867791147119108096704531018604774917031381159651282655181282813270651132907066710813113411788590170840422470715965105196961032120130891147778571611432253138137611213065262102713212513196855253105160120816353920290130546379667813195611213065262340810457306811361922532028790390715659651051115214372231732050496219013012841355169301774188712272724141130652621854596299438746561809102141507321707810329097260131236111661218721109171377304336507377023690115714740906617014116617256872757583138586111591352104314159651011136171329725113114641670422021307293192117573841925911062177905631112023016012021132363113912166591391169412805111058388128315620712476172735258318013766110849623643141108116119154431553408104572551281202136411453902277720213613761904634129614511431452711074512022278322790105819355832936855251051666490286481761374256136195012510510433020213147758147024182271107502545607583294311105657733288319963856418092629614711955751102013113014114032845738315755393742651169320280418705406203067975673776610711411132790730782258128666131142750769041079132245451471191030170286120566871127358395236323207580766330679769198902368677911471191080968149071511156655051743115965128265518814120566871127370951804126221117885901708404224707128690715111666180251743891147778571611432253138784096657659170669107310271321251319685525310207733513522744674757290483411352518090810113290501481311501671342179151546379667813110210170614481123857422395062170167340810457306811361922532028790390715681045661241473534187078132028011521671284135516930177418871227210207739513214190190843969065917066910731854596299438746561102066124176653714079010041155598603591701170781032909726013110204587061417085405181864157062170173166172568727575831381965105186054875166104059651011136171329725113178150724439066787293192117573841925915963149715072843969081773759879190425780517679151301601202113236311391216659125829666576591706691073388128315620712476172735258318013766110849615018072321904766106813901503741659170669107334743225113640110164829640110168793198791171134081045725512812021362581286729066129051466322312036610290346218343474235117215094143441372893296610210207738184396901575681543620306791511376190463412961451143145271206784328576586155709562279010581935583293685525105166649028648176137425613619501251051041331391166512121391096615176622711075025456075832943111056577332883199270313132575202813086748211414145915731205123215443284573831575539374265116932028041870540620306797137619090810790421105439784184781210419104131987911711258128666131142750769041079132150596437290381136128190140579076641810461111496414701312861205668711273583952363232075807663306797916474624115072905119618112104191041516217010081490715111566550517432764381266517538750334101133990181725613081412056687112737095180412622157419022316124664142152290750411802911062371526771101122707911507265902394712105647157490417176710636277136277137563647119756314769759332522763776110897109896110541325227637344105434990266059713628690715111666180251743150137729159066110539193511181379022615093927840966576591706691073258128628276906613129096965510701839549255511044110951632374627416671904588111355805155416249081454146879791590661115418807331791736102077335135227446747572904834113525180908101132905014813115016713421791516601027192906377919057750341210113914010210170614481123857422395062170167150320527217160366101832190291662925611025625156570428304233512173761531478268508901202144877501990172141963862615701038539256668104566124147353418707813202801152167159104396358010696936750516675141890102077395132141901908439690659170669107333116995932577476442815714866920120823760949031234102066124176653714079010041155598603591701711212321903177291590821474111966105102045870614170854051818641570621701731023407276172129661932122701970241851102285187283187307797196510518605487516610402569035121257356611370962173470198047028721868781371711919049191904913164321090139177815072443906678246431507249152614010450572256103853990903580665160071596314971507284396908177375987919042578051767915137166471038539907125829666576591706691073327717307111353219012039132190719220690963690142901036669081314169026211854067126540723066516007115018072321904766106813901503741659170669107334743225113640110164829640110168793198791171132577307750905129310166142258128672906612905146632231203661029034621834347423511721509414344137314320501106651321416674027311036090141293110360901416611036090215519012507307210207738184396901575681543620306791516503004132190297250341213913420678432857658615570956229674775076901353904565401373356892208133139116651212139109661517661166135390702107108307664181708270313132575202813086748211414145915731205123215449204641813975805713761909081079042110543978418478121041910413198791171110584567323071556610851747416114110401839115059643729038113612819014057907664181046111149641470131245457313722115351107108307664181702227136719291647462411507290511961811210419104151621701001854514752166916307668996276438126651753875033410113399018172561305964381266514018560731130893686901471268214574190223161246641421522907504118029110623715267711011227079115072659023947121056471574904171767106362771362771375636471197563147697593325227637761108971098961105413252276373441054349902660597136133106432327110478165005751841176784111517244313132710366971301501377291590661105391935111813790226150939232845147750763009632112586312029273176901777514117411097520617790791117161103290130556115315098791668025812862827690661312909696551070183954925551104411095163237462741667190458811135580515541624908145414687979159066111541880733179173670419032710364414157164660102719290637791905775034121011391403711082829910329018030779152031150320527217160366101832190291662925611025625156570428304233512173761531478268508901202144877501990172141963862615701038539256667815072443906672770872110932170152131621553717010090677103141212676961151905731326743141261329064110311501091049707971624907911311987911711159104396358010696936750516675141890781507241790667277017790791121261133810915015210327083311699593257747644281571486692012082376094903123415018072858107505774104612105689305162165180802693147215290218711212321903177291590821474111966105656190443906672770262686612490423251110217419107478211037124458516217010026475345304171092418769841875714187212418710684187718418750741877441874789045851251110372111081110372113051103721115211010010234072761721296619321227019702418511022851872831873077972581286665166751747135710120831396902123878230768162791671297791511232418724701142411101157870830768987912239225690351212573566113709621734701980470287218687813717119190491919049131643210901391781773157753554751246120777791102873815058679166150104873932105122327855103124643150724915261401045057225610385399090358066516007115032052721474319746339621154914115010410385399041655132371664710385399071961261116811104628774162332771730711135321901203913219071922069096369014290103666908131416902621185406712654072306651600717153893205073612190530358076411710761038539903574132577307750905129310166142557372437447156372013710012661563779651321796314165901714314320501106651321416674027311036090141293110360901416611036090215519012507307222097121184857146115133687101327065130779113765030041321902972503412139134138227115480958291282811442296747750769013539045654013733568922082591287715610385399029115074193130116613539070210710830766418170896111516690468867199903661516132770671144920464181397580573152343292851105813796615835476777461507105845673230715566108517474161141104018391103615111917603501009110115124545731372211535110710830766418170222713671923975011928881490613454750908115010331151741623185451475216691630766899634116972212053216972932596438126651401856073113089368690147126821430423113617786111906467021331064323271104781650057518411767841115172443131327103669713070910681450911112961387083284514775076300963211258631202927317690177751411741109752061779079111716110329013055611531509879166807317098820709874813170419032710364414157164347217547162780441665584181075113037110828299103290180307791520311478122211071695377419675781507244390667277087211093217015213162155371701009067710314121267696115190573132674314126132906411031150109104970797162490791131198791171113383745415287130149222666609014247563627815072417906672770177907911212611338109150152103270820914784951117418659551065890809017505181107271411411381501807285810750577410461210568930516216518080269314721529021823377485515098096341373711005121592437881846561904439066727702626866124904232511102174191074782110371244585162170100264753453041710924187698418757141872124187106841877184187507418774418747890458512511103721110811103721130511037211152110100303222777495359029321601999041215114796324219015234247258128666516675174713571012083139690212387823076816279167129779151123241872470114241110115787083076898791223922334774832369069013425326071371618867192269317911378177315775355475124612077779110287381505867916615010487393210512232785510312582122084037665123113726656150320527214743197463396211549141150104103853990416551327971823914090147414120128932966102181125801810766891029612611168111046287741623498137931114142900627153893205073612190530358076411710761038539903574134139211057773581397661215573724374471563720137100126615637796513217963141659017141033271102101500111462911010028806222097121184857146115133687101327065130779113767116217017050045611138227115480958291282811441337222401777470176951120891134259128771561038539902911507419313025538270617081565120211327137961115166904688671999036615161327706711443572122411637490816280154776315234329285110581379661583547677746150710416921117982770247838211587673077911371036151119176035010091101151751125141843257248737397501192888149061345475090811501033115174162310383711250067984165110574791341169722120532169729322242626071151604541164621403042311361778611190646702655420465729791177417092617091068145091111296138708827741091532161712051397321729716415273170988207098748131731750623632911085568234721754716278044166558418107511301013653576033510535714781222110716953774196755572693178322729315110724965044134611040814013383745415287130149222666609014247563622976657274170719321786512277082091478495111741865955106589080901750518110727141141138103831908042666820615211634351674871209212551233774855150980963413737110051215924378818467115476532174117019061230322277749535902932160199904121511479632421901523424710383145322133245512667236766514704123347748323690690134253260713716188671922693179113775115431154540132138311429614411022241600712582122084037665123113726656281903929585407971823914090147414120155728710946413394101901037411718112580181076689102221511429014565324625032502917411749813793111414290062731128163781812314514171083413921105777358139766121307321427219396710742614010332711021015001114629110100288062961315509065336142671162170170500456112331476439247911113372224017774701769511208911342582188101081098787126817727063012437411725538270617081565120211327137315222773021131885038290730741173572122411637490816280154776111620711033277105537255314166609014810416921117982770247838211587673077911379675433236247751125141843257248737103207411710513119032204901151524113010383711250067984165110574791813827607116597645631741491104622242626071151604541164621408137172329601110477540524659010847103853973074165542046572979117741709261337636927111832947138358757514070882774109153216171205139732172971641523013472659610921214290103741623731750623632911085568252720679305120612071529310110374117101365357603351053571321381266577086210321104067913298355726931783227293151107249650441346110408140158682774787972976657274170719321786512277081242717795198773121371253202797103831908042666820615211634351674871209212551188801471576711547653217411701906121487506277717763577023870279710383145322133245512667236766514704154314075019096123371413266248441221596378013766110140317977511543115454013213831142961441102224160071979565018756804359612819039295854025912876677519526664614713014114697403903255728710946413394101901037411744466414181361301464039622151142901456532462503250291741172622471069247708244375317977311281637818123145141710817813111681770247414927702797307321427219396710742614083660161131305136869908172532027979613155090653361421384239620229943131676672331476439247911118880151896695258218810108109878712681772706301243741177986226116218414167212628341130315222773021131885038290730741171091116207110332771055372553141666090148133454412450967543323624719693322106731501032074117105131190322049011515241130153136267141016142901551373515181382760711659764563174149110462117012578325523299092090466478137172329601110477540524659010847103853973074154877841646067291843376369271118329471383587575140708270165090965046010324121777301347265961092121429010374162319676671474675090515272067930512061207152931011037411728912541222571321381266577086210321104067913298310621774115111622265707158682774787975663240614612427177951987731213712532027977885168261202131188801471572624137115119937304926148750627771776357702387027975965176275211081543140750190961233714132662484412215963780137661101403179766617052465789511319795650187568043596123220229652217406492259128766775195266646147130141146974039032312621612915144466414181361301464039617033090141938511412727113126224710692477082443753179739290457580441600586178131116817702474149277027979229058702586131836601611313051368699081725320279742190169692124093114071150960138423962022994313167667312624765111049616545618880151896695232202474061317986226116218414167212628341130256510511084710385392021312893296610210263249120131109128742082621311334544124501791012917413565113119693322106731506565105110847127967120213115313626714101614290155137351512509020412203721019013111701257832552329909209046647102322433431315487784164606729184286904705174811312701650909650460103241217771026231578216622119676671474675090511271823157821913328912541222571502997065149131131106217741151116222657076978222751061908735122456632406146569136905796132091387885168261202131150269524372624137115119937304926186565813041935965176275211081609491351711466661705246578951131112445785130452218123220229652217406492112410871512358161436138304141513126216129151433120702117160131170330901419385114127271131226491411381167513139290457580441600586112013852406841442218621892290587025861311674161015782166116221421901696921240931140711509601283042213126247651110496165456232204921382322024740613126811620225651051108471038539202131174269711903008526059625629920074132256907515113235531131102632491201312782534152101031138128742082621312273771516722538112905116952179101291741356511315681118926151116418265651051108471279671202131569136904063712509020412203721019013122612755251102322433431311997811022869047051748113196515358102623157821662211424549098012718231578219133270187891502997065149131131312627707706978222751061908735122470060456913690579613209138350521161021311956211511502695243713921212051511311865658130419310517038050151341241183100351116411566094913517114689254017511244578513045221811741159611612111241087151235816143613830414151892135254043312070211716013119676671474675090512264914113811675131289125412225711201385240684144221862182595315543716741610157821661162215324115748131701128304221231361060183126138232204921385307012963513126811620210667326717426971190300852605962562992007413225690751511323553113124677065643213827825341521010311385325104173213122737715167225381129051169522327649156811189261511164182232202324080176569136904063717991790741226127552512361891174719978110245091144070896515358885405207471424549098095561039401290511207472701878922220569407202312627707708929019414140110700604201587119017035052116102131195621151922907156431287139212120515113163856106737105170380501513412411831003511164115610837712103156892540175140134664119032174115961161216608952489213525401127926151967667147467509051532510416175146289125412225780674663566609025953155437110045961315324115748131701170103692313610601831261381196965113853070129635131102861120715146610667326723220418670124677065643213837032882475325104173213151190811212327649198204372322023240801762279020622581511167991790741196766714746750905123618911747289125412225745091144070842164146112288540520747956326465275131701955610394012905112074710129690612222056940720215266588892901941414011023220211032214512049011515247201587119017015266588922907156431287101849950147138638561067372067843150471311083771210315610263621211032116511401346641190322272165247660895241029603252511127926153809055664118557090138532510416175146778156512021318067466356660902279012096119489113725691100459613143516190115962001701036919476135254011969651138196766714746750905110286112071514662891254122257232204186701421751122370328824795632156527513170151190811211012969061982043715266588227902062258151116232202110322145120490115152471967667147467509051102816280525092891254122257109019025121624216414611222667517517089563264652751317011526658810129690615964310574151415266588118164105232202110322145120490115152471424601526658810205677317068261101849950147138106890470704113771617713820678431504713112873032706511026362121103211651874108472272165247196766714746750905123281310296032525128912541222573809055664118557090138421550112277815651202131956321296527513170122790120961194891137256910129690614351619011596200152665881947613525402322021103221451204901151524719676671474675090511516241901077289125412225714245490421751122855115686289956321565275131701346419679092010129690611526658815266588471241496372322021103221451204901151524719437103290210791102816280525093999045192138109019025121622869047051184816215023245141266751751708186565029650236156710131152665881020567731451785123759643105741514155188462118164105196766714746750905180414261424602891254122257102056773170682614214514611221068904707041137716177138956324565275131701128730327065110129690618741084715266588196766714746750905123281323220211032214512049011515247289125412225723290100285842155011221311464913278902629073041136295632129652751317019349055645118557090138101296906122290230611311526658820681521132022322021103221451204901151524717447199151624190107712949087321424549089229554085511568628910812491512501553073464196790920196766714746750905115266588289125412225747124149637421671027221943710329021079195632382751317013999045192138101296906128690470511848162150232451411526658818656502965023615671013123220211032214512049011515247102056773145178512379919048337919415518846268126370196766714746750905180414262441032909773736714210693728912541222571287779074151442145146112239990451921389563245652751317018141201020576215023245147101296906128690470511429016116125015266588596431412121312322021103221451204901151524710205677371569665677314268132329010028581967667147467509051131146491327890262907304113622891254122257934905564511855709013823220252762222902306113113224578720681521132021081905061521101744719910228214312949087321282091206289229554031262151155511675807710812491512501553072058721101434219676671474675090511967784115538628912541222573741389016677042167102722112804217418716231956323827513170163631511407546101296906112461083523315266588629907232202110322145120490115152471706065169299190483379194146784159540681263705767841165106141244103290977373671421069371046363231590107471287779074151410317147930399904519213841178874781412010205762150232451476154775107247286904705114290161161250239201120965964314121213190390556801376611047411110205677371569665677314268133941000957196766714746750905122790493120821487289125412225759681222612101861312322025276228912511046213224578754668231741108190506152110159905581022821431812111156128209120624114879011012335312621511555116758077551102501104872058721101434277977220119619677841155386109452761837413890166770121115090966007111280421741871623124631412021026363151140754624822211977791216977417690754731669335611539879132124610835233102429382412450696299072565181917060651692222458395164478157216791146784159540181125187756883916231791515767841165106141948458379051804767579167104636323159010747150788490382570771031714793058519016231047178049653125251161711161317014117887472322026612750962829090228517020151615477510724710912566525611611239201120964174469131611080311161118276247465477812207151181137903905568013766110474111258128614176761193654097090323941000957301147789615740641412530907612109082312033590346412279049312082148710226870613833746345915159681222612101861312751787111012311139712361033828289125110462227829073011096174165831381411972146214054668231741133941417065132050904742501991911421711137211917121599055814912525614884906822151418121111566363151741911773123164215117111255311511111040870241841148790110123352209790670701140613014157511161105614415805215114420213714290830582551102501104871104907141492113140412112505907797722011961021525117796731977485810945276181705563904397417704341821186121064012111509096600711020570423205090823535247413612463141202102475311251331202191874017573666090460133158419248222119777912169774176907547316693356115398791326064711364115610385399064381374165843228932966102105160120211323631661024293824124506981490470415951260131256518193397421231165436540862167064357082224583951644781572167912704234114161102171153118112518775688391623179151289329661026219190569484583790518047675791672304731105073215078849038257077765418242185470412519054710217115315851901623104717804965312525116171116131701701742124161278318634911143108138232202661275096282909022851702015124677673642831161573156417021275153110912566525611611417283421236268633567417446913161108031116111827624746547781220715118113774448149132462818106646212173551131191141512581286141767611936540970903213475173696984875132316566686274301147789615740641412530907612109082312033590346412304775113257848171102171113110226870613833746345915110114611567201905465113274315284907601312751787111012311139712361033828270106021213130096225530172520963014152213821291090706131129801206151309616145113274315245490140129741131227829073011096174165831381411972146214047531791904764182012005763627713113394141706513205090474250199191142171113721191712230771389017147411765315907271404141511491252561488490682215143611469047157666090476471411066363151741911773123164215117111255311511111040870241823220265191110537200137061202531517902842985613117712080638475606151329645361402209790670701140613014157511161105614415805215114420213714290830582119644145782668451130647550413421401104907141492113140412112505907041906621966715413211810197014611131102152511779673197748589861464913266124280131130982227113817055639043974177043418211861210640194371032902102145351409077102057042320509082353524741361281584195360418126654047547686081384753112513312021918740175736660904601331584196363151261317261273606471136411561038539906438137416584321741973405230517871110123110516012021132363166206176467509051977436224635308149047041595126013156684987911213397421231165436540862167064357087484974258581811317015227042341141611021711531494146491321526090316265887121289329661026219190566801129677090453181113851321511271121230473110507321294903616473247200765418242185470412519054710217115311081249151250155307701742124161278318634911143108138586428106619079182110137658313024677673642831161573156417021275153117014645326611037509859519071411511011237584511429090941038539730914172834212362686335672063176632661103720301621092773610925866710950210321039174448149132462818106646212173551131191141511376411716611037103272117910741680702108025911347517369698487513231656668627458611166511661103765324625032503009624723313719089912304775113257848171102171113125551051318413130661103710381429037796995407611791101146115672019054651132743152849076013163862636476632104310385399090150311302701060212131300962255301725209630141522138212910907061311298012061513096161451132743152454901401297411311669645329632090453283790185226324753179190476418201200576362771319296267604717033077911372307713890171474117653159072714041415112828132706511329067108706131134361146904715766609047647141106374178711101238103290277130232202651911105372001370612025315179028429856131177120806384756061513296453614032681910904703715546537119644145782668451130647550413421402555105111170645020870419066219667154132118101970146111311019741872902848651140130986146491326612428013113098222711385863176610614211091073622257194371032902102145351409077216473454704118022257281584195360418126654047547686081381024239032103814290101890476363151261317261273117695457417213126211020038270651174197340523051787111012312562594962206176467509051977436224635301811251775107920222515668498791121133139110716611053674849742585818113170152306437021161615703748757031714941464913215260903162658871212261254651069032570511306120151224514768011296770904531811138513215112711212223146578142515351032901275855155167176708129490361647324720014912546573213090465090558621081249151250155307596510743141843476424116313121702418586428106619079182110137658313022531125977431551671821701464532661103750985951907141151101123758451142909094103853973091162176442750905133329395177101154522177120631766326611037203016210927736109258667109502103210391865412566631190321032909653990902373279074062137641171661103710327211791074168070210802591636438125632050551741662101022406402153476676165861116651166110376532462503250300962472331371908991147766157905196810115156149025551051318413130661103710381429037796995407611791596510413246635282906550211814966386263647663210431038539909015031130261907751647320504125474172710202775164192166964532963209045328379018522632108190529221083096225429172420170382437579296267604717033077911375961111113222478924173406583136128281327065113290671087061311341093741787111012381032902771301334544124503268191090470371554653716217614141211653901304862555105111170645020827590715616650410972013510514203814210910329010140651101974187290284865114013079820456204103290141879111014051270586317661061421109107362225797478411351151034062661032907516621647345470411802225742190121612165247537109137819022611510807821086511164141821024239032103814290101890476807811510340651728175116406316251176954574172131262110200382706516363151411755726151140941315640130700406642537256259496222790506138110262516774464255112821164191107181125177510792022251636315155120777220510365371331391107166110536205355190201412361109535611132901142115305306437021161615703748757031712063176610610866805157646537136700304641344226125465106903257051130612015122451472497077614769467483310103277222314657814251535103290127585515516717670810287080564011409070613111599011611885907411107859074120478590712785907069912939693429011156811014064014912546573213090465090558622891317115635136040136120013706120213159651074314184347642411631312170241840311167716011056143202131225311259774315516718210210467111635131136513480674178271269214090181162176442750905133329395177101154522177125990476516144710329020747651326145113419193061990516151161113176801174332151206511518654125666311903210329096539909023732790740622409050618845962270710251116111311501402019023320636438125632050551741662101022406402153476676161062177901132021317126929688314776615790519681011515614901337789512121401311045414147759651041324663528290655021181496232910663123044182203153267241131116170210590192261429046115131045121077261907751647320504125474172710202775164192390810904148871612022119614144654076250108190529221083096225429172420170382437571062177904591080311313111151961915181570412048011013515314901107506049959611111132224789241734065831361321471065908105167040311605312893296610222090663115152713040151215471441705718811311460166451110466463239951215611311096618641110721101311111310125528872750131133454412450585190282907147804964711402525116156871131252246569011143267651169101511621761414121165390130486232202665261116115153990299208901324232090704081512759071561665041097201351051420381421091032901014065118290711080371331161118276247465477812207151181131577982045620410329014187911101405127030114778969140641222903098512389082618877612109082312033590341119747841135115103406266103290751665965176219113593061202131421901216121652475371091378190226115108078210865111641418278851682612642151203761421001791126261768078115103406517281751164063162511205349649246510218611115191159633894414131636315141175572615114094131564013070040664253712865907082214773026832706411384634651165915122790506138110262516774464255112821164191107105812831562361783547696129905214921412121161376363151551207772205103653781490986671163641110140299401841001109711401911220369090540411021711406137205355190201412361109535611132901142115305339319296963139121210329074116892063176610610866805157646537136700304641344106217871110123181909287414372497077614769467483310103277406311876228241140562051028708056401140907061311159901161188590741110785907412047859071278590706991293969342901115681101406402479045187621559671090575289131711563513604013612001370612021311386175259251713037838710741769045411646214040311167716011056143202131401904704727211641961701124358470471021046711163513113651348067417827126921409018139071107463155836104369051847047341155526357403107259904765161447103290207476513261451134191930619905161511611131768011743321512065115113861751529096090447411471380222902531061167012465847047240905061884596227071025111611131150140201902332022790132432602297926916725323370544431475475173106217790113202131712692968833575252144150731913813290116417433177711641741570417671381759013959151133778951212140131104541414772555105147813620116612490425488130232910663123044182203153267241131116170210590192261429046115131045121077106217729316651669019121217473130831966853892221504927013139081090414887161202211961414465407625013861751677517714010621779045910803113131111519619151815704120480110135153149011075060499162745137904545077911321471065908105167040311605312301379071522539013956792138155450708220906631151527130401512154714417057188113114601664511104664632399512156113129640387116156286299437002494726766186411107211013111113101255288727501311301462311701312029619381144125107810671777085851902829071478049647114025251161568711312522465690111432676511691015154214117321902966106413904193171232202665261116115153990299208901324232090704081512063176610685903083205011414625922497516077105290113913050522511441829071108037133116111827624746547781220715118113157798108771713212190530702165308266113159010766301147789691406412229030985123890826188776121090823120335903411110274832341105714746315544629747905824183419522271475965176219113593061202131656112119810661244747996555913209085747788516826126421512037614210017911262617113990187561154096555115661101469111981136171112053496492465102186111151911596338944141315735107915416122612062128659070822147730268327064113846346511659151142637841616541067611113106879152253167155108791131105812831562361783547696129905214921412121161374757896368042147549215020559182146814909866711636411101402994018410011097114019112203690905404110217114061374214467422261206233931929696313912121032907411689567311257669515560010621787111012318190928741437249908651220130146974039012240631187622824114056205586111517661218467571411217321417402282479045187621559671090575216473454704115022813861752592517130378387107417690454116462140729529941843789083351132363166174019047047272116419617011243584704762611282348166121036901875641305101170661035165213039071107463155836104369051847047341155526357403107748112955867248166121036901875641305287170661035165213013861751529096090447411471380222902531061167012465847047976196915901845955672931019010365396227901324326022979269167253233705444314754751735735107915416122612062357525214415073191381329011641743317771164174157041767138175901395915174678411658366513951227318413261320465090184255510514781362011661249042548813037920316651688311513513170114247200496534514111490473155109211614690713575110621772931665166901912121747313083196685389222150492701312752031665110329017614023761661196112596901725103783723666422131140913861751677517714037080312010137114727111953051190387901379056104665115077134140110822921311627451379045450779110209087365635741741570814401196552807911314729015111088323013790715225390139567921381554507083803214737130146911208106650910617141479113729640387116156286299437002494726787190714766609041195903571121103221878711301462311701312029619381144125107810671777083881283192537701616690516732082903211203388166872021341164977911075421411732190296610641390419317166021514637103290107280318201598372364502063176610685903083205011414625922497516077105290113913050522511442067841325121477913011111814969681011515614907981087717132121905307021653082661131590107661028619011965214901412121301154125538213010807415110274832341105714746315544629747905824183419522271474211116526111222902533245461150516094704765611211981066124474799655591320908574765190526372224181614887017666412120174371139901875611540965551156611014691119811361717295299351932563205011323631801376611047437573510791541612261206271142637841616541067611113106879152253167155108791131596315192153516375114271475789636804214754921502055918214681423620179166310177907915311404214467422261206213441712295151220679170415673112576695155600181211174316634131661412197190249908651220130146974039012223212010906651225231721396586111517661218467571411217321417402282067874111920152616543056115398797216473454704115022859651043203373415251111407501004112950345711958193163729529941843789083351132363166172209080956115398797626112823481661210369018756413051011706610351652130232300904314366107170715222622290340149666793142535103669071778268921469014296748112955867248166121036901875641305287170661035165213036223698791662369761969159018459556729310190103653968099632090666901414547681164153480988203077911375735107915416122612062746781111875618767711063967717474678411658366513951227318413261320465090184102751177142611276032115111135612151416534214037920316651688311513513170114247200496534514111490473155109211614690713575126116166236108200275203166511032901761402376166119611259690172510378372366642213114095965105190810790518668418113170126537080312010137114727111953051190387901379056104665115077134140110822921317294635534943386612414903089015631666090532791511021192559666090532921020908736563574174157081440119655280791131472901511108831331064323271104719290817221841129573803214737130146911208106650910617141479113728066110750519954076166261102177787190714766609041195903571121103221878713143205011066518373873706654076171101238103290277130388128319253770161669051673208290321120338816687202134116497791107588523219026432190782660215146371032901072803182015983723645035037469066609090471429037103290182491472067841325121477913011111814969681011515614908177375736589087671526641430779710286190119652149014121213011541255382130108074151162176442750905128290661403197542138513215112711214211116526111222902533245461150516094704740190904728211487393216687493231018756540965590122555596660902141921376519052637222418161488701766641212017437109125115621241249611374535171729529935193256320501132363180137661104743722012083790629690209473460941315901601941703570289329661022329013908222414258871111811317015271286904705166775462138513215112711213411259086313364126588712159631519215351637511427127517711040120213181423620179166310177907915311401031784251346710361015213854525934141477134417122951512206791704112949047164732471989692141108138469651131181211174316634131661412197190129490471662326211952465371080311449714790747804634141451772321201090665122523172139630678431429021134671036110183522067874111920152616543056115398797266176671696671140596510432033734152511114075010041129503457119581931632441032909773783287217668414611211383647104472209080956115398797604250901883191826813232300904314366107170715222622290340149666793142535103669071778268921469014296852841331202191874017573216909046211055682362236987916623622378471032907704961165914010341236380996320906669014145476811641534809882030779113710362367810610556671471352901411032779190141144170690141102115342902157591352131746781111875618767711063967717420678365794424496257413210157959058666090170879157010275117714261127603211511113561215141653421401091251732090659014041150665126116166236108200228322164717110586034565965105190810790518668418113170126525646750905114110385396673072946355349433866124149030890156316660905327915110211925596660905329266641150722236695634743012046515751157147454906125414311331064323271104719290817221841129572263511419102931019492887439214913597779132119154433245436445372806611075051995407616626110217773883246525477106905296716245450787145461139776314320501106651837387370665407617110123810329027713016863470213210143742390137908364704758852321902643219078210583246525471714147913009046341211323503746906660909047142903710329018249147102960529866124443921302079041211588671448177375736589087671526641430779716217693628375090511554504541301395215577162176442750905128290661403197542138513215112711219484567683137598797103853990411503201287268110130401909047282114873932166874932310187565409655901225555966609021419213763631511407552804891503473806655109125115621241249611374535171394102985780664922012083790629690209473460941315901601941703570596510418131522798089623190804135656232901390822241425887111181131701522131021421011519879187112869047051667754621385132151127112134112590863133641265887121729925404778161905027517711040120213123220416096695288814906131281899019356115398797103178425134671036101521385452593414147752224711629979112949047164732471989692141108138469651131181211177832366313478311290871294904716623262119524653710803114497147907478046341414517717214166226377431866103853973090536963067843142902113467103611018352150320526651353208290321120338816626617667169667114026631766326583130662264527690103271005114290879053696244103290977378328721766841461121138364710447206783610645837236571084132965571047604250901883191826813586457022334199151953582066811619022978285284133120219187401757321690904621105568220622696350743347223784710329077049611659140103412363366661731621568990142110592249154522177710362367810610556671471352901411032779190141144170690141102115342902157591352131421556989010119711417227723661106911309719620678365794424496257413210157959058666090170879157024914066571431941412079710912517320906590140411506651712283221647171105860345627714322564675090511411038539667301158107776905110326590666411507222366956347430120465157511571474549061254143122329877276961329027265170872902263511419102931019492887439214913597779132119154433245436445372891251732190350663423883246525477106905296716245450787145461139776206311427211068566720316680168634702132101437423901379083647047116745837120519655901107206105832465254717141479130090463412113238724714314290731571504014132108471038539667304123690717771029605298661244439213020790412115886714410362367810610556671121496335465322817213281032715111135305781779079117871110124710329028777162176936283750905115545045413013952155775488846641472951108797911787154094845676831375987971038539904115032012872681101307294654099540761176663631511407552804891503473806655370102167546623941029857806649361578844615769075807659651041813152279808962319080413565684676616754662213102142101151987918711276101190125561153987911227299254047781619050110480490147837147465735307791482322041609669528881490613128189901935611539879755674556686620152224711629979115617438710385399083411812111778323663134783112908712597764527610324449904818194819049813172141662263774318661038539730905369614065024917025406039079051417961503205266513532082903211203388166766176442750905125955122109475671925190907305141796266317663265831306622645276901032710051142908790536962614427509051154601111810385397304179620678361064583723657108413296557104723617644275090519159014762931031914179658645702233419915195358206681161902297822661764427509051452761032711851142901031266873332804179620622696350743347125949170210329085135702540248103814254651417963666617316215689901421105922491545221777607355010385399090414215569890101197114172277236611069113097196109125171038539901426014111562179954076117741172491406657143194141207972661764432507702511170118277955714184190531901624904190903525190571901002289329661024019075476683190291701401212689777914733271206311427211061819575066760446311161422894416668914912434221277143265190483371571645184616211581077769051103265903448943175038184109387791902232987727696132902726517087290586249135390702253958477025404616224781100014210070828912517321903506634259622699750743347206311427211068566720316680586778435009115115513941116745837120519655901107206225457027054443855375782952531428527083872471431429073157150401413210847103853966730412369071777162176442750905132032112033881665121777103623678106105566711214963354653228172132810327151111353057817790791178711101247103290287772454573661428082081075013359217113343701481548884664147295110879791178715401077451476614670339085147661242181111427890248203908514772946540995407611766586111517126320907909019090591903598540520540367540790741663701021675466233917514774187289514225482432472339017611053615788446157690758076620766711329079117871110123810329027713084676616754662230766669035244315642151132901811243422127610119012556115398791122115346130140963051953009011048049014783714746573530779148392203156915905611539879160556745566866201976196915901845248161649653909169432503005141796156174387103853990834122734016110977251791907224961451914129115290342140125977645276103244499048181948190498131028457028290321907947826669081314169016112432111014290166721190250300741661406502491702540603907905141796222137901559751132907857766176442750905125955122109475671925190907305141796314320501101748798750514527610323811066648702411231261442750905115460111181038539730417963668190967411292219342962361764427509051915901476293103191417963064370211616157037487570311512661764427509051452761032711851142901031266873332804179622612546510690325705113061201511245147125949170210329085135702540248103814254651417963451811732141740323951111769010354011195076901035409509079074166607355010385399090411727877013612105394137021016754662109125171038539901426014111562179954076117741175963151016660356786603564166423909721341391714147911372661764432507702511170118277955714184190531901624904190903525190571901002998453714559777912103184640190754766831902917014012126897779147332137324915130779122618458965705090382706901711053140206311427211061819575066760446311161422894416668914912434221206317911381106691770651904833715716451846162222317911220371086680513733448943175038184109387791907158624913539070225395847702540461622478110001421007081094544124505962269975074334727825919586778435009115115513941222458395164478157216791225457027054443855375782952531428527082454573247901911067162176442750905132032112033881665121777105773756719172214012126610212087055341920901429624545736614280820810750133592171133437014818177558730776690711867071723464631158407081077451476614670339085147661242181111427890248203908514720145475561153987915158611151712632090790901909059190359854052054036754079074166109125171096680966953391751477418728951422548243247233901761105270165090965845114290145125090965086245451277103290147662114121253973062076671132907911787111012381032902771301028619010583265907917307423476673070623076666903524431564215113290181124342216210606613130096225530172530966552151104221462140115346130140963051953009010201000551516892031621198517882211317073922031569159056115398791603714110740521511719021261110624648358193163976196915901845248161649653909169432503005141796596510432033734154041549010247939796901535251111407501004112920511103457227340161109772517919072249614519141291152903421408121296651668411103290753990789590550834901567142051576211102845702829032190794782666908131416901611243211101429016672119025030074166278117907505111441110299341120624292471571416211222137901559751132907857886107150203166512491032907403717162476037314320501101748798750514527610323811066648702411231289526529271515169026073709020136681909674112922193429630042337193714012126690489014296731111165170106910329047539904190860665160771306437021161615703748757031151371773411354017143651156441522321386688414807514070822612546510690325705113061201511245147278178664764731458118415817664119140963451811732141740323951111769010354011195076901035409509079074166331110315066511474323735892305951113009617278770136121053941370210167546621940773411104540171605596315101666035678660356416642390972134139171414791137206317663265831306622610385397309053696998453714559777912103184693109111665110385399041651373249151307791226184589657050903827069017110531407894665166491534412111378190592471725089010329092422063179113811066917703021806651242103263237790412223179112203710866805137381259643665715034412235037743186610190287552879010149665160071289329661022631411166577365901404157139116653750715262938044275090514179031066562241906131615160071109454412450306120150324652547634215233419915195358206681101149135570827825919143768132037965517101111086680513214612011118637451204130315791426250814217112224583951644781572167918121506651846100113190614471005482742190614472819041156154110316714012966512454573247901911067711057737567191722140121266102120870553419209014296232202909521231454497817755873077669071186707172346463115840708475175152909609044741147138022290139113268720241201454755611539879151177611246037469065909041601110477540524659010847103853973074166109125171096680966955308111511135071569046283540103241142902722162701650909658451142901451250909650862454512771032901476621141212539730289125352104314175010286190105832659079173074234766730706699019373013735320501197416210606613130096225530172530966552151104221462140105519012690145103540102010005515168920316211985178822113170797641171137331201901092199095736725403714110740521511719021261110624648358193163357247143453221730120531032909117031445965104320337341540415490102479397969015352511114075010041129205111034577292624154062567414779055713081212966516684111032907539907895905508349015671420515762112525213019040522734425324712432113737070161042278117907505111441110299341120624292471571416211174148899098152100167108106161905049236142886107150203166512491032907403717162476037596510436657738192315270611614156043893289526529271515169026073709020174831512475483688078927702791465106923004233719371401212669048901429673111116517010691032904753990419086066516077129640387126687247140945120106894371773411354017143651156441522321386688414807514070820678432113130590756914119054011127817866476473145811841581766411914096532312427111013771171331110315066511474323735892305951113009620678438888454155561153987914219407734111045401716051178751074128277381375146969296820512139128217324779148206317663265831306622610385397309053696339175254804609680490991931091116651103853990416568637490521261071540207414920130971967894665166491534412111378190592471725089010329092423129219165146902559047011145411646214030218066512421032632377904122246584299712947556135160812596436657150344122350377431866101902875528790101496651600711176957813118756107210112225126314111665773659014041571391166537502361124427509051216904063879017790107607519775262938044275090514179031066562241906131615160071358112242207954512787933241103241822165221777306120150324652547634215233419915195358206681101149135570825551051519706450208143768132037965517101111086680513214612011118637451204130315791426250814217111216453714730779121031519561308121506651846100113190614471005482742190614472819041156154110316714012966511646961557165115128932966102791517166513683924793766501931711718135964371665122290613441479232202909521231454497676811666110462475175152909609044741147138022290139113268720241133291713914672155196790124156103475071451562827810347949019290263661034117761124603746906590904160111047754052465901084710385397307416625912876677198914411067105113162170106153959079859547701316612417011891265308111511135071569046283540103241142902722163164549075071397118415875132346227906642390874479172814949229236902294793289125352104314175019416521351358290531561222656496116696153901352707699019373013735320501197418277442181239120286131105519012690145103540303596436677612707021915542263474701170661659289879117119764117113733120190109219909573672540103868141229316914383251408707150171962469080701357247143453221730120531032909117031443197687223443106729262415406256741477905571301407323076613141104018390797358146707252521301904052273442532471243211373707016104248232280512831547281469512029313539012273619018131712361113510553170717414889909815210016710810616190504923614228132893947443566107540317901551034425965104366577381923152706116141560438931476679772391023113290668778140748315124754836880789277027914651069217132966317085617477909205151227080130296403871266872471409451201068943513747666090757337253622067776220651669027074170190130206784321131305907569141190540111171329446737927573323815030766150104532312427111013771171281661107507718766100113706784111031417148256717707782477901151320761176610611216656717147821703142067843888845415556115398791421713253841150784212412015730590639636275041157724705013611787510741282773813751469692968205121391282173247791487316692683293662197112012372662969090711343391752548046096804909915471033257473076620030766131417061385022321177686374905212610715402074149201309719644743471560901416591090215115668741201234227903129219165146902559047011145411646214025912877166511554187311513627882412866660222465842997129475561351609511766775622276611681198701957307791662101176957813118756107210112225139172398639130318390886246904543690115779194236112442750905121690406387901779010760751977315320501106677431701008129266104677335811224220795451278793324110324182216522177784270345581641479965565452051681309317112555105151970645020810212051606197566131837242307666545205712164537147307791210315195613028166110750771010804369611073961604119093121111646961557165115127130836532700210462130546307651605609628932966102397137186104013790741209169192011196151152903354093121117915171665136839247937665019317116252904433629418074766224923076613664467157197788560565537488903568135964371665122290613441479813130716651110664129048890450419776768116661104621021211132575667513597316610181427334108657923810727311409106873139063329298964857423360826151133291713914672155196790124156103475071451562827810347949019290263661034110386283018430766170962869084675865124230766910702141371667147259128766771989144110671051131621701061539590798595477013166124170118912622766241772161459077021411890211227110863160932169621910151130651109721421316616641210901096665073613012111556711566161770536707316454907507139711841587513234622790664239087447917281494922923690229479335130566241771329063779190661153566108013121190931107141194165213513582905315612226564961166961539013527078168116663214966379776669210987918277442181239120286131151320526677153104766296106294901349271413035964366776127070219155422634747011706616592898791171173192166928987911711103868141229316914383251408707150171962469080701138227873197687223443106259229772874114029090351217014074111140732307661314110401839079735814670727120575811312015686348232280512831547281469512029313539012273619018131712361113510553170796754931136252931711281328939474435661075403179015510344230127175866419214766797723910231132906687781402339116690755322750817132966317085617477909205151227080130676811666110462747803683924793735137476660907573372536220677762206516690270741701901308427033565193679901659012156151132906405405685187029879117111713294467379275733238150307661501042591287667721113086911474904763901551131411911042276090507265545193206511221964135114125313025947210524596514595314591304591306692811304904726581147238501205293171128166110750771876610011370678411103141714825671770778247790115132076117661061121665671714782170314891516677198904115072105866431076753718670051657501306211150713018139671190614281457119061317132538411507842124120157305906396362750411577247050136313320501106677130490413217396421890574365137769015250483173166926832936621971120123726629690907113410216612471790518819023485513766296111351907147199228215790142179023351259270813990498317215057893726717905155267137103855978272252470210657121112101204190766513293418104131987911711547103325747307662003076613141706138502232117715132052716613110917321413514474347156090141659109021511566874120123422790320320501107166516656715749041371763710636437713643771337119376990165623125912877166511554187311513627882412866660541143115127987911711931101865126651951176677562227661168119870195730779166210106774758184396906619530766772791513917239863913031839088624690454369011577919410354845948618449041121257422777279731532050110667743170100812926610467732591287667777611141051657501039016512422712747968130931711842703455816414799655654520516813093171117132962963154047136014090416104018390797358465709010212051606197566131837242307666545205794154313086871022562816611075077101080436961107396160411909312111447661454078613290637791906611527130836532700210462130546307651605609631347616713024447661241469213016712014212139713718610401379074120916919201119615115290335409312111341758139215066516252904433629418074766224923076613664467157197788560565537488903563513747733189669581313071665111066412904889045041977328137661314911120228290655325610212111325756675135973166101814273341086579238107273114091068731390633292989648574233608261511349682905161315225314410386283018430766170962869084675865124230766910702141371667147233151202804901010446253227662417721614590770214118902112271108631609321696219101511306511097214213166166412109010966650736130121115567115661617705367072566124771388166288116708811483319879117113513056624177132906377919066115356610801312119093110714179137149665089879117118168116663214966379776669210987911021948818430766899681890129620290138151320526677153104766296106294901349271414597771561939096537144511437310385391101281121527319216692898791171125912876677574227110664249986577093626681213822787843109178379083411032904753990413574165832592297728741140290903512170140741111317289179628347142909747968134710329043411502712057581131201568631024239032223377509012913710329037539909056711258931104314195121842130167862313077911379675493113625293171127031313257567561153987916030127175866419281210907737567181463901377972339116690755322750893125300413513911222906188741171414791226676811666110462747803683924793721730120111187505877021322331101443530779113784270335651936799016590121561511329064054056851870298791171111789880490839162317913258741723661106912591287667721113086911474904763901551131411911042276090507265545193206511221964135114125313025947210524596514595314591304591306692811304904726581147238501205293171110276804675090511429016115521971032477903515110381429075547706241412171518915166771989041150721058664310767537186700516575013062111507130181396711906142814571190613573588256115193611911912146214031332050110667713049041321739642189057436513776901525048313025964361130154295903101464141511021661247179051881902348551376629611135190714719922821579014217902335125927081399049831721505789372671790515526713710385597827225247021065712111210120419076651329341810413198791171137177390855292120135101796207753296215090849634013035148505227505101624922715132052716613110917321413515578790176521213114867231663140987261903214135206320320501107166516656715749041371763710636437713643771337119376990165623113680490539411043206783651848628001515564511032123245111079414771159611515411431151279879117119311018651266511286208264135534262307905737711012050416215909371134106774758184396906619530766772791511702649032653764951111751351013834110015542211581035484594861844904112125742277727973373271413074311675025912876677776111410516575010390165124227127479681309317111515981962773019636111113109627444134168107160171329629631540471360140904161040183907973584657090526293804427509051187502495242792369833936277253218941543130868710225622790391325649551031551941404476614540786132906377919066115998320501102283209096111308391069022032150901553571473134761671302444766124146921301671201421211115901353547520901367547103290375399090567115631666090557791821303417581392150665126314117139138262131742138183120157702418357511203212948760037351374773318966951028619071914072758661301038539903779013032813766131491112022829065532565961111413729511154731130134968290516131522531441815201714111349854025311312313023315120280490101044625310912566113251531757979126713025661247713881662881167088114833198791171120631142721106967513171106323624779137149665089879117112555105111170645020810219488184307668996818901296202901381060371361251717315612590130459777156193909653714451143731038539110128112152196101491676908201418791146167872419172832471242881058701610422962743373827081468030779113725912876677574227110664249986577093626681234351032747017650120209109141882069079113128932966102206784132763530779122290109316080420871131274613515968350517487012931012603269082014187911378431091783790834110329047539904135741658335777314352732131329609031590342471317289179628347142909747968134710329043411508741084749797211081441024239032223377509012913710329037539909056711258931104314195121842130167862313077911372063114272110632032112033881212511302703131325756756115398791601471712905114743981217514713014691903212717576244310237138478121090773756718146390137797110480490671814639019679793125300413513911222906188741171414791226399810177259132090671473532082903211203388121251130217301201111875058770213223311014435307791137142787253166146540124563621178988049083916231791325874172366110691192477668414278321059097451141138102768046750905114290161155219710324779035151103814290755477062414121715111788510441282773813977820192100137201902932100311675735882561151936119119121462140102268327065159711683077911377301013270641144708671111164512242333270641138463463155840708302596436113015429590310146414151960901528634247336422905074737177390855292120135101796207753296215090849634013035148505227505101624922728071190300809507416111039471779079172855787901765212131148672316631409872619032141352063187732462909603211515890163411107540301600655535126103192130136804905394110432067836518486280015155645110321232451110794147711596115131932050110176611032214519091204905514113012862082641355342623079057377110120504162159093711341049141141890212511301702649032653764951111751351013834110015542211589447732647139141303373271413074311675031218056212413412382057200110831172126051130151598196277301963611111310962744413416810716031211190131448611116470161042526293804427509051187502495242792369833936277253218861119078875677921442279039132564955103155194140861119010459521329073071109983205011022832090961113083910690220321509015535714725232090789613290429180617714168107541115901353547520901367547103290375399090567115631666090557791821303143205011066513214176190312791037600674729113710410385392906583263141171391382621317421381831201577024183575112032129487600371091251781903533011113047361601112539017166498411028619071914072758661301038539903779013056214111323631103814290377661210731903517066560928142171159611114137295111547311302786736647152902901122184758571815201714111349854025311312313014376813203796551710111108668051142171110912566113251531757979126713037110290123229092811792809040151206311427211069675131711063236247232210132575561153987973187737530779125551051111706450208276431506651669155210110711132190353219084066131119286145763567171106037136125171731561259013058777045276103271604503641296721190250291741721961014916769082014187911461678724191728324712428810587016104229627433738270814680307791137218116726631877375512326797365160177521211744612411314511322471903435103274701765012020910914188206907911312806611075051423903231590250373509032047147321270375619047847191635401449054060390790722067841327635307791222901093160804208711312746135159683505174870129310126032690820141879113797619691590183984795161616554531725220795075096878712508107168177270629248647357773143527321313296090315903424735990156416590530797121352626679015064223503774318661019028755287901014987410847497972110814481257092375823661876290474411774214518731525512063114272110632032112033881212511309310911172664142249114217111471712905114743981217514713014691903212717576244310237138472173241777731151110480490671814639019679796661107504739981017725913209067147353208290321120338812125113037166472254471724379615715510452479667911350923127017142320958831844167547457811213219607371427872531661465401245636233915248647192477668414278321059097451141138287371402371178851044128277381397782019210013720190293210031167445379613710226832706515971168307791137730101327064114470867111116451224233327064113846346315584070833990902124514732190180665147937614864796090152863424733642290507479603245151280711903008095074161110394717790791728960966313246905796751314136252318773246290960321151589016341110754030160065553512610319213033146224849633545917790791722184758573193205011017661103221451909120490551411302807119030779117015401049141141890212511307012219411502548121167969411511141793551142908866516007194477326471391413012869466511828290669209277093115019950142963121805621241341238205720011083117212605113060880609269172261403812441571556642349679151312111901314486111164701610425261286569159082255181861119078875677921443028428466512962712351391145490617674786111901045952132907307110263941117506675312441631416341412259712151289024179145475854025232090789613290429180617714168107544189614479707902689096104706124454289329661025261316253519612170874165831443143205011066513214176190312791037600674729113710410385392906583103896161371429616131915902172059074110912517819035330111130473616011125390171664984130650707707799016577037543155920319825175307797562141113236311038142903776612107319035170665609281421711350901091121893991801320909513304142077190717411210130190855253969655127867366471529029011221847585733111031505610385391012141665114376813203796551710111108668051142171186232345392313754132247124345392313730519530017010329072116374111371102901232290928117928090401511407328739171058845132954621101254245074153990520754110329073774226766609053079159165213023221013257556115398797318773753077911287897156819013901675143996444511038539130665127643150665166915521011071113219035321908406613111928614576356717133732574196059151112239020166960599014712682145877704527610327160450364129672119025029174172455665404078644766540407160128510321216115433211129112837111266103290685218116726631877375512326797365160177521211744612411314511322471903151517156103290375399032090125667147111135305841779079117871110124710329028777280661107505142390323159025037350903204714732127037561904784719163540144905406039079072303847166131791478215034418611061290111111062041894314266131742976196915901839847951616165545317252207950750968787125081071681772706292486477035990156416590530797121352626679015064223503774318661019028755287901014910938881257092375823661876290474411774214518731525514211207193109111726641422491142171165030011021732417777311512891254979666110750471167125559514114713803716647225447172437961571551045247966791135092312701714232095883184416754745781121321960737162311257661101671081343391524864724412588341951063267901545228737140237358311251487657559665706290160445379613716231139570411397155833399090212451473219018066514793761486472702101327587104532991695147390135092960324515110282901653205675315141478487781085296096631324690579675131413625241720701346102571751009331462248496335459177907917221847585738610152218103321585461186342701280711903077911701540117832491513209032988476215023249141138701221941150254812116796941151114179355114290886651600714161015215025313812869466511828290669209277093115019950142961331064321614760880609269172261403812441571556642349679151817739125643386270906267052138526128656915908225518143614649132136061170280138302842846651296271235139114549061767474214801461113115023314020190202639411175066753124416314163414122597121512890241791454758540505512051613190480418961447970790268909610470612445472952349741773140475261316253519612170874165831449163732189613014503110023292645141659017021038961613714296161319159021720590741102861120702613065070770779901657703754315592031982517530779730726449161350901091121893991801320909513304142077190717411210130190855253969655120615644011131896351403311103150561038539101214166513919016921240128043862323453923137541322471243453923137305195300170103290721163741111877147142905790819015111013947140732873917105884513295462110125424507415399052075411032907377422676660905307915916521307014578224113324715112878971568190139016751439964445110385391306651548778322969046641108110273113373257419605915111223902016696059901471268214339318696387901771076021771455665404078644766540407160128510321216115433211129112837111266103290685110495123715057315151715610329037539903209012566714711113530584177907911787111012471032902877711717511968618648610327522303847166131791478215034418611061290111111062041894314266131742167909634013069090454961602893296610258611270545477459098702063187236961032852815649730741121109388106645782287957401017522421120711811257147503683061343765030011018538075418128360377289125497136130905628716310137371624513610724313111671255595141147138043516190135512952752216231125766110167108134288415759075787244125883419510632679015452916453775900111139535157358311251487657559665706290160684151891253321623113957041139715583704190770478562415087514070827021013275871045329916951473901350921170126783224741290169085647102829016532056753151414784877810852102861903249151125663213690170988203077911316636781238751407084172070134610257175100925551051111706450208386101522181033215854611863427017965117462411332121641117832491513209032988476215023249141138339814137511615111416101521502531382062474154090457823279073613310643216147417200329804170639590623909711138817739125643386270906267052138110495123457822411332471514361464913213606117028013859651041324663732119013703116742148014611131150233140201902016213309087891025150551205161319048052626311096190694572952349741773140471404181111967591637321896130145031100232926451416590170225820290137131102861120702613701787462307264491611028090564014833151456211101807120615644011131896351406503007061435739190169212401280436564831517313615083114018771471429057908190151110139475365104419871070145782241133247151756510438713354877832296904664110811027311148784327971570547138110109087339318696387901771076021771358141331650176110190361421104951237150573393785154812155611082636142117175119686186486103275222661127619018536596167909634013069090454961601023579203211513510724760119647586112705454774590983921101671241971909902063187236961032852815649730741121147361251637654081757815221777106645782287957401017522117102273176758231811257147503683061343758611254924196811853807541812836037740617541666090171413613090562871631013737162451361072431311104577551385615314351619013551295275222164732641190521819511128841575907578710274011782144907865219321077916453775900111139535157290211042389013173512657181100868415189125332150730521724537358741441307041907704785624150875140708566954917822521632534909010374111701267832247412901690856471817621742615740511103071038539730741107102861903249151125663213690170988203077911316636781238751407081667035146513212067022469225551051111706450208729523205049621741201796511746241133212164117160933981413751161511121172320624741540904578232790736921953417200329804170639590623909711138499651110495123457822411332471516722081084710385392025965104132466373211901370311678074961426852162133090878910251245370509099552626311096190694556509095214210241236311404181111967599773812192582029013713160330855872568990323701787462406990826527819041731305461066102809056401483315145621110180719324753265030070614357986319277086564831517313615083114013861620870853651044198710102268327065114475651043871337045310186047749170314878432797157054713811010908712468358141331650176110190361428614971601303393785154812155611082636142121645782242151517226611276190185365969556706971114410235792032115135107247601196471178751074123156706392110167124197190990142784769977791516147361251637654081757815221777923004114166609011710227317675823202962375861125492419681797319041406175416660901714686874532110457755138561531567872110917139216473264119052181951111411209085101111381027401178214490786521932107719648370321382902110423890131735126571811008107014751032150901708171471507305217245373587414413089752253136161188566954917822521632534909010374110677152120818176217426157405111030710385397307411071016804907661761667035146513212067022469237623077052729523205049621741201748663236317514070278962893296610214960148765762208171609421200141143221172311280484711192195359651041324664749965185166773267220810847103853920218630775678074961426852356511122453705090995201454905650909521421024123631633460110997738121917090831551006033085587256899032623735823406990826527819041731305461066203126453710369631932475321303207921759863192770816681212613861620870856787211091721310226832706511443604071611351411317045310186047749170332512072146124681905310186047749170386149716013020549135131121645782242151517292779028619095567069711144694424514661311178751074123156706113990500212165731427847699777915165121081229230041141666090874108477889732202962371051124417065179731904122826070660068687453218450841888107515678721109171391091535160521411209085101111389212190120350857196483703213841127676115107014751032150901708171479896217961371768975225313616118898903391167551540106771521208927135851540101680490766176891591189637623077052341747110125748663236317514070278961287211778301401496014876576220810501353421404212001411432108117871110123111280484711185166773259651041324664714227064107140851667732105125390471251863077567194451315160356511128929011567720145490232906411013163346011024970770521709083155100227128905662373582389213525402031264537103696312897859057130320792175140134207147011668121265327421574813170156787211091721367066604111236040716113514113123220410101213251207214613090115512301905310186047749170321061211205491351313061255239277902861905073221148141128169442451466131615319041113990500212165731431003155128151210812215346220874108477889732914415331311051124417065159647790722282607066009290222114356013818450841888107512622793572931091535160521392124170861137921219012035085722090407202411276761158810736389896217961371763849066311515276464118140311131610742123173161162902116162111311711151032151989033911675515401254411321519271358515402591151127891591189624970770522485941043417471101251337441706511287211778301401020712156105013534214089290115677108117871110123125911013185166773224970770142270641071402271289056105125390471252209063172564194451315160102225977158135696170116115280892901156772681161101411402329064110131105125390198166249707705211244515844222712890565934545148921352540681331122289785905789290156677140134207147012681161101315327421574813170124970770526706660411122271289097232204101012142112010257130901155123095632181131701210612118221191362103531306125523128742082626650732211481411281113417681361531904185166773214310031551281892901156771534622013131110131914415331312497077052596477907222712890569290222114356013842112046572622793572931744711970113921241708611371294908732220904072028922955408810736382001557261173849066311515276464118140311131610742123173161162902116162111311711151032151656112109125441132151421120126572591151127435161411037012497077052248594104943901511861337441706511201744565610207121562019071561478929011567763856416690562259110131210173148882497077017990508115510227128905687711156413532209063172564684168617810222597715813569617011611528013981484253106626811611014114036651553137781411051253901981662321469096321124451584428091026640593454514143110484190681331122524110904189290156677137611226811611013110215090412497077052255510514854882271289097113496895401401138968671164211201025723611166121956321811317018516677328221191362103531532471911287420826266593115491411134176813921211190328516677321861813532914789290115677258138581313111013119713858249707705223278572271289056128909211755136421120465785166771011744711970120622673871294908732421158541562140892295540473759620015572611711207510857656112109684181655164211201265735822634443516141103701629907943901511861081101151516877821201744565668418165442201907156147358226299638564166905622361111132022221212101731488842111013717990508115510232202658987711156413539517103889068416861785078290307791321398148425310661816843714235090177901076036651553137781417232697063881371359905951882321469096327635070651203772104809102664021535070651496110306348511351021961431104841901132327065183710690708221415241109041773823713293090320904532113909511158913761124512522225366816941102150904197908271084710385399075412555105148548850909810641571134968954014011389686711644370641281641461771122236111661215067671084515255685166773217318832172232505153247191187903641241133252116047593115491411025613216081103253144921211190321056467012112792720241110293186181353291476394131301156791152258138581035505592561971385864320610447395365232785728267370176153422411289092117551363317741677183714111314987211092310127811080311381352372111064170185166771016439014319721124128461285925303561170651206226738760292806207182153692219564541176561153987913287211091710526819073157129415439999013413142115854156214043124157175355775035141147375961025611743318773756610212089679151661021209405287237141142621491032907251745221111120751085728290307820126307791950750431084710381427814768418165516335631153411032902955611539879115341358226344674313664172532636114442362990710561071601915170108110115151687782496534131151070701684181654424710074182129201208411041361211358226299259199109269110216236111113202222121545406829511019819153114042111013745451718690431072319140134012812021312322026589945188112486132493599128932966102110363504179517103889020790450867507829030779132711212121722113770618168437142350901779010760431241571753557723269706388137135990595188779144401160612076570119127927763507065120377210450920715307062551021215350706514961103063485113510219667779369125315562141357011323270651837106907082214110561071602946952958377108323013613067738237132930903209045321139095111589331564719417625912892745125222253668169412369307288175297908271084710385399075418433101201751025090981064157843905616170717721292744370641281641461771122431486605792070650676710845152556437553312445417318832172232505150973511396140965301879036412411332521160476043207921751025613216081103253144102865364170610564670121127927202411102931359035413887065163941313011567911524353011305770610355055925681152192986432061044739536511679893770628267370176153422411835590807331774167718371411131498721109231012781108031138135237211106417012821279647251311705888970664390143197211241284612859253035611706515321528159549162251314913213860292806207182153692219564541176561153987913287211091710526819073157129415439999013413128290951774967068114490253138431241571753557750351411733901697123526031814114410256117433187737566102120896791516610212094052872371411426214910329072517452211132516514084187117972829030782012630779195075043108471038142781472823611311387505133563115341103290295561153987911534133750663236904799052921306743136641725326361144423131212510847103853920210561071601915170102053111304965341311510707011166125491471007418212920120841104136121111967011421041409040714125919910926911021610296052923241345154540682951101981915311406990503731611662221317014545171869043107231914013401281202131128352572249095113648178294518811248613249359911709513714711036350417392907768310332207904508671929047041108326113071467511804110311131711212121722113770669901141251901190958105213143124157175355725315196884131779144401160612076570119127927955641560130575092071530706255102163856411291202131677793691253155621413570128190151131105610716029469529583771083230136130621753756413315647194176259128927174114257913123693072881752851135973284331012017510213714521913184390561617071772129271741354921361109815243148660579207066619052472049011515241130437553312445426192032115150973511396140965306876586266043207921751091256690454497102865364170695357616615714145461139521359035413887065130172311902931665111769545419010778665112766413993217141586590170879775295653243530113057706337506611126321417408122041171051662063681152192981312125113215064223503774318661011102872422871101012361411038539730116798937706826141113236311213526266790103113719073076907315076790800186061939090942296103540241909079018355908073311103150565965104321237326241540811213219607379010159275733111210203718010606613170751282127964725131170588897062821029071171322910130107120870616510913290469071411209516564170254046103207751000193100708532152815954916225131491321386743133092206317972067914863513020725322583791815869101625511191282909517749670681144902531387112122493801069214266100712396710901268202625089879177111307339016971235260318141144953576166775164161130325165140841871179726137778164728236113113875051102056773212570516826113033750663236904799052921307435761776613013121251084710385392021339421175032187569723686779195251130659075041164102053111306377711827666967509608539628290960231907511661254917758254375664167985114474637971196701142104140904071416743457366557916712461816763679110296052923241345128290901250532804951151081716990503731611662221317011566672031668028881490613107128019290128075247508791100128352572249095113648178267779607509051591185404116862854093115127878135401032901431955114290886651600711709513714710286190676692090183236126207902561109119229966508171392907768310332109035121668709632190729661975066920411898849054024796679143951070601749424553119876619290470411083261130714675118041103111315385104181310911461875680476215201716990114125190119095810521316363151890804527177907917222531519688413120678362238378099655906486692795564156013057138617557050903827069017110531406385641129120213156617579710121028335212819015113120631766326583571537352631312408775319523457166100221753756415061024507117411425791311586262124187561115408511359732421556989010119701227728661107221309711701371452191316274567720022714747174135492136110981522492175024712437741756619052472049011515241130206787411212498114774168165663402619203211511090351216687096659079377881103661016876586265927109666101870903512166199628932966102583466115668013065356155352552667100580255351002662665166609053041732130662261038539730905369610912566904544975962261416157111014814611130953576166157141454611395219077311554632773426903017231190293166511176954541901077866511276641399321714158659017087977529565326815545147116840172830963054201701411714541301395233750661112632141740812204117105166206367661764427509051150344184230647711691044121013790840704474526822250666131212511321506422350377431866101110287242287110101236141103853973026637321156317843130461666090170841826141113236311213526266790103113719073076907315076790800186061939090942296103540241909079072946540103853990351244876513033111031505659651043212373262415408112132196073790101592757331112102037180106066131707511028457026590791920708839162317911387492366920708282102907117132291013010712087061651091329046907141120951656417025404610320775100019310070811769578419097624684513521043141103853929010613067431330922063179720679148635130207253225837918158691016255111915369370416690751318756804769075221155811241032904197782051427112122493801069214266100712396710901268202625089879177111305487784147115894148175139535761667751641611302063176610653515321401108229213191165692702540126100019310078226137778164714878411651061121177907911371041020567732125705168261130182454789414812175290977797894148121974357617766130162176442750905132032112033881665115777133942117503218756972368677919525113065907504116428913171156124789129066516625390566312361103487918711130637771182766696750960853962829096023190757963154080448151132903514426241767758254375664167985114474637971026314971407804481511329026290101884111948667434573665579167124618167636791952120470576655906894111066911190536512829090125053280495115108171631905007066513653671566672031668028881490613107128019290128075247508791100249901572254051368046106853676777960750905159118540411686285409311512787813540103290143195511429088665160071392904761089812024224341044210286190676692090183236126207902561109119229966508171782556989010111565661107297916101876210903512166870963219072966197506692041189884905402479667914395107060174942455311987661314537107155315755087916679538510418131091146187568047621520171663205011017320507316663631518908045271779079172294845676641430779710385391853520678362238378099655906486692712617777076612911301386175570509038270690171105314095290562160109921901529079147612514056617579710121028335261290761576632206317663265835715373526313124087753195234571661002586111517126117466545187561307124103830910866311475061024507112161514578281195730540663119032103290965399090340327907361586262124187561115401036315114110791635715529454882208258103210074215569890101197012277286611072213097117024643141175404119050502627456772002271474739211080495508106421387061161411082262412170496150290471711063751371888826702418248984130779117624921750247124377417575355615296695981264214020678741121249811477416816566340695727451170131106375137188942670241824889412475087911761090351216687096659079377881103661012322042403615188990459103276485245741658314459271096661018709035121661996232202658314614110791624754136601449014913761658346611566801306535615535255266710058025535100266266516660905304173213066226103853973090536964859622614161571110148146111301811256690454497190773115546327734269037146113236317671020431843913978312816815545147116840172830963054201701411714541301395268905771430111307791326641290484176617644275090511503441842306477116910441210137908407044745268222506661737119018261397859755113523434650451121905664146177112226637321156317843130461666090170841282102963077911102224905087767294654010385399035124487651309277315112248641082013611472533205053625398820181271682475413649966011447911028457026590791920708839162317911387492366920708109125451711362695990128965254411244546862531176957841909762468451352104314110385392901061301051124117566531847665125009651215153693704166907513187568047690752211558112410329041977820514283613341530701251600902236657012130779151548778414711589414817513102908094111581188210114861011492253138206317661065351532140110822921319116569270254012610001931007822631416517950375305774023668470258790148784116510611211779079113710472903213304730814290901034172807411118245478941481217529097779789414812193882254295358206616216217644275090513203211203388166511577756256990829032190110246902451506017066393602891317115612478912906651662539056631236110348791871113033750658712112032013566110700312664556796315408044815113290351442624176102340665187970314824319050420871026314971407804481511329026290101884111948690460379890109141102129344169701124561002952120470576655906894111066911190536513311090471626661506319050070665136536733321111665132296631659014079714192072249901572254051368046106853671079066907571478056614261032907091111353054578177907879117871110124710329028777392904761089812024224341044220431811656661426387496335856471987507825569890101115656611072979161018762102156465116342140131453710715531575508791667972326921836310340641663205011017320507316686190323923447166492115987916453813817590141591519484567664143077971038539185351761032901115517124465168261207120116531966406137126177770766129113010258106316625090268214117061116137952905621601099219015290791476125140723380119029316651144741872162196305772719572430572629049674110662121465123498710747040631901362331376129076157663253610232804721141322714140613165516663904011701032901166871219014611586111517126117466545187561307124103830910866311475056570170682611461191741137121615145782811957305406631190321032909653990903403279073613797122466471219079755681641467570103631511411079163571552945488220825810321007486561706826114617246431411754041190505021090351216687096201906690904130649256392110804955081064213870611614110822624121704961502904717110637513718888267024182489841307791176643380119066840770297819066582805705570241877481320904771214961329015674140753556152966959812642140206662132501106691770987911306612454122244715012126641290104791695727451170131106375137188942670241824889412475087911769710331402994053971140613723220424036151889904591032764852457416583144405903240634471331201001457643667776724986671163641190539662322026583146141107916247541366014490149137616536102705291461191741137289329661025322051583757511965571092146114871121296373897001471361756179209013014096576323011185140901811256690454497282415969041141404114617371461132363176710204318439139783128113121254114158140740100417527683315906890577143011130779132664129048412821024547157664129557837903796908535100465909224331173711901826139785975511352343465045112190566414617711221103026651664125189390137411516282102963077911102224905087768047640633115267414816619292773151122486410820136114725332050536253988201812716824754136499660114479180430540631642167546623871011116113628210912545171136269599012896525441124454686253282901531211146491115473907152690820992226282904787071051124117566531847665125009651215110862681046651965052690791131836133415307012516009022366570121307791518049057121770262829869228290791137102908094111581188210114861011492253138861903239285471621384213849635087142077138263141651795037530577402366847025879034215662965590987973414205272903213304730814290901034172807411123676811868114551062210315638822542953582066162454312627645011646214056256990829032190110246902451506017066393606777936193375065871211203201356611070031266455626141322254768021747108668051373102340665187970314824319050420873332111156681311105045412223234590514471501212664129010479151904603798901091411021293441697011245610022063114272110614273090223103853976033110904716266615017764117115137561153987973391524864733321111665132296631659014079714192072162311427211069621231446167511079066907571478056614261032907091111353054578177907879117871110124710329028777865987604871207487915190466141262137204318116566614263874963358564719875058631142721106142110910736665133329395567101901037416610215646511634214056214111323631320507312626679072326921836310340641816641478791116770861903239234471664921159879164538138175901415915123220266703262667904539037335619936263148502103290103741661761032901115517124465168261207120116531966406137232202658395358201661132363149111025810631662509026821411706111613723223213151647212904947471666090530791775146561130723380119029316651144741872162196305772719572430572629049674110662121465123498710747040631901362331376561961503514751329050690156917513540365146954012087354020590540144905406039079074111536102328047211413227141406131655166639040117010329011668712190146111667035146172242910782466387411150565701706826114611917411374366166412901047914160071137971224664712190797556816414675702062263417342494567297914865617068261146171362182679010937011090351216687096201906690904130649256329282905401299064338011906684077029781906658280570557024187748132090477121496132901567414097651041617514054020666213250110669177098791130661245412224471501212664129010479139266840770321132901301207032121837138666090971033140299405397114061377045104913912121032907445104379040590324063447133120100145764366777672498667116364119053966753556152966959812642536102705291461191741137339172616716974187233012210866805137353220515837575119655710921461116810686614191066241147826675332184215132671471303307090141130331901351529029134214071121296373897001471361756179209013014096576323011185140905071029665919390103741662824159690411414041146175341611161223609017116147524196961312125411415814074010041752768331590726664129141728628210245471576641295578379037969085351004659092243311487841165106112110329070911131113572178177907911787111012471032902871511103026651664125189390137411516548778414711517190169432954963354591518047640633115267414816619262077143357236892138114208151804305406316421675466238710111161136282388106866829010301044416651011420871147255301502829015312111464911154739071526908209922262829047870748108626810466519650526907911312893299049780490571217702628298692282907911372061762833524176004238619032392854716213842138496350871420771382363112576611519675133421566296559098797341420521971022211488113963068039646531817690189144236768118681145510622103156680521758466981936969241346305025292130454312627645011646214035745839516447231791677793619186121020475561153987915126141322254768021747108668051373232202750613556511690103273074378612113033321111566813111050454122232345905144715012126641290104791512217752278905149631096229192902779610920631142721106142730902231038539760150462532226786422106736211655211424147754017764117115137561153987973391524864718112571475099515396142742471115090311169050813210361623114272110696212314461675155675266570266141121010781318659876048712074879151904661412621373577731431321061182533113613866324833275596706290321459701586311427211061421109107366651333293955671019010374166814658411113530511775741665121777111913059014413912121032907707512256214111323631320507312626679040631516188378099655906487739355195290581219155422816641478791116770148784392804266182650110151558195550482322026670326266790453903733561993626314850210329010374166566849879112023220265839535820166113236314911149125282416686518622322321315164721290494747166609053079177514656113020678439434521515530926417024186561961503514751329050690156917513540365146954012087354020590540144905406039079074111729522453779017320501607416621113816174970118144166703514617224291078246638741115968173115031665114401061033735437230170319511516510474366166412901047914160071952906212662641440741101079620622634173424945672979160390451219495775556362309131136218267901093701921789614884901779010301048190167155114755477062417515436175967329282905401299014881909510443827365773130779113797651041617514054020678741682013197743077911020392668407703211329013012070321218371386660908146578432166520596752826686217507045104913912121032907445104379026290117197808199148849088382125225330779113775355615296695981264253651044191516472371088321371558876095406625313879151339172616716974187233012210866805137353041969625111154196968379696559011410816810686614191066241147826675332184215132671471303307090141130331901351529029134214025812869088507102966591939010374166261901111371301466641751301371199653416111612236090171161475241969698467686738274178211915443155116371548763772666412914172861020908706321474729979132147471487841165106112110329070911131113572178177907911787111012471032902871511812111156681311105740190113748548778414711517190169432954963354591515321751051785741658140037460474313774372931014179662077143357236892138114208151167315129310335136222124871690131388106866829010301044416651011420871147255301503143205011056487982674151608813821161397829761032610714179628932966102302596435675041148187569242190418102829015017116174631463901087915148944536259719533077915128932990497627890497715903729629073426312061762833524176004238117371213257362225115290350140104413250141412363112576611519675138611190121671201551730679790162317973971998820111302881254176006716812535215942197102221148811396306803964653181769018914425295320120102107940222905629573951191454116462140680521758466981936969241346305025292130146973222471967296305130140903574583951644723179131990914177213854161120621473212703756190478471089011419012034716714021446186121020475561153987915114890754196313290140784116583623220275061355651169010327307437861211301651665311055784185901931113122177522789051496310962291929027796109194077390991147433077912721881294051212416739615616795147407062265051011769091253857961504625322267864221067362116552114241477540108085786531105708636710711931102127081811257147509951539614274247111509031116905081321036865019011130831907740540661249071516521305567526657026614112101078131319320501105622411077139567547241823696213904633653577731431321061182533113613866324833275596706290321459701673205256322471419025590963281465841111353051177574166512177711191305901441391212103290770751224840631516188378099655906487739355195290581219155422230148784392804266182650110151558195550481091256615290791476134770566849879112010511411710329047539904135149125282416686518622891317116651321032901201812247541361432419074953942520678439434521515530926417024186815545147155998665865901708797729522453779017320501607416621113816174970118144371903968990390952123114456135650963414113802833526176776596817311503166511440106103373543723017031951151651047350374690754110646539032190644106244617866311429529062126626414407411010796314320501101748738177711146586590170841603904512194957755563623091316352856115212667906641153320909515514792178961488490177901030104819016715511475547706241751543617596733321117320595100959761919396192519090103103853929014881909510443827365773130779113715032052563203211203388110385391853520678741682013197743077911020729046353219046425664652541651110222951187379515851156122259715747617674765710641959090570814657843216652059675282668621750252953201201219045471479157107940150344122290562957310710131715941769032787472629011719780819914884908838212522533077911373715211312366128113163120296193812682536612213564742390668843491136688723764161607155860536510441915164723710883213715588760954066253138791513187738118021612471248184563547641769066907879753041969625111154196968379696559011410831216713024447145141454887416625812869088868611201679030779151321395721296576987978162317918573261901111371301466641751301371199612514717321903178412966984676867382741782119154431551163715487637152908379035479646196708224719671390356183770822471901020908706321474729979132147478177375106257107940231957366776170419590755775317541181211115668131110574019011374826394111750247124377417548514079056115398797471771789815801062610532175105178574165814003746047431377437293101417965261286665111996356112379096343908632205115152311305611539879182665127417501673151293103351362221248716901313311103150564981391247366641521101050663111317236611069120241314320501105648798267415160881382116139782976103261071417966364115651212017282120444142741173025964356750411481875692421904181028290150171161746314639010879151318773753949159082561153987914919445362597195330779151302812845632141306971061032901039112338667142627890497715903729629073426319377176535661664176901541977411781173712132573622251152903501401044132501414131432170215811017129013650247103853973041796861119012167120155173067979016231797397199882011130288125417600671681253521594273012017285482123147901544725295320120102107940222905629573951191454116462140350374690666090904710329018249147146973222471967296305130140901932419024141796319909141772138541611206214732127037561904784710890114190120347167140214465262938044275090511110110231110024914031151148907541963132901407841165836730120166894317371651665311055784185901931113114890754146390104791156194077390991147433077912721881294051212416739615616795147407062265051011769091253857965222471169882011981066124479655591320908571211080857865311057086367107119311021270813464518094170843257223352179786501901113083190774054066124907151652130296403871075162921571552774747973193205011056224110771395675472418236962139046336580645104313970279767320525632247141902559096321062203156661102891351511705768585272893296610210290155411479757674112648817737567139121210329010741421036791110133922302781171207505112862921261091256615290791476134770102902444135202804208711062616819046903512166870961051141171032904753990413519077390106251321875697236867791952519879113769028990121676190103111611366522891317116651321032901201812247541361432419074953942510290351216687096666090451589075714768155451471559986658659017087972809090477667490904166903524431564215113290292483371903968990390952123114456135650963414113802833526176776306193131705444385537578288253911938527025810643213051999155362121107813135037469075411064653903219064410624461786631142957321120235533211201732141740103853990653143205011017487381777111465865901708413141505622132190119559972717635285611521266790664115332090951551477811056321417581142973007142179072532661055153271473332111732059510095976191939619251909010310385392906503004144977128903619076925715910613337454416144704129290215617677615032052563203211203388110385391853527870066413210329047539904135741663007290463532190464256646525416511102229511873795158511561222597157476176747657106419590905704825295320120121904547147915710794015034412229056295731071013171594176903278747133460371521131236612811316312029619381268253661221356474239066884349113668872376416160715586065619028335215952318773811802161247124818456354764176906690787977814095454419062312167130244471451414548874166440147510511799511801133868611201679030779151321395721296576987978162317918573128906290342661251471732190317841296654877832629046647152908379035479646196708224719671390356183770822471901285708563121353051878177375106257107940231957366776170419590755775317541181125785226103853973090536962639411175024712437741754851407905611539879747177178981580106261086519093969010950103290103741526128666511199635611237909634390863220511515231130561153987918266512741750125977045141768230651142908774733111031505649813912473666415211010506631113172366110691202416784119916190901095649730747636411565121201728212044414274117450357147706818607411215491159177022621651327540111611090331877375394915908256115398791491308253415830281284563214130697106103290103911233866714210233619351218290351169377176535661664176901541977411714523845374081170141314321702158110171290136502471038539730417969701711119930571358100243585027087301201728548212314790154471021210762901784903619735037469066609090471032901824914716375588277531755332977457911371161932419024141796956324551140907527541172413293113614452629380442750905111101102311100249140311516767125137904245074173012016689431737505747110584611065645213832148907541463901047911566007471105846110656452732131329609031590152903424177652224711698820119810661244796555913209085712135777314352138741154538122473431311346451809417084325722335217978531787111012311357222964038710751629215715527747479753281213111157482591317078064510431397027971391363497413210622031566611028913515117057685852733917517790118951151029015541147975767411261023021395941865529103281773756713912121032901074142103679111013392357758268706138139597727811712075051128629212610208019023311038270687671441029024441352028042087110626168190469035121668709617981810222654871873917174060887218691740796559086510725110822264826646190773901062513218756972368677919525198791137690289901216761901031116113665211711163208859024149333131012018424461428651731029035121668709666609045158907571474961164671349928090904776674909041669035244315642151132902924836602221248439655511717505057894306193131705444385537578288253911938527025810643213051999155362121107813136035913713596032992012038096957321120235533211201732141740103853990655059614213312023510231415056221321901195599727173911527317688724401113165702418781105632141758114297300714217907253266105515327147101680490111141070187270866503004144977128903619076925715910613337454416144704129290215617677610286190719615141971615705322787006641321032904753990413574166300686135132228071222893296610280015513217674133074865030011071612574366113346054715220250950626561902833521595214241329609015534190152903429098781409545441906223220229661211914064146511634214044014751051179951180113389496457024655915112890629034266339175806140310079022315321690305475487783262904664753510214479432228175300161114412857085631213530518763645702804165451151181125785226103853973090536967481128189061328871633090401011461113115190406718651909396901095010329010374172353710511741706908105241125977045141768230651142908774785013711514770790272115141147678411991619090109564973074730114778961721511221450357147706818607411215491159177022621651327540111611090317414771356421981513082534158921577171279102336193512182903511616095166702571290531002771452384537408117014178614645323832501013411141810488144970171111993057135810024358502708312925711651152127632115110212107629017849036197776103290106150184361421637558827753175533297745791137116650300706535810901111961706295632455114090752754117241329311361441028090564012143767671251379042450741152665889515667418729099106473104131496150147750574711058461106564521383265030070616826821211665160074711058461106564527321313296090315901529034241776815677390977820126107905011913577731435213874115453812247343131636315114078565116732121635853178711101231135722631328090291776667353281213111157482591317075214913787170686317711139136349741322308446598791339175177901189511566684491896421023021395941865529103269196497162113622211204110236707901811551003577582687061381395977596510431159441894561020801902331103827068767144507967351119690179818102226548718739171740608872186917407965590865107251108222648266466919877390374511171116320885902414933313101201842446142865173188955116569031496116467134991062457810610664766022212484396555117175050578946171111312221619409111683603591371359603299201203809628216878110614112413450596142133120235102338132242250413911527317688724401113165702418488893474211130522031521364110168049011114107018727086168371324035871511301028619071961514197161570532236111601202103853920212168613513222807122146741101148418125142310258001551321767413307181109173610329636142907411765030011071612574366172952167140135108471038539903574162954715220250950622065114130990324876590140791100371424132960901553419015290342909817214166226775905369623220229661211914064146511634214016231146525120211151894964570246559151206226131136165259339175806140310079022315321690305474853510214479432228175300161114413346063645702804165451151105071522687590144527481128189061328871633090401011461113115190406717824150390967235371051174170690810524139071521759024285013711514770790272115141147181211115622290253301147789617215112212565105110847103853920217414771356421981511287420826246638113236319215771712791683209045321609516670257129053100277102657142811567837861464532383250101341114181048814481773706142132031292571165115212763211511925280412140125377610329010615018436142102296591109617561650300706535810901111961706214918014412544354010280905640121437141111171804407521526658895156674187290991064731041314961501477686522633473615665030070616826821211665127029665406146177531140815677390977820126107905011911012969061667741125163631511407856511673212163510215247161661105073157631328090291776667369951268214117067521491378717068631771164440503705723084465987913391465251207155666844918964256811171893416919649716211362221120411023670790181155100139657962122416275965104311594418945614245490627605079673511196902701872896919877390374511669678171188955116569031861147770770106245781061066471250784710381421554221216171111312221619409111681368049031262114140282168781106141124134471901127156406903381322422504123211014011012971404888934742111305220315213641102439541443905131683713240358715113023252512361116012021038539202121652108477889732155114674110114841812514231025255510516748818110917361032963614290741173437896152177907974721464181046729521671401351084710385399035741629163108471038539781472065114130990324876590140791100372063176610614132827411721416622677590536961745962315651162311465251202111514064537321861208610703156206226131136165259289125115666248903228932966102184903514858212013346098901050126105071522687590144521291060782415039096927741592131139071521759024212977390266186995401812111156222902533011254517180025651051108471038539202109675104170651128742082624663811323631101181906315116832090453214245490102657142811567836337691749015881773706142132013021611877019252804121401253151111529614010229659110961756192773158784823247796872311491801441254435401051124117502229091114111117180440752138617516332617268652263347361567989678327029665406146177531140481012969061667741125110912566904544971021524716166110507315725644210385399051699512682141170672221764121290512477909664440503705726617641225078645276103271003079014290668847293101111833914652512071551624236676522931411304926641245056811171893415511028046139657962122416278177558718670717233005401158406641218014245490627601057737567191707321463901407082701872891020773815866609017084137321894116510703798262901669678171812109077375247414307797197068611477707709761969159018452489516164324190860741661250784710381421554221217661764427509051951241032904753990419086613680490312621141401487843147606652269318201297988201304719011271564069072926241540196729630513014090232110140110129714023211010124539040910010545431262462140102439541443905131176957813118756107920222511071013171594176903211181212729046351323252512063179123872375592729058511017454065210847788973215516314672872589171062573216690140106780962555105167488222176259251713037063437896152177907974721464181046134417153210477561153988111985151261979170411631084710385397814710363151482431905045614110385396673620631766106141328274113761126676903417013122971101091431751101046140110668421741170190692174596231565110163245511409075275472403211647754969647032154114440645373218612086107031562555105167418138513245671414634631558407082891251156662489032206311427211069521231187564118354052054098661301849035116887076616754662103853990715821205965104146687429414844650519465061698901050126596510411220715214117016947470612910601331241175065390247769561153987911229277415921311343147516120317084042247015130779148129773902661869954072210847951321000511674126441570962123117310866805114070830112545171800548778414711514741481751310967510417065140190904728211470611614156061221871461011819063151998453796869311679655166619664122141113790142454902322021032208539202831456337691749015810912517103853990274411302161187704815111152961401091256690454497927731587848232477968723111669581113077971504014132108471038539781411051124117502229091125551051140907077706132904254775399052075411032907377422676660905304165213013861751633261721167130120511875641354853190666090901308319679896783361524848675781425087082893296610210226870659711683077911314634631558407084828913171712872320711095134643141113216690405461111096511306872024110912566904544971029603252474134413247351623712190412154732190774704113025644210385399051106217729316651112917157511031262903103157746661249071516521302221764121290512477909615410170634274267070746219418117136988203077911372661764122507864527610327100307901429066884729310111182785189777919902831422344237122598311642313796162423667652293141130492664124501314537155686111609540662531387915155110280462067843219669589102678177558718670717233005401158406641218026190676180261132090401351406130141575111611056144158052151144202131115333103831010327024185061087212892261287226464831215819316310577375671917073214639014070814678741225808910290526120473147411191655827916710207738158666090170841373218941165107037982629012828132706412261086680519166662031521429038710301108045158691818613174781210907737524741430779719706921789614884901779010301048190167155108791679761969159018452489516164324190860741661036315118718714781608867661764427509051951241032904753990419086669651049139121210329011385104392773466167814179647990482114828211030779110806214878431476066522693182012979882013010205677317068261663248332715962962909811030110223151951701756029277292624154019672963051301409028690470515254353248712058246513823211010124539040910010545431262462140494147262116769141109966124171921311176957813118756107920222511071013171594176903211181212729046351381773962187100441113234010717061384666321072212151206317912387237559272905851101745403741777077021632220311882082433205064463146728725891710625732166901401067809654877841471156641481787013209054037339372151651061121106301171751609517151131156140222176259251713037063391754434273419010441107140134417153210477561153988111985151261979170417467847146756165837324135466609017087913851471036315148243190504561411038539667361050191414391015154813810191513826368490331614217071376112667690341701312297110109143175110104614011066842174117019069265031947139412929627123511676908842422152197111381016324551140907527547240321164775496964703215411448177390279818909012907104668523197112555105167418138513245671414634631558407081028619067586590351061032901221806685153196206311427211069521231187564118354052054098661303143205011056424873851110307787907610385397307416651217771688707661675466210385399071756510438048931312594213814170610128211030779110806259651041466874294148446505194650616328177326511510332569013632549701464126656116759633732190148432926137359651041122071521411701694747061878316610212010730779113312411750653902477695611539879112278135526165300247901391792110874310456115398797343147516120317084042247015130779148617171661012770247901394809879157734803077915375072210847951321000511674126441570962123117310866805114070818784016066102905377978749327810613577166321427502212411270418954876911226383911642702418334108230779158078254877841471151474148175137814413440190904728211470611614156061221871467535689695998453796869311679655166619664122141113790206918410667475198791171123220210322085392028314518783775611307797109125171038539902744118710066884123298750289329661025784271556624417790791178711101247103290287151487586313925798791866653750109125669045449775556288193451611239763077972888149061345456115398791644665111669581113077971504014132108471038539781417534111115212244417309011130515315908725551051140907077706132904254775399052075411032907377422676660905304165213068486145763567110207906711071171116713012051187564135485319066609090130831961672599951173282906351111024790133111725090968122016090263623735840902631241620708290263111121051902579662780441895703615248486757814250870868486183110668179167132131742171414820138144908107024186158090141102268706597116830779113146346315584070855245319574177972891317171287232071109513464314111321669040546111109651130687202419664597027514151714184140785651167321216115102960325247413441324735162371219041215473219077470411306136321507257426280217476632363156221106217729316651112917157511031262903103157746661249071516521307512747790115138111506112161040183907916115629692611327148878227148767987911521541017063427426707074621941811713698820307791137758111016620111627211778239614285278518977791990283142234423712259831164231379631059210329055151886515801151314537155686111609540662531387915133912725666195791672067843219669589102672181381104138267211226190676180261132090401351406130141575111611056144158052151144202131115333103831010327024185061087212892261287226464831215819316375877596401507546241769025311061279151146787412258089102905261204731474111916558279167507150722728729025966874123282013898750128281327064122610866805191666620315214290387103011080451586918186131747259651068137931702190921789614884901779010301048190167155108791671871001062238666704148098750103631511871871478160886189766813805110401839079170416965104913912121032901138510439277346616781417964799048211482821103077911080622021507216788908811589053573614210205677317068261663248332715962962909811030110223151951701756029278649439015014419041823428690470515254353248712058246513818795321661017805075462417690327414661021201073077915149414726211676914110996612417192131202448373271036697987911711817739621871004411132340107170613846663210722121517566129016030151448540661021201073077915137417770770216322203118820824332050644202670861707218849716141487462111548778414711566414817870132090540373393721516510611211063011717516095171511311561401381613727047691350357471029655923391754434273419010441107140191281910392381735174678471467561658373241354666090170879138514763293315401270147506843574224971091721951206421726429664290230661029066753052491610501914143910151548138101915138263684903316142170710348950539526503194713941292962712351167690884242215219711138651301551305654561201477729054441665013208177390279818909012907104668523197119534166376102861906758659035106103290122180668515319679151667710385396371147110103632271389017688741113143205011056424873851110307787907610385397307416651217771021946612475077526165316966952888149061345457422767475651043804893131259421381417061012821103077911080623414779875812011556618081072201551079506810429986577093627883281773265115103325690136325497014641266561167596337321901484329261373799566771038539637128932966102967549311362521878316610212010730779113822748772369430768533781355261653002479013917921108743104561153987971021205571661158043979619511058017257017070186661466149921697915161717166101277024790139480987915773480307791537508135964366713220162206710016220651321669090100170130183901004158820281182199129178130590837502061878401606610290537797874932781061357716632142750221241127041895487691122638391164270241833410823077915807822091475161079501446198907507389141229327192805114403278144134341421526132307681067096753568969525912876677321907883211201290103853990712069184106674751987911711171322513178325793234213290661318109298013066915351280582957174311314163070283720618783775611307797827748421329088661843571192056647649613119671032318634714641590305908701301871006688412329875082774787446962888149061345464930766899621110811103721130511037211152110100578427155662441779079117871110124710329028715131348955515517616818390412205398081697012271206610101347586313925798791866653750799566771373735113775556288193451611239763077972888149061345456115398791644665165130195256165121801422510671090183176373511316614075341111152122444173090111305153159087315320501106677866191041167117081768486145763567110207906711071171351374773315402397330779159142167259995117328290635111102479013311172509096812201609026362373584090263124162070829026311112105190257966278044189570447661454078613290103010444166115684861831106681791671321317421714148201381449081070241861580901413035964366771551241517690656316591180701007411755245319574177978277413530779185345436321906539066674140121231513564247051591705371271922347383104251217562801381201663077914596645970275141517141841407856511673212161151513205266774881098454795129227116301110545661688563941839030779110370161363215072574262802174766323631562213134897506090183547704122011373149633623815166311512801381114141248301661941347512747790115138111506112161040183907916115629692611327148878227148767987911523206811655951101150139705230129174111758111016620111627211778239614285102121113251355611539879166803324719503098517111055724712933158042971259062164390615750104701906590156106466909111468682916461072593321103161157976629692310592103290551518865158011515018066516651430766246255131987911711339127256661957916710263149720241951902932228169356153793496186558757319879117112181381104138267211210202101325755761836649979167662961245431866791517587759640150754624176902531106127915126631766643217901417915150715072272872902596687412328201389875025812867275811101861203418299964225965106813793170219015562041110587461475095154955241745198791171118710010622386667041480987505924567258283331101231198907813310112661065902729073090159366629615051154189766813805110401839079170417815072171669091120215072167889088115890535736142300206651183137108216491131662414150041814124416188421106014021311082169382279055157864943901501441904182347041906651467762216612223921879532166101780507546241769032741466102120107307791511058451474127096133762771327216746737251484371458118051140121901213713581193511401469014687031987911711202448373271036697987911711258409665166514756451616786151732187393214123753037541981872519819073146398791171175661290160301514485406610212010730779151812150665156266124321517881493792205679209084152142171120267086170721884971614148746211125812866651321202905003130766496571989013364477182143106503701309230553113816137270476913503574710296559228245676610290242125266207054030768987912239219128191039238173511503205272103290475399041150721266659713063293315401270147506843574224971091721951206421726429664290230661029066753052491625551051162705117010066321921104973113013851130156289329661025964330272103853910121506651103489505395288388100651301551305654561201477729054441665013208532070638821113599059518232953416637686273750604774917037915166771038539637114711010363227138901768874111998423181135103264041191104102194661247507752616531696695288814906134545742276742532419012559711417293234147798758120115566180810722015510795068104299865770936278828990364780119110231142411167151799566771038539637120165090965102779619810510389675493113625210276809366971382274877236943076853314316454758426451142901441021205571661158043979619511058017257017070186661466149921697915186410936564717813596436671322016220671001622065132166909010017013018390100415882028118219912917813059083750206840770451417861373082091475161079501446198907507389141229327192805114403255629110864146177112234142152613230768106709645664412812591287667732190788321120129010385399071901883217225047215267108171322513178325793234213290661318109298013066915351280582957174311314163070283720621730909290453268763222827748421329088661843571192056647649613119671032318634714641590305908701302514090463031141957532411961937811408277478744696288814906134546493076689962111081110372113051103721115211010018440212614112066255070131348955515517616818390412205398081697012271206610101344843124932136901020417995667713737351137422954704175014147728542065130195256165121801422510671090183176373511316614012156750327907363153205011066778661910411671170817325171116190504203513747733154023973307791591422687392104014053170690111590470134447661454078613290103010444166115484444170636513730359643667715512415176906563165911807010074117134301509890142827741353077918534543632190653906667414012123151356424705159170537127192234738310425121756280138120166307791452525148701611513205266774881098454795129227116301110545661688563941839030779110370134980490227801376611010374131348975060901835477041220113731496336238151663115128013811141412483016619413486861907110614254125336513132068116559511011501397052301291741111231015441104415373113110212111325135561153987916680332471950309851711105572471293315804297125906216439061575010470190659015610646690911146868291646107259332110316115797662969214697352474416746412893296610261903554287235128186561501806651665143076624625513198791171186121066089524102631497202419519029322281693561537934961865587573198791171199810805364170610202101325755761836649979167662961245431866791511021342010453299109026631766643217901417915167156750133647258128672758111018612034182999642611019637741751556204111058746147509515495524174519879117111489035689023931213530545350901771076659245672582833311012311989078133101126610659027290730901593666296150511543191720114171323571120960750905178150721716690911103890151475246590108471038539781140300206651183137108216491131662414150041814124416188421106014021311082169382279055157123913843111513222254762024111037370419066514677622166122239210421415510196105845147412709613376277132721674673725148437145811805114012190121371358119351140146901468703198791171131211190126655657725840966516651475645161678615173218739321412375303754198187251981907314639879117118405675014114423656812150665156266124321517881493792205679209084152142171137198506781085225812866651321202905003130766496571989013364477182143106503701309230553128016150875033216510329005628245676610290242125266207054030768987912239290691903841000208155451472024314110815032052721032904753990411507212666597130907134925551051162705117010066321921104973113013851130156307591596433027210385391012150665127172628932966102242752883881002255369285320706388211135990595182322079557862737506047749170361110114899842318113510326404119110411501361201112532419012559711417293210190125116289903647801191102311424111671519785302016509096510277961981051038122124590457911027680936697955662157143164547584264511429014459628211045568641093656471710197510741706990813840770451417861373081424549063151556291108641461771122218750132789624744741136145664412811444110190171789018832172250472152671081806453092173090929045326876322233116110812396251409046303114195753241196193781140316412103296184402126141120662550701748112251964843124932136901020415364736714296422954704175014147728542061511141570138561038142288121567503279073639125989052242235325171116190504203661461311311322181156417012687392104014053170690111590470134160105944141128148444417063651375073213186387134301509890142150107351910803113869513515025251487016122086537205902959064761334980490227801376611010374118110911562221317701388686190711061425412533651314171767112113112310154411044153731131343146413425213814697352474416746416990217155370619035542872351281865650022212415186121066089524227909671909359981080536417062619041212109664121102134201045329910901128047478201696677671567501336471021524064134770111696611019637741751497269137277526148903568902393121353054535090177107661201781909287414373191720114171323571120960750905125124915534270175961038901514752465901084710385397811403415083211580132090130041123913843111513222254762024111037368418917751407015509610421415510196121651297182624724112055731211190126655657784078471519054812184056750141144236563011477896132906415237198506781085226258171191482801615087503321651032900561372406371038906919038410002081554514720243141108137619076781320509628932966102102960959061664136790713491029609590618013766110510373075911497269138322969017790791411417702717261066146453275052427521184511211655162255369222760096113192620795571723214884113047611101148185512154730790135215411150136120111531142706339116651101901251166291111477585707599778201319785301467411019030782012612212459045791252955662157315429596282110455659630090101975107417069908133874491424549063151427277218750132789624744741136134024714441101901717820722277351180645309155903541331161108123962471426465631641210329627167676748112251968827661265364736714296168140690457916151114157013856103814228875982514114056391259890522422351178851044128271036614613113113221811564170174831491417063491601059441411281596510414669217077699317380133507321318638717645490631511501073519108031138695135150927732471582474474316622086537205902959064761359651043765165718110911562221317701381302161183014601105304171767112113126582432515032090185905274713554719010413559249879734314641342521387718184113151699021715537095137961036318296594500222124151166721167511211551112279096719093556787211091713926190412121096641215808790132715213811280474782016966771777731641616617010215240641347701116962892331156135132907152149726913727752614937782225624511211000120178190928741437177212774257120241251249155342701759682390170141699130341508321158013209013004110661464541708125686416841891775140701550961623132541202411216512971826247241120557255785157552452884078471519054812181845413201210907374130114778961329064152222313210385397374126258171191484364541222668169411372406371038102152655521956361307541137619076781320509613996484354110296095906166413677261280901252055364110296095906180137661105103748812510431694114972691383229690177907914114177016145307871352804110661464532750558611166121661210367541118451121165516306711531711429016121757227600961131926326957411011484181025172321488411304740645373217916510703156185512154730790135215412063176610675060774977820575311427063391166515466822254761841512229829962911114775857075997782013113021415510196146741101903078201262170213028932966102101647161830412525212016947315429342432115159630090147318145387449557245706427277142214173402475245554020722277351657226103151155903541254181411052471426465621141122722412716767622041110783882766126811922061401681406904579153626912475982514114056885813011788510441282710132041300132070174831491417063491019473231008415965104146692170776993173801332632074129021113417645490631511244627329277324715824744743166842106710259651043765165759241951911302161183014601105308272057024502658243251503209018590527471355471901041355924987975024790591402224214798132538511509086688417649156211232155177181841131515004122241951379610363182965948483714516672116751121155111102632112066761517690323218961460315399090906656787211091713959251513719683916231791515808790132715213832113990107031981579813253851140907754717777316416166170965532214769711204469012011512892331156135132907152420921411710712083092141112225117190111775014937782225624511211000161126791361474379791601032904753990417117721277425712024151192141112514341115076790594917071032904127016214111135613722251141324325722335217918239017014169913044674169210661464541708125686414117196162313254120241220911043140130255785157552452811617890436370418184541320121090737419674126522231321038539737418112132196073243645412226681694114041322221005710215265552195636130754122014614557139964843541128522654072612809012520553641536222415748812510431694139829116216145307871352804126442116258611166121661210367541598951107730623067115317114290161217575007021449032695741101148418102584238711557406453732179165107031561671061116220631766106750607749778205761120211625466822254761841512229829978765662130214155101961131215562893296610210269714578961329064152217021302258810164716183041131041138752120169471051222429334243211517898190960706147318145124488557245706406666090361001422141753155370617152455540478371290657226103151161497254181411059065155211411227224137145716711032204111078374026815910871621757811922061408002415668486735536269124254954195905914088581309811450121103873132041300132070127032041106845616551610194732310084199020811654090869339971263207412902111343305670638814610641184124462732221149144127809641461771122842106710282110786120715559241951913355314212619827205702450304104241110826211371032340502479059140222421479813253851150908668841764915621123215512704611011101405004122241300711202118461384837145264901151667714010263211206676151769032321896146031539909090669567837119059251513719683916231791512649011598038232114032113990107031981579813253851140907754795678371190751122965532214769711204469012011517401185690581219155342524209214117107120830921411122251171901117750460680821161425271611267913614743797916010329047539904171956783711905119214111251434111507679059491707103290412701621411113561372225114132432572233521791264901159803823211404467416929835501122411719633686112070252527209150421822091104314013050172311321139011595114211617890436370415327549010052669674126530882875535187336528112132196073214485025010720582511131404132222100574505701461422201461455795678371190128522654015793751582411315534252536222415726490115980382321140398291162983451461122264421162270159453132102155342525989511077306252090707701759016550070214490983728762996140842387115579567838931762408951202221401671061116280077322714514061120211629567838937876566226490115980382321140113121556981406311414010269714578961329064152744941301147756465729225882409021890411079081036213104113877801231082024110512224293237108144122789819096070624720173165167321244883368619037451406666090361003601008136511028290136565315537061713067863205052478371290325982432292471614972649011544210714090651552409019132056289329661027092381300563714571671103261454906315174026815910871621757744100124194214908002415668486735329254954195905914038214098114501211038731937302703204110684561655169414599020811654090869339971123377431330567063881461064118412854013022114914412780964146177112213988235614882110786120715513990141632335531421261913912673720294164304104241110826211371032340152882103827046110111014013311017171119630071120211846133062717064726490115166771401173263429395678371190932241901937302649011598038232114025190244908573695678371190751122117326342937401185690581219155342521333208731202460680821161425271173263429395678371190601301243264901159803823211401073318091089835501122117326342933368611207025252720915042183311031368135017231132113901159511421173263429353275490100526619324190822241413088287553518733652117326342931448502501072058251113131116905045057014614229995706222141289567837119011732634293157937515824113155342523519011565010385399090106264901159803823211401173263429398345146112271216901390270159453132102155342521173263429352090707701759016515232128631918103853931190123751980511488461011983728762996140117326342939567838931762408951202221401191111125251901207171300800773227145140117326342939567838931112155511428517822649011598038232114011732634293981406311414054371117571201013184674494130114775646572911732634293240902189041107908103621831901396158370360780123108202411173263429323710814412237087324419871024720173165167325198686816133686190374511173263429336010081365110282901365650420718168112630678632050521173263429332598243229247182110826490115442107140117326342932409019132056664181136709238130056117326342932614549063151671115090136744100124194214901173263429328932966102555446976390785801105303291173263429338214054371771116147032079214519373011732634293941453315481261233774311173263429312854013015132151213513988235614811732634293139901416325041069613912673720294164117326342931528821038541133110171711196117326342933062717064719021811361173263429311732634293932241901937302976861111362519024490857361173263429311732634293119121114513332087312021173263429311732634293682908372146013012431173263429310733180910854371771116147011732634293117326342933311031368131193881600560110530117326342931173263429319324190822241412999571022210162311732634293213576702131116905072861210029995706222141283561486117326342932041032603702351901156501038539909010663674681173263429359318551712169013901036195161173263429317610241176182152321286319181038539311901237519805114884610114171024141710811732634293250256119111112525190120717130042967117326342932014549011121555114285178212890535117326342938929017654371117571201013184690746011011732634293633116530183190139615837036073091155105117326342931709087320323708732441987102033712623031519868681611276811171173263429377181219845042071816811261302201173263429319710359218211082067843211173263429395237103796236316641811361321321413211732634293141102411411086711150901361450264901173263429390053555446976390785801105309493611732634293128575437177111614703207921457351171173263429321137230313315481264015861173263429336245852151321512135225289117326342936052735041069614113211732634293128905355418929054111732634293402102414021081902181136104146901173263429310490936297686111136270372073111732634293780750132789611912111451051589110356841173263429370453101860477491712202846829083721412468117326342938981285113054371771116147018656551412451173263429384991817111540119388160056011053015390503901371173263429398962172999571022210162312990115639289329661028650263921357670295561327067286121006501478411083561486546417322041032603702818108411191492636746827010847477122355108593185515963141904766328651110103619516137614778387580140176102411761821164417324171024141710836510841738492250256561145059189361364296713665220145490350108321289053595874182732892901762141084112890539492907460110976147915936136633116530662441282732730911551054871084190979249217090873203226651813251601082033712623031105122210315012768111713021920111177181219841020596362306213022027038156197103592166423902067843213413211531952371037962363123220290497132132141321554915537891411024114110811781113675651450264902151432702147900531606778497949367483110615046303114128571641210510511477351172555105173521137230314339071511224015861704592752943624585214110290715148225289141102905021160527392285390715148141132989016712890535615418929054120110841706514021024140210810512221031501041469010912517103853990416570104909363143205011017466381038539903527037207311503205217991143838681178075013278963025964372510416117017962834714290974796813471032904341150601110477540524659010385397307411110515891103568427867366471038539903570453101860477491712202843311103150171019028755287901014912468232204752441509887195127016381244307689889812851130196510517111301110264533150333685523190471865655141245258326626657287411402909034634128111097741118499181711154081259643721596680575447690238791902121011675375191329023190150486311038539751716610290637329047153905039013727020441351046119110166111074170190989621710511241175096695288814906134548756315570623011505742276105612990115639804137901117284956753526810710822576182772811403169061212089882070935814656865026391437681266662411441813316661049113825197016642138170120711669556132706371781371528210830779190379915013163116765014784110829713573618364076155120132904544148119337139908747669501831370519882061715464173265619044390631044527610323866511488181084111914922702048175961119110166111467232551270108474771223551089210267465735307797307249752471243572914567301689879759631419047663286511101437511329655471063669013313187738379659865404116862854045833276151059079109901127122128778471029655921481376147783875801401051941706723219043166910750301689882047510381421090107664262901325411701164417322806611075051259511329042390322519037103290147909441365108417384928861071502031724624369537541411104689156114505918936136931091116613144696665142313698791136652941166651104530135590661861712473186395571452021421861454541551454963413421343501083229713573644921546094135690160265653421409587418273229713573624913598791542687108282121661057141432155479414892792592864847911389016012547329053152247343747110241540214108411289053949225812867290129677962579011965390190476303104665089879117119761479159361361051941706723219043166169415766910903201103703245436150716624412827323021806651676180726641113622904584411366617010448710841909792492128618666572201679031123210213582324925149255411669015011727912665181325160108812596437271432790512511329030789813871146540166901172797105122210315081773427662245630768533750181520201549701705125113290973565221177017013021920111110577342746341213911017790791422614293076679791511020596362306231932050110721276610514743197124666275627038156150320526651187561474311754078416115511327213775090653717011327053731811321036699086411032904753990411506651600711664239037115219298115186436683367236902086674870434440708327616168574526125627114654010012062791416007134132115319644674166514553235467327616168574861111904702987911711232202904972235766611666753323211048106987911054019010092155491553789812596437260817141479715098791663604453651407089066158236165905559014070298791171111781113675652581286661314147013122190810750199120246223132750470298791171121514327021475964381272307661036441415723817066409587707815951202462551519221606778497206517531101901353715045411556618021474437914160071748311061504630311420678417196319774756675164121051051147105773155661021201815814717082555105173569196452821026732166908737123165146080433907151122810459632320110961429018461352641246662756170459275294948454011751324011767669202374011551175141102907151488229067307667979151141102905021194116665130652111366422922853907151482454566175132661767125101316566101096695288814906134546959521666133183904226710257703710975978423076613907783293681621474073198901671091251710329047539904165706154132547117602273172463868303183908864877051890665276690199606969638205114404153967260904543690307791804741112011084170651282773837908196908477515566422517310512221031502043186613166411963076640898750289329661023326636683313311015610727959061941109125171038539904165703143205011072321901102951096610622337640901155301211353011106692473143205011017466381038539903520431866516651454312511647139132746247150110362458631301335921849834374636214534136903011106692411503205217991143838681128245673076641210646690911146812926090811791340451302596437251041611701796283471429097479681347103290434115060111047754052465901038539730741112454514719530811696786477142236110778414811734590733786209907617790139236425797278673664710385399035258296712539882010311899050337135219791745811281253202121902179733111031501710190287552879010149809963197253097657814150139371709331244904543690307791733202238791416007123220475244150988719512701638124430768984063154023912639196451315439615586931811901965105171113011102645331503336855231904725131146987506690345902123055212583266266572874114029090346341281110977411126631146987507101891245153181071082072179071933109032124657318125964372159668057544769023879190212101167537519132902319015048631103853975171661029063732904781773812863980831317790791590270204413510461191101661110741701902322026668261110222611313001513012221317014015901051124117509669528881490613454875631557062301150574227610561062217569669528290976191518041379011172849567535268107108225761827728114031690612120898820709358146565964381266516651410345444119015866650898791171114376812666624114418133166610491138251970166421381701207116632845672362376611781148337371781371528210830779190379915013163116718545891028910828210248631297135736183640761551201329045441481193371399087476695018313705198820617176617517110586034566691590605972646351103827061393665619044390631044527610323866511482893291135210431411132363174166112702048175961119110166111467232551586111661216932371251761671622011211132363174166119210267465735307797307249752471243572914567301689879710912517103853990413580159143353672447626611143751132965547106366901331318773837965986540411686285404583327615105907910990112712212877847102965592148133778301841501959659147113143141588886716145114201129014124351051262685035178327869139907443307110888658658146902107319879117111051941706723219043166910750301689882047510381421090107664262901325411707563623109592701019486909375651280661107505125951132904239032251903710329014790944130259643721222101875610237310660808861071502031724624369537541411104689137167104675071302533209066905091475018214825913632236850341881850117128113136235166609053287150213522211387011157972599012372904711049310911166131446966651423136987911091254517125381128730782053555431253941166651104530135590661861712473186395571452021421861454541551454963413421349310911166131446968329366219711201237213590711342971357364492154609413569016026565342140258128672314725513552579168122113516614029713573624913598791542687108282121661057141432155479414892792592864847911389016012547329053152247343747110241540300206651865826535127590879769590607707911206612631258128672901296779625790119653901904763031046650898791171110584514749196487518651101119275908769590597791120661269210519417067232190431661694157669109032011037032454361507178150721227866687902384114467141105338202527372659127025395117062372384145885104453775385531332417341115376411311591416664065056874702987911711289329661021927491741665142384157063110779148869333241789032054157302180665167618072664111362290458441136661701042581286665166851747218396902503729580627554604713797590371273742037321685803151110163568347029317111286186665722016790311232102135823249251492554116690150117279133910290332806183790871041556618021478433198791171181259643727143279051251132903078981387114654016690117279710912517103290475399041657081773427662245630768533750181520201549701705125113290973565221177017063631415927098791171110577342746341213911017790791422614293076679791516363141543516612454122231932050110721276610514743197124666275642611311617110790597791206651150320526651187561474311754078416115511327213775090653717011327053731811321036699086411032904753990411506651600713321772931721836610091015151101662966159611012227014611181116131707371152192981151864366833672369020866748704344407083276161685745261256271146540100120627914160071102268706138496591515310686904212985496439024627123510166296613126211290531501317079644674166514553235467327616168574861111904702987911711106217729317216341941775366110691130971962235766611666753323211048106987911054019010092388225422614807214066256146280812596437260817141479715098791663604453651407089066158236165905559014070298791171164722542559511011501397052301291741112581286661314147013122190810750199120246223132750470298791171181773905236091109535987911711596438127230766103644141572381706640958770781595120246255151922596510519081079025714066102904753076855220651753110190135371504541155661802147443791416007110511247501244549026177288814906134547108189012902067841719631977475667522750831249466903404728171057731556610212018158147170811661881251109879114610570631262901055716634210831213166413529034529053150131616634283987911711691964528210267321669087371231651460801091252011211032904753990416580810459632320110961429018461352641246662756102861120132907857110454201984171554461352971429057274111948454011751324011767669202374011551175109125174715571135867822906730766797915110519417067232190431669107509411666513065211136642210621772931726641472979117757072343882805901007054064385791570245456617513266176712510131656610109669528881490613454695952166613318390422671025770371097597842307661390778329368162147407312555105147757714260906558111557511779117111302893296610210641507270544438561371091251710329047539904165705965104321235210431414166054024113695736741477511303254711760227317246386830318390886487705189066527669019960696963820511440415396726090454369030779180474111596510519081079011391366920412181495690186707029879117112827738379081969084775155664225173574190731669346691090141610329010381571310782204318661316641196307664089875039981072640967290810661244113015265247938427609208708332663668331331101561072795906194180936251319723317115072663267135913835834702314320501107232190110295109661062233764090115530121135301110669247206784171966610212018158147170820431866516651454312511647139132746247150110362458631301335921849834374636214534136903011106692412513112518311016130754098987502824567307664121064669091114681292609081179134045117261665761034111451551135013615990211621157015357150495656708245451471953081169678647714223611077841481173459073378620990761779013923642579777851160662321436629690175050875140708258296712539882010311899050337135219791745811281253202121902179733217729316651756612908075214070417521411557780996319725309765781415013937170933124490454369030779173320223879141600712513136210610385396687194741866296124901106373120279145406315402391263919645131543961558693181190206313621062623371137176296109893140413249020225131146987506690345902123055219484514775019096669201201023713849531987911711266311469875071018912451531810710820721790719331090321246573122090772753123441126167202226477734215113290418419024481773812863980831317790791590596438127240147021916681686232202666826111022261131300151301222131701401590314320501101783411213510329047539904165801062217569669528290976191513025964372136156301230790741115964381266516651410345444119015866650898791171137152356199362141103853973032845672362376611781148337331110315072606477164115610385399041150185458910289108282102486318177381286398881329030779153471717661751711058603456669159060597264635110382706139366210607266152744938712650321849633585647158750289329113521043141113236317416611280661107565804353854010522184213058980513077911175861116612169323712517616716220112111323631741661181259643721397412933076817810912517103853990413580159143353672447626611105112475089669528881490613454655486125310130156681069614845675014486183562893296610237178966952821026746573530779713377830184150195965914711314314158888671614511420112901412435105126268503517832786913990744330711088865865814690210731987911711150320527213719681069666753321479094417563623109592701019486909375651133106434711017288613132710366103302596437212221018756102373106608022357666116113236316637167104675071302533209066905091475018214825913632236850341881850117128113136235166609053287150213522211387011157972599012372904711042581286661311693591557571040908110878905198791171110912545171253811287307820535554312531020204129725351081389293109111661314469683293662197112012372135907113424545147195308116962818112441031849804166588258128672314725513552579168122113516614088526729012969096611911016615075130020665186582653512759087976959060770791120661263110912535210431411058451474919648751865110111927590876959059779112066126922427507652266130614311959701846622484966622456107396471513286337473901264312626651411011255928015257970293171178150721227866687902384114467141105338202527372659127025395117062372384145885104453775385531332417341115376411311591416664065056874702987911711844351136651096832936810671907986790653461641501047163233984427398262891082782192749174166514238415706311077914886933324178903205415730532080661031042461033665175916611046696480315189032825812866651668517472183969025037295806275546047137975903712737420373216858031511101635683470293171127124690351136651096133930518911144486870885061036609104351181908899013088339102903328061837908710415566180214784331987911711205351026486125310665109610193662417502893296610281135161011715739812265426554290112113113393041816531878438705716513471462377390570518901921091251710329047539904165702713307666173408413219166140316640781350312115304965359013570627063631415927098791171127177483531972208301208241120870315908763631415435166124541222861247178772473912814261131161711079059779120665192110166881049879167471166588319774756675332177293172183661009101515110166296615961101222701461118111613170730835661191048966952888149061345464913015668106962874114029056115398791843503664121704462971022687061384965915153106869042129854964390246271235101662966131262112905315013170714132052191046657314320501106651577117272497625103296508132730741661062177293172163419417753661106911309719625812867238144118125066394164870931711388225422614807214066256146280109181171377216244390661080104647225425595110115013970523012917411184318111313170674905317591518721201077877350115661117745315152323872419326170781773905236091109535987911711111575076143227135251821166131115150757199149018466418095159651051908107902571406610290475307685522319134804788149525375711608111951512095120714010511247501244549026177288814906134547108189012903124125228641662263130919311061162541421222521122511079879117112275083124946690340472817596510414669287177731307791171111661881251109879114610570631262901055716634210831213166413529034529053150131616634283987911711314320501107181128730781481253202155706215030111598797936662731562888149061345471054118031051262140155413664141598791171128932966102371789899155193736833213931711109125201121103290475399041658072611028263614632166901661071150117818912890136808472456486464230782057166100210286112013290785711045420198417155446135297142905727411110621779011915140690119899041314440532025317014066429882057166100810912517471557113586764290477433208493600265909586128954944136145329610519417067232190431669107503143205011017121217416231062177293172664147297911775707234388280590100705406438579157013171251714111971138614777307412555105147757714260906558111557511779117111302959061035323354887903297309061041113508132730741106415072705444385613727817672323611926803232745405965104321235210431414166054024113695736741477511303717737553244025016615396142681405965105190810790113913669204121814956901867070298791171137178987732493078265741907316693466910901416103290103815713107826862141636177961387023998107264096729081066124411301526524793842760920870896047171106313689961419119419045742528932966102232861903249151320906687411878539606510442138809362513197233171150726632671359138358347023711029071412507220713614420678417196661021201815814717083711322497998382513112518311016130754098987502322101325751045247966791511726166576103411145155113501361599021162115701535715049565670833111031505672167196274778511606623214366296901750508751407088431601773090150323321772931665175661290807521407041752141155775875231290631199042876710329010374111251313621061038539668719474186629612490110637312027914564615782103262750511429090532206313621062623371137176296109893140413249020296011073610217030051142909053141948451477501909666920120102371384953198791171128071190177907917221402209077275312344112616720222647773421511329041841902443023205256329321854196857223125041217775964381272401470219166816861406903238851329609041090571174170691289329661023424769040323121215137774170691314320501101783411213510329047539904165806503001107736091201911063360171302596437213615630123079074111976411711373312019010941274111130371523561993621411038539730964521032909617411113033111031507260647716411561038539904115025551051111706450208817738128639888132903077915347171102960529866124171921306210607266152744938712650321849633585647158750530751074170614630779120480122212151280661107565804353854010522184213058980513077911178177390392223170299712096661165165213081259643721397412933076817810286190119073650712179232911130105112475089669528881490613454655486125310130156681069614845675014486183561705348117012071071015165213037178966952821026746573530779733547207501503205272137196810696667533214790944115122216745141133106434711017288613132710366103186121023550572235766611611323631661020730140772581286661311693591557571040908110878905198791171136483210202041297253510813892607832454514719530811696281811244103184980416658854214117107120830921411122251885267290129690966119110166150751853479111109125352104314120545936172893296610210511950479372427507652266130614311959701846622484966622456107396471513286337473901264312626651411011255928015257970293171114235153844351136651096832936810671907986790653461641501047163233984427398262891082782551514870161305320806610310424610336651759166110466964803151890328107750765002712469035113665109613393051891114448687088506103660910435118190889901308811871701715120535102648612531066510961019366241750128281131463115840702811351610117157398122654265542901121131133930418165318784387057165134714623773905705189019288611021527133076661734084132191661403166407813503121153049653590135706270200426208701891028961134522717748353197220830120824112087031590871076378612471787724739128115751222901001161709211016688104987916747116658831977475667539158130835661191048966952888149061345464913015668106962874114029056115398791843503664121704462972005421413205219104665731432050110665157711727249762510329650813273074166391510517681101012512893296610215475127725812867238144118125066394164870931711180170877003151109181171377216244390661080104365212110101784318111313170674905317591518721201077877350115661117745315152323872419326170791752138213151111575076143227135251821166131115150757199149018466418095135010832231913480478814952537571160811195151209512071405266790131711211313124125228641662263130919311061162541421222521122511079879117111031715225312113859651041466928717773130779117115438721109172133143205011071811287307814812532021557062150301115987979366627315628881490613454710541180310512621401554136641415987911711107071529711138371789899155193736833213931711125925341529681197512531407261102826361463216690166107115011781891289013680847245648646423078205716610022067836223837809804770106217790119151406901198990413144405320253170140664298820571661008201454247124660516429047743320849360026590958612895494413614532963942612342893296610252411090413143205011017121217416237209542390411317125171411197113861477730741126671959051295906103532335488790329730906104111350813273074152471905118756411038161102904127817672323611926803232745401277525613537177375532440250166153961426814025578515785285317541371789877324930782661511110441146161120410566862141636177961387021875110441140781107357503399769604717110631368996141911941904574252063151890822553708732961040232861903249151320906687411878539606510442138500445175873711029071412507220713614472612809012520553641371132249799838488125104316941232210132575104524796679151100617657014451214703722298373331110315056721671962748261731478220790165630516784316017730901503222090188207492587523129063119904287671032901037411117956208951177713412533077913557646157821032627505114290905322619203211479601107361021703005114290905314114528071190177907917221401454130232052563293218541968572231250412177714541226471406903238851329609041090571174170691409815501122342476904032312121513777417069110581435501226503001107736091201911063360171486580220143754897641171137331201901094127411113062268082116370961776901155261271132155866964521032909617411113011890756101152555105111170645020865898413796406201029605298661241719213021813061426247296247530751074170614630779120480122212151250901898210197152817739039222317029971209666116516521309275149213259018910286190119073650712179232911130247353279073078217053481170120710710151652130242950573103248428932966102213576846335472075027766951428571512221674514160676623122257094221110127186121023550576961501090311526766102073014077438318522261174284179012236483286171611400616078310163859091542141171071208309214111222511165890853479111702012054593617677839061143765165710511950479374384077050011226378428417904814235153864120576551514870161947471446111077507650086130106141118717017151165130551282811314631158407021121131188611021513192540200426208701891028961134522029721889761859054010763710516810631715615751222901001161702111201108183739158198628735180200542115090321203739151051768110101251707326631154751277748432011111801708770031517483147365212110101727029616656917521382131515524117157113811473501083213764117176138375266790131711211312322029049710317152253121138179872161536425438721109172131439513821070715297111384979526054012592534152968119751253140791251390150121206783622383780980477066013556220145424712466051822150512205839426123439211030362524110904120113862720954239041105122210315012667195905117777510191524719051187564110381611029041155351004211277525613534571066902557851578528531754111511176035071569046251137673615111104411461611204105684293373187511044114078110735750339976872719620631518908225537087329610403132625004451758712614247656726128090125205536411766748248812510431694199981013710061765701445121470372229837369766773905043631420403826173147822079016563051676225122209018820749242744162117956208951177713412533077913557785401241032909626192032114794057512893296610237613314545220790480145411671191454122647112730193514098155011228753110570210581435501221678411057084865802201437548251326226808211637096177690115526127113215586611156611045791118907561011518610812390797658984137964062033116121813061426247296247955826079725090189821019715257624777390457979275149213259018913712102477735124735327907307821045364457972429505731032484176121017614749041763110322135768461624514775021714131702776695142857327130568457976067662312225709422111012720775845797696150109031152676610555661104579743831852226117428417901223564549067861716114006118415230779115110163859091137402126141120116589017058644511352515013070201206818265251677839061143765165739152128067220420111143840770500112263784284179048270108471358118651110864120576146741101148418125142310259474714461195214241116332540908695686130106141146787418775073575033997616513055817734665113290166951511514165342521121131110296090611461113113192540152518668451202972188976185905405965103681631147026634511503441882818909012901051681063171562637115648061202131211120110818374823295661509862873518068569630455817747979020911075171052591671150903212037210525615407073266314637586775551615407484320111112827156262174861074831474461701423002702961665625890119454901191188012455241171571138114730865659319041137641171761383721879011023220290497113508132667301106077117987216153642265431109257145371109143951382454103290513724979526054080687996154540791251390150121731032901037266013556288939654782215051220588623251762670904862269620264131392110303622242612732011386231719215163713837111350374961350311441051222103150862321062411377318381102893296610234366609075241502527221308107581177775101912163929010321101300312026413715535100421302285325137978471345517134571066906043210624113757426213742263412687401281202115111760350715690462511376737635222152218849033057156412513084293373142555708671725354129872719641371061701412537511623132623196611020614671621261424765672366110901425368051100158176674823061438490236842142902347162999810137146658280511440619571026976677390504363142040331431926948015014218158622512295309351782580170230215962247158427441621505247472064110329092215501264315878540124103290961093207175060972169158940575120813586103290661308051100158376133306376636911112091061707925022171584522079048050561514713117025797257915816711920128158257481127301935111055129735511060936578753110570216577412520792012010809695655167841105708146611048111165139572513237115142329566761417162111566110457911475213721281921301861081239079750537100190913161130331161483659088613669028380611309558260797896695982513513130766170967036690103432576247773904579779137342951903461464120870241813712102477735146212351134153641313215511301045364457971410171101115111104314117612101761474904176311032295715962962901201362969014119032162451477502171413170793205011589432524769210401045118032713056845797148171120775845797171321011401055566110457971719524172253564549067104138263611511718415230779115164113713025052137402126141120141153263051510136651170586445113525150130567128790505120681826525184346838222101927391521280672204201111671786113236311279671202270108471358118651110842092602024111029914674110114841812514231025171126196478599669521424111633254090869566810395511467874187750735750339976827801095701127289329661028653367477731032683568177346651132901669515115141653425229740641342611703112971013425210296090611461113149130214373274062501525186684513131221135774051956190596510368163114702663451150344188281890901290227857173791422637115648061202131103207411701311170132571051482329566150258128666516617542051017811116612441881090281551471191101661114644141571649567041398661029059786366910901468103290106886310501501465114038290670413981704835098051140293101314721307919011110412311011040906554671150222516856963045581774797902091107517105259167775171121052561540103114046375867755516154030222812827156262174861029453944617014230028924725890119454901191188012415805403730865659319041373258218790110388903507821135081326673011060771340567668302654311092571453711092801210392110454103290513722911309696080687996154540957235509731032901037231611888939654746035455862325176267090486226962026413122511295402242612731354937156513171921516371383711135037496135031144171371862321062411377318381103103005634366609075241502527221308107581304110610216392901032110130031202641373041105305403022853251379784713455171115054060432106241137574262137422634126874012812022681325402893296610268920754076352221522188490330571564125130716268327065121114255570867172535412953313632706514137106170141253751162360196319661102061467162360412264772366110901425368051100158130037512313061438490236842142902347162562501466582805114406195710257053511631431926948015014218158562930321547113222263150473219035321906684077057170866206742394104018390791182229454414791613371039879132454414791660307820535325191544710632282102154472953093517825801702302159622471583775150524747206411032909221550126431582077011071093207175060972169158341702137208135861032906613080511001582535357306376636911112091061707925022171585629615056151471311702579725791581211755451150311120201281582574827048243190501105512973551106093657141102321657741252079201201080969565556745490146611048111165139573741203711514232956676141716236090170411475213721281921302519070701385053710019091316113021116970764836590886136690283806113015021101456778966959825135131307661709670366901034329558772777913734295190346146412087024182014534184621235113415364131321551130542456645121141017110111511110431411170135612075121295715962962901201362969014119032835248116793205011589432524769210401045118037190680289329661025951794265113525150224321481711837747313251171321011401325565117195241722592531117010413826361151171356425473611663215132986476411371302505218758201311411532630515101366511132232013756712879050511016163811938184346838222101927108126511103654267178611323631127967120287323193224328420926020241110299187566210117112619647859966323302782681039551371746827801095701127377431119865336747773103268356351617661931462974064134261170311297101342522133151491302143732740625083176622241313122113577405195619080714443766193632278571737914230719511019332103207411701311170132571051102614142258128666516617542051017811116612441881090281551471191101661114644141571649567041398661029059786366910901468103290106886310501501465114038290670413981704835098051140293101314721307919011110412311011040906554671150222517533161762831289329661023621181615177517113565533577821031140681615154030222814046632512945398371362289247105676620158054037115620841373258268766263889035078238681905113503405676683074214327025128012103921103019014629113096960412569569572355091941929173161182327662224146035455130371941112251129540452722106135493715651469414170754017137112750473103005612750475403041106107463051193813041105305401101009014430711150540156810205715402681325405989511079518368920754048738511103077501017162683270651211967321807024090681931104113553313632706513031812394973451449019378152360196307485224213375523604122647347106918142152652130037512313085771819056843551562506943556677851213157053511672050571577539831525629303215471132222631504732190353219066840770571708662067423941040183907911822294544147916133710398791324544147916603078205353251915447106322821021544727846718115110151191377515273721150264316644229922077011075601395725390731523417021374731055182877505006623225353574255829943625629614633740196266312631109653012117554511503111201171201116696715576270482431905051847136885906815510614110232715316885905175674549010357718296232374120193510961313609017041797735156567027309115511125190707013823397171611540611708211169707622150424721288590268517691600174513156150211014567756720077219071706519558772774983821301381085220145341830775421354793722298373542456645121138227222101927117013561207512156718135148101968352481166415726297214076525137190680447617873617083063658261085951794265113525150224321032074117013111701325710518377473132517915171665166321513276747132556518277475751068653903219064492531117035176813564254736116632151329864724175328932966102551989187582013138189311322320137921692101616381193819517971108126511103654220753692873231932243250913078218756621016831427083233027825906770837174690132170837743111943456413516176619314623186213315123156412264783176622241882766468071444376619363128105713071951101933289256754010261414237623077075331617628318827664636211816151105519084071356553357782120501902396816151540186304411404663251392240435837136288276646105676620502103215371115620841455302687662668251288134227796160386819051135088276646742143270251117875104141197301901463721031710930411974125695668901070379703119419291744170265057232766222413704747613037194111882766464527221062253156706469414170754015167576637127504788276646127504754013422423156706746305119381170349071131110100901443071882766461568102057154014296190631515989511079518377181118487385111030775010159651043765165728932966102249707705296732180702409068193110411358827664630318123949734514490193781523391111719235730748522421337552882766463471069181421526523563129875140708308577181905684355188276646694355667785121311628152293720505715775398315256711027846718115110151191105184120527372115026431664422992120695457415601395725390731522665147310551828775050066232266515404255829943625110321537146337401962663126311096530413731171201116696715576198475184713688590681551064641561607153168859051794101160103577182962324122871601935109613131013324611979773515656702730911551111626516023397171611540611708508518329014522150424721288590268517691600174513156460117883567200772190717065119346049838213013810852552712315651307754213547937222983739293732790740561382272221019271355114289456718135148101962645516767664157262972140765251336471985144761787361708306365826108441130103207411701311170132571051113965937915171665166321513276747504372079687231827747575106865390321906441168993228932966102188213517687226931789624175372446573555198942416532056381893774321311608939216921296605195179711311232075369260510550913078211188683142708724371037962363159067708729022290219013217086139515631329108471038539202434564110013732935751903255631171143245156562318644207411701311170139877502315641226476044705001133215220544412811160563137741062528827664613015661281057136079889256754071509376230770163675882766462427581055190840713206835612050190239321878186304419576613839224043597630088276646325903405320250210321537185510127170345530866225702450138682512881342277961602421515172882766463044578211787510414119711652242235372103171093041197252354420761701689010703797031101956406417084417026505743751415035210370474761390222414688276646263472872253156706176802151675766371502075408827664614558813422423156706142262522111703490711318483710166138688276646920120307750905114296190631515914241731305492771811181531263505965104376516578158107613162497077052197507610388827664632357968043391111719235726873882766462589051235631298751407082638641478288276646140411931330561628152293220120926152893296610210199012256711096557071051841208815921311206954574152120221712071816819048266518815891312665154030762167120177511032153719279045113041373502222411984791790990451924641561608157385325497027256116941011604521324122871601521951310133246119471352444716265160961685930750851832901451521904246011788350435531193460473213047552712315651150349048929373279074056920171355114289444512553126455167676132557513364719851925311170441130305178901139659325940150437207968723134527116899324072611882130641193530722693178967353201190724465735389735144904241653205627513354077432131160893388447540129660515563117025401311232464191071516051051254119312701118893821455272437103796236314011032551540729022290211196584613951563132910847103853920290912910013732935751903255631171143245156566874804420741170131117013987750103312960447050011332152205444128111605631377410625210117289329661022589051213015667274147823607986169028129056715092452163675735122427581075351766135251803206835638576620321878100783495766138120711676626976300705711325903405320231933645678551012717036264317028662257024501386751307082421515172670677083044578250960270811652242235908351708252354420761701663242708101956406417084162277084375141503521050010270813902224146930752132634728795020970817680272914270815020754073092708145588518897081422625221114094119054084837101661386743201111920120307750905116124159142417313054922607021071531263505907021378158107613162702961665619750761038120601710124111710323579680410154012026873151161472589051213321420614026386414782912104311011471404119313305625337013811472201209261511631411019901222619203211519655707620511503111208815921312322026632151327674752120221712071816819048740142702881589131155180708307621671201776832427089279045113011723397085022224112075444119054091790990451923012241220411931711815738532549702725611620416775074128932966102242311413011190452132971178325115219511079170574713524447483262961685930763641206152190421701204355150435531611203155747321304795561921503490481075126454792017955641226474451255319556412264154013255751657662783212201904903156925311170329463051789061214211045970279125940192611471027083452767496679603240726110208630641193530232232142156567353201190123120315423515138973514490123412264727513354038642338844754088276646556311702540955878879124641910715155151450327732471254119312701282811314631158407029382145521487841183110251325140110325515401457662471209651119658492157965409091291178751074170614154068748017012043542351511033129166412264710117386423258905124293247274147821701204355161690281290561216263110245220110556590750735121086318902261075351766135251807187117509612010463857662056090621007834429851213112071167662689498791907825179151705711151447247708319336456716519081411907082893296610291752511382527086264317021049155298476751307088943329098791167670677081216263110509602708246784133250835908351708851142702663242708514238115741622770844410327085001027081436964153793075213514238115795020970826633222413371193171172914270811742841790122730927082817281226518897085074141198140941190540111021742841790487432011117099022616124134114626070210750741907156590702137224805195056270296166563037712075142120601710124111710513201111101540120166471071511614756170237713321420614011112011270291210431101147162317512125337013811471333138215531070811631417883077913226192032115114243141726205115031112081775627232202663215132767471861210204755611539879132289329661022421101148740142702157931551807083613166832427086461025301172339708147110128212075444119054018011645701301224122041193171131522924641110512041677507419312568113513213519747242311413011190319320501107210385399035741971178325134977381987731554257054057422753779151107917057263124750288814906134547556115398791514832623482223115163641206100261156170120435515113171761120315578860170695561922247118110751264547945224223595564122647556406955641226415401132903077913265766278321220190490315667262907228932966102573511132329461034449061214211045970279134714892611471027083414122647674966796032634124102086989116711905051232232142156567308019312701231203154235151185519073012341226476501536290813386423335278110568827664650244256955878879134137111903512155151450327732473041101148128281131463115840702195110110381487841183110251325120016656145766247120965175114792157965403510096117875107417061415403541170120435423515122112139215516641226471422221017038642315673074142932499304747170120435513518047471216263110251511188201105565907505201114401086318902267004723915056663114132718711750961201046340346560906296160051100042985121319209099089498791907825179151442477151447247708263282140741165190814119070838379645631540917525113825270843790119104104915529847210207101926894332909879116796551162321216263110119810843246784133250835782091207065128932966102122259178851142702134752242235514238115797676620444103270814814614369641537642525305142381157661309057026633222413371193171110809032120751001174284179012279901070371603128172812261667662050741411981016176111021742841790481165890709902261046965703134114621913096507419071564014609622480519505692736303771207514230139751320111110532261664710711301106441121611256170237775011014247111120112702542110674716231751214771101032471333138215531070896045192100078830779132351155490142431417230644690328177562725480466867186121020475561153987913259925128932966102116161515402421101148320157935707736131664348764610253027070210714711012822117402007509035180116457017722218011060071315229246411105114611012419312568113513213519747689057674070441319320501107210385399035741449211379155634977381987731554257054057422753779151443710412263124750288814906134547556115398791516890101679134822231151176968081002611567737522215517251131717398222518860170631121222617134620743941702193122224711811072122263121153844394170248945224223549171631325155640621112011012653711329030779132715211325136726290724411102472573511132252510324247025110344490171171127222202893296610296135671931330766100766293471484595445001114634141226471377878231846634124136126163798911671190505118522141711730801931270105510162224128418551907308790725650153629081346365133527811056677082013150244256677083845734137111903512140474730411011482690193781134195110110381311531480518120016656377245614675114713215705181351009619035153713541846148221121392155148812893296610220854911114222210170208412264715673074130710099304747110771056901217351804747347701461251511188647701181752011144032651032551098791907154070047239150566631141321761026734034641710245465307797961600511000145251155920909908214374424774377023772632821407414070229338379645631540131770210743790119104594714821020710192624471038965511623273471961198108435192951627820912070651349011910412225917871906031102893296610210245501122134752242235408623701976766201836615666296752111481461537992471551684628136425253017969137661309057013207021071080903212075100443702293799010703716031598951730471667662074020051101617651790901221165890161200104696570313404652191309615276329048401460961617289273640046530139761470276125107047105322679161511130110644112161128486681577501101424713402521491542110674744232137314771101032474527227419604519210005421373511554904477642674130644690324201659012943472548046686714220714141432599251102018211616151540855289329661027370210732014047222100415707778905081087264348714902221191822707021079746137712117402007509035998323977222180110600711141112391461101241705111491122689057674070441655111132484492113791556592222167484437104123145055871689010167912331409331769680811259517417737522215517294050407398222512713611101313112122261713462074394170219312227136111051107212226312115384439417024822316807824917163132511283222472111201101265375104977152113251318022144111024721326771225251032424702515561199019378113417117112722220231171264540961356719313307661007662918612102041555611539879132459544500111469776752121137787823184616071661011361261637730741222103302185221417112009019373010551016222412842922283028790725203140741463651150704119314028932966102105919351516770820131152120651677083845731422241514047477574161226901937811341307027713115314805181501107151612377245614654924171321570518145272251612190351537122066531507184614818929146570905114881625728156208549111701942084122647106184307100709744843151110771056901217335759014452347701461335754122647647701181750511190810335753265103255109879190715402415090247753962511374871761026731414941815131417102454653077979885641825065745436903077918070145251155259179446669029628932966102155422968214379845941769032454414791780474377023771866475664429157173149953582066123322484740702293248500456796695982519065745436903077915113177021072488104567561153987915159471482079101207501251013165661010896695288814906131244542471246224471038811032474702734719663810321210519295162364119313734901191048109127667190603110362522253102455011221872471103142304766408623701215811905671150170183661566629675211215501905671150961537992471551684628138115231796913711376828932966102101176213207021072217831443702293114720559895173047110237193517402005134975011062517909012234884140621612003399041772702150112340465331904113415276329048842766472475116172840740046540741614702761251070474074122647791615110796321428656848668157507176674821340252149111910309012244232137311016385909145272274111910809048542137271264477642674120412264742016590129434764251142207141414321152971020182374647418289329661025961465185559614651540737021072011405963651140472221004192686789050810872201130692540149022211918220112076657154097461377139799832398601201935111411123932551014151056115398791327051114911228257804665511113248897211374159222216748640765180289329661029390842513145055871934122647233140933186662511125951741131110509441940504071451555727136111013193114902713611105115110422218011060071223168078212709079113711283222474622015529728932966102103902196955104979726022818022161015213267712217742243167556119901937811344437062022032311712645406869014279901657411861210204155561153987913297732741612977675212149184741830160716610121112011081837289329661022801267307412221033021225661204579120090193730277457912922283021982322031407417571615215070411931402652522001059193515163411381511521206513881711130314222415153241773175741612774113349137130702775164177523750110715161277411334913754924176446124904527225161252566340147022206653150719266649070014261718929146570905141071561752222541506257281564083713158027019482477612510614110618437110125220070974484315150846532893296610210490402390335759014452136611130335754122647165665051119081033575507644702415090247753962511374871310735807631414941815131241204777130289329661027304150090988564182506574543690307791807010870211615009625917944666902962059010635009615542296727027350096984594176903245441479178047142204777130186647566442915717314995358206612332248471429024850045679669598251906574543690307791511423624881045675611539879151742164500902079101207501251013165661010896695288814906131244542471246214230090142741289329661021488990811032474702289329661026381032121023220265833641193137289329810912766955691362522253640381263218724711031423047666813316121581190567115017092237155187912101555617913002155019056711509671289329661026601995212314547508115232964038715722210451627911137682224584515290884761884316279710117622454573247901911067221783116231139570411397155773077915111472051020773811312339116215116183110661040110237193511984547832956892146901429634975011062636472363274047987976674134884140627887843817738110416613710401839033990417727021501122241089213810329055131751407083319041134636311062714596328427664724751206311061874596321879161147138142916198751407082893296610257810892170521384254163770892138987911377084071811115901054749266407415097847104961012152897908791674074122647358311371906713036670749411212151252571741590615107963214286563393112512062130507176674823946772477908298907979020916930828013719514290122711910309012231432050110665134521773766311421481559717089534775812913396993333510163859091956190192907977907412628414217111191080904859649761655101119030811729078845114290946314858210329010374127126255510516660903808857590273488127110138812129051057204122647421475254142122441282588587865877013164251691965125918968174974141329035874170613830874590963149128881490613454755156115398791508289329661023323278404773173573178405717086620674228230779148247901395628698791122192121883415711012514983166511152979484567103290216136517662414125165676906679101679137464741872946540985405205401604495166875611059614651150320521750813220214241477540124103290419073074111596146515405963141141611315022074120114861769615490965041387251032901046116622213170720114059636512555105152114129211137110111554056143451469268610918145171591413281140311411382011306925409165104746241147103853910121416190131711311599915115910845111312011207665715403929077689131033215475751661817072893296610210629055753971070337751518120596578942451131451118739768415178001032909680902932241879572819301264011648601201935128944011561154834912079045620325510141510561153987913213145371556861112047217019100531122124962418128932966102691964528210267465735307797825780463442814187911001705614415709283126211897211374163728171591424130737730137483371707123548843104640765180596497139873751394993793908425138211030464414157164934122647656112454886497251572235142698186662511062110322676316332560413111050944133046102247177961016791145155572321101370671705614415709283126211931149040645371049613163745696142373211901201904203157514289329661021020262904379096181550124776804762324063190174707151104222180110600711606497406311358255241624317071270907911371102749781901342141540753331161327074622015529797619075076901802075401039021969586519046845411646270797260228289440115617048327312490810790251618273414951341764251141011114611181116131707289329661021606497297184121366260418501468011611570707610152976190506769068354021774224316710362367810610274741841422905714312117014511121701017443706202203249137681901330221496836648120575051896137346710642181707686901427990165741306784314290211977791110219751407411210137977791116289329661022441032909773766307905165758711250140104131575952958142421831003261181116631707977327416125408416743750139121215360266414366789875066901804262127661551408531419013133124810117436511741953131134146138623138901032852818181322281155191201103428011611570707491847418301314537155686372471242491551301468329368919020038817797987915121112011081837956190954193411352241130724624640771113527072801269529054065917066910147750769088654012256612045791731309837526149390150482791580140277457916601027716473062711022401982321309077516877713119215213830711175131166511811161317072893296610270241268750621272223710813130757146561311541817222281751387571615212426609225138130757146561319241817222281751382652522005356631151581617083335115418172222817513863411381512463247802141413821389631531175739570371032111076631307571465613128932966102916510418437296727191970707388171113065619041728648766387708801014261532417731596111111366476691590267196578295893510719657288956937124890571713057268957507690198560540774113349137206512114176903595406691236135390711109011351656516417752376561122621247118170664884310141388724191763170892138987911377087741133491372164732641150665120638644612490101632455710232454206311071412893296610214881755270822817512617159179476612490706202540724544888201265256634014702596314166110592418466720160806612421411301295332282551801449266649070014261769196452821021471034742585829042410715617522225415069196458910267561153987972893296610211664971501713288654064414157164119171149218498343716121140663253231312626511352707408371315802765497941540275902511259371156163171113527078247761251061415961111113664780430541270187629655906173215075019090211218747624548746338501702881753627247757168574155156226090150391126525198652491540371101252200406453780416577011183996559087916750846539863971162471112325142131432967417219521677494290531504683238190247454116462140104904023901624125134766195321110189144289329661023921106623573073574159151307791110101413290841557123466124904235977136611130105773427180211018041008290321901109159066975110136688433175123679081131656619651051132906674986150130155712351391722243372161884314613866884398751407085076447010274978190134214154049611674140131073580761965105116273111131303471341839051622722113818411352241130724624640771113527072893296610225551051477577142609072666124837236904715113024120477713010641507270544438511867304150090206433027232051804907711471151113203658205287919624110142299538108702116150096256518252962712356675315211092136275817190130205901063500964218066131107251301512658171907270273500963283283104746341261139140289329661021623176632135390757808798142204777130206311161156217664234544147919039075215571234661249029659771429020678362367507411087319083790354190712014714025537105541612667533213907106345472728162744641136686700111535108921474181390201476536123718111088472991422063074111061913004719190110411836414861423620678368106612490583514989642742164500908177342718412021493225433198791171114230090142741105194170672321906551100722629081090170975165137454369030779120411488990”

4.2.1.2 Letters paired with digit sum at verse level

Key coding pattern: The two codings we will observe in this sub-section shares the same coding pattern of this simple coding that is considered as a Key coding pattern: If we take the digit sum the number of all the letters (which is 332837) of 6348 verses we get 26. Similarly, if we take the digit sum the number of all the letters (which is 330709) of the 6236 numbered verses we get 22. Then if we pair them we get 2622, which is multiple of 19. Basically what we observed is that the pairing coding pattern with digit sum at the top data level has that 19 based coding. Considering this as key coding pattern, and testing over the full text of Quran, the same coding pattern exist at the verse level data too as I present in the below codes. As an additional fact, the resulting big coding number is multiple of 19 itself but the reverse of it also multiple of 19 as will be presented below.

The evidence code I will present has the same pairing approach as we observed in Code 4.2.1. But now, we will see that if we pair digit sum of the number of letters for each verse instead of pairing them directly, we have another big representation number and it is also multiple of 19. Even more interestingly, this big number is multiple of 19 considering both sides. Namely, if we concatenate the paired numbers in natural order just as we did in Code 4.2.1 or if we concatenate the paired numbers in the reverse order from right to left, then in both cases the resulting big numbers are multiple of 19 as shown below. However, the second code that is the reverse version in pairing codes is against the rules of this book and I just present as an interesting fact but nor as an evidence.

Let me also illustrate this pairing coding pattern used in this evidence as follows. As mentioned before, it closely resembles to the double helix of the DNA structure, where one strand is the digit sum of the number of letters of each of the 6236 numbered verses and the corresponding strand is the digit sum of the number of letters of each of all the 6348 verses as illustrated in the following:

DS[ Number of Letters of Verse 1 (of 6236 verses) ] DS[ Number of Letters of Verse 1 (of the 6348 numbered verses) ] DS[ Number of Letters of Verse 2 (of 6236 verses) ] DS[ Number of Letters of Verse 2 (of the 6348 numbered verses) ] . . . . . . DS[ Number of Letters of Verse 6236 (of the 6236 numbered verses)] DS[ Number of Letters of Verse 6236 (of 6348 verses) ] [ Number of Letters of Verse 1 (of the 6236 numbered verses) ] [ Number of Letters of Verse 1 (of the 6348 verses) ] . . . . . . DS[ Number of Letters of Verse 112 (of 6236 numbered verses) ] DS[ Number of Letters of Verse 6348 (of the 6348 verses) ]

DS stands for digit sum operation. All the rectangular bracket are concatenated. The number of all verses is 6348 and it is 112 more than the 6236 numbered verses text type. Therefore, while pairing both vectors one-to-one, naturally, the shorter one starts over from the beginning part of itself and keeps pairing. As this is the most natural operation approach, it is also the default way of processing in the R programming language while pairing two unequal vectors to each other. Therefore, it does not require additional coding in R.

If we use the real numbers in the above coding pattern, it would be like this:

DS[ [19] [19] ] DS[ [18] [18] ] . . . . . . DS[ [13] [20] ] DS[ [19] [18] ] . . . . . . DS[[98] [13] ]

[ [10] [10] ] [ [9] [9] ] . . . . . . [ [4] [2] ][ [10] [9] ] . . . . . . [[17] [4]]

[1010] [99] . . . [42] [109] . . . [174]

And, the final number after all the concatenation would look like this:

101099 . . .42109 . . . 174

Below is the code to verify the coding pattern.

tmp1 <- unQuran$vletters
tmp2 <- nQuran$vletters
tmp <- paste0( sapply(tmp2, digitsum),  sapply(tmp1, digitsum))
head(tmp)
## [1] "1010" "99"   "33"   "33"   "1010" "1010"
tail(tmp)
## [1] "85"  "178" "118" "138" "112" "174"
tmp[6235:6238]
## [1] "210" "42"  "109" "97"
tmpr <- rev(tmp)
head(tmpr)
## [1] "174" "112" "138" "118" "178" "85"
tail(tmpr)
## [1] "1010" "1010" "33"   "33"   "99"   "1010"
tmpr <- paste0(tmpr, collapse = '')
tmp <- paste0(tmp, collapse = '')

#code test for mod 19
as.bigz(tmp) %% 19  #0
## Big Integer ('bigz') :
## [1] 0
#reverse code test for mod 19
as.bigz(tmpr) %% 19  #0
## Big Integer ('bigz') :
## [1] 0
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 17580

We could have tested 2 in verse level but this 2 in chapter level data, thus we have 1 success and 4 trials to add to the global counters, which I add below:

global_tested_nums <- global_tested_nums + 4
global_success_nums <- global_success_nums + 1 

Here is the 17580 digits length big number of the evidence code:

“101099333310101010883109311971167116811118131161376117141110147101279121091410314831881518121510121110101161076377312721292891487141476141561615616561051110111113111513121551285381034106436931491414101414109147997999911981188881689161296121462149299391039107967866896129101291089118611561358133893109810881781117131111131711717147101461013691313961356751171111411104410741371313111371157115131191311961176679699991691016910109910179161711164111049101291212121215125158558125912691761017121010121010810168616126151214155141751217812128512751371413101412101412914109710671461414161415163151434146411681112811124112413216131216812481141411714137131313139131191211712107510125131291369106111051195129111291111915111315613561251812518253253851188117847741171511101512106126614651455105151018153181031610151613151613111681112861213681314811141211171241784168151691515991599799711912114121041610316610831161085111710951117129141171281487885898958959168559161158911111485111614155816111512891112121091212710111297811691089610106916108616168871614810731461063146561114756119710612971012127712129712127916127771697978939381331131113811911781191171011711810107118181081111186818115614181551114915131179111397711139875131288514121284141412174814101716813101216111361215111467159147789971181098115107895117596116566668618616815185161015851210138712121317713128171013481210144812514881051187101111971511119151514111015914151089111511851114111053141010183910181814911181214111912141139171411133171311431213841012710138161015710137168159101072081691010820716910781371191379131311141312971361471218786117918168121111914161512131114141015713714710107871574101589154413157910481311714101831161481113106118611141081196314118109133911121012131391712612813101713628111091315214111297151614111215791610117158910101071181010410511151011475131513113791310131635910109169516109913971699101387591410981251014991612910397161294313781210441315810108411158101081311138910111312138913111127815139197415491195412461110510125613101210757135128718795158121859101511121658101711111031611814179111134118149961111411889136811811118713128181511778121811015117118718910511711147169135107131481611135101413158511951214121510599512812810149145128108914141421214109913141128145913131211118175151313121511417171513139158461715137911817691513741115177971310411159787510161114911810591610141117101391101416711131811414106711141812141610779149121116376915913117366810121512138786118512112108118111195111510111114119912117551171411914126712513731161412691261353136101289861051213910168689101112109716461196118109784111114614859148811121410149561458312410119136751137413115139715111178131151297151311187118121171413911279831131411915128915314316111415118815714141681481188479146818148846912691121448861412159112154108214515517151110821151058791112811111510981491112101171579141411115106777914101195146127129810799141212141210812712951251414104125121257510149109495111212710101295939711912121091275638749912129771161281341591512107311212111311151315131083825116117136132812815586971461521412915118109814111561499131151012881114689121313512123851488812121361253155108128612968510159109124612988111012915984612148101114121015138461114810161431051384711118916638558377117910648451035777710842431014557471281213316141151341112819137166111313181198491371061213111817994913171011121011101715914991781112106106155142912810121069616552812141010107916165510891410106711166551015941046911461654159454891041016641191051881210111076511810518412171157155128175104717115111561221061771013718114111363296971413818164913931291391414138141679129101211131514913714127131217109111415129107612141316171697141312131056111413161016117141310131158117131010811814510811138107710881581251081313910117128131514125101013991711712111361414511101291417167121114691431111121814216812814491638111518112485864816381015611134125768853710146813512771487587141410895117111412711814149109981181110121011614109109108108131061016615108106108108131067161015138116128481010774108131111101210413101178448911141061016131411158845911141861116111413151389591114182117111213101312916971472107101251019121416371571010910115161961493415181059911216868931011412181455915268128113911612814145121513651218119996108171410129136512181299916106171110129969126121199166615119121393996811129767151291313439988101213767912313114699871015138614910361115612915711151281414810126101561213157111212814118512610106101377101213881135661310610876101013981311610131361589691089171101113101013101512911101191281417121010138101110111211151111251491213107881141151951111156914131171287413510910116111361214101114121271113131091096121391271010147121111101311999712591473101171311710111110957859141431211121367121141095128109714312101212641224119612101011715310101612114102141110641081110156109161311810121421094108121012614991378101212214911102128126147915751091210144114210896977153512914101410747491011913927831012141461412777109131117131429871061410651212714105131117714495710610101457126145551115712485121011102141179675659158121289128111121111891276616938212891189118111287129661612392581311998871267139116912291251213129108117116913911129821012161261212108119111393914121386101616136612782931343914111313631691341066147821031741191011131373992496314138111013177111110713137109132891732131111101357131114781310109139813171221411910125513131488410151015979513712814991112951213168114141510151371255738891411897127161011131461071391212512368914108107676105135647996127123612941091010676125115104695681012793101234119710776129111110667568101299910439114712726696118697106210109592439248124236864899101010281055112538268114237811459810410485591155786610115237611105681047435391056715610109593363102610105793103710106615410691499333424101451298101178108613411013641499123745451410121384111581481713101813941391012107751055101013104815101415177107899131310104101371310556101210781110715127771091113131015481391395761512117911127111211717108116134151088912914711152111191212611911101778146449101785121414111112210111312465951013711141541297171358141111912111061384851251213131121512128771388611139121110688685121412121342612138127281368136127108814645101014148128476913512929136886971285141041210141478988711912512969136148891212351510131210141376998101111281286101314147812121131115513131010135615981091108128151091477121291110111256136106510151189912108124159957312139810101296861161310611119612881149915513341378101099788113139691166158411991315101384976107937128123159129810106101511411971371078139106979312121212121561278510510511511127107978133101691291012312131276975535145115612910119118103121671213101331313137796510331461196791111911111010121171013413121313136746131011376991071011591118105111106415121313146841313121197119111071013512168125711461115513101488713712399117117791310127671287714611610355101181276712311987137594101177713811796768385111112121067128115851345104911871013611109579811812115126107712875651041010697811104611107599111171295116871712871261010410466761154711976910112759811786171188125107494106265567491068103211568147106101158851271099101210522556441010986311176114910810153831221059212105221254441049106318791159888111333821151225101027126464541410331386912151381083111431087111312756101071361561051014123111386212613910631214121087141310710691081381581051012128114832969911651261228111481011108968881189561213844337911951175116102111158131188136128141189166513446397811135871411610911105813118121361210148861685121084967948101388111411614961088121112121164101389610831278991175410101081011111111147610861210129117441349101083107795118551012101010911611778106611106912711412411106871077959811561251015976471184671111612126113121311561071276989811116115121512774511746751151211673413145810812106108789117118122121275597136115359111575106471417811891013106713910718929127517913131111173899151351369791761179161366913410515979117171710131411517148891113613691099627716136119546595107511417910514951914583113626310693210771361111510649510954459115119419121035935332103126831010776610113105465109645510114111247129313912510311106123812107766121010310596710563591064131211799101351231061196631212107661112910810891273511349461113111149610351234689865122108691199888831211371134114101171110446437127498687572486999118685310111377391110105710101143414711799761171174413611961141014611513101813137159710125810111110371451110915713111811941113811568471411117131218101313151179121383111110127851210151541391899311148851081171211117612710111361189121310361111125841214151541191591336141110781210811131210111265713111561081212610136151110564151481514111015101312641113710121087138106121051113101561081276913715121056715981114210111013129415138106109710886810911310106989779117121211537597112281151369515281165971010858394102351039129107101151261183858772786546556271185127410852334152957381271010106566285858571172612475566711831210458102238151094710857810106769245855541162812107259691143101035710102381010104510258811103799645885448688610721097994710431079101133106106552884113359268568741858969741087397774510894113326968588249345112484627513599695488435757853824939259481183249245118444112356311946851081045511538237249498584511736411245988410112356911749841010107510111038227647488788557364113411968710112957910711911410101178109109813215614778137788593114631411810961071111697751051181171012111586911910131015111414771327138796116614144879810101112611713512548137512171576101115101210811814117425133756116414104117387101012911111371264121365101712781041571298786113410511313514111041110911133137101010911111371361012969101112138648799577612102314101011101310141106111291213101315109107116138131210129799111413146781391151177121021114111051016101011061212121241012151096786681312101213715915148144771310116113715107111111551316121012101412612943124101167896613710913715315108144771510461131015771111955131412612131496891510123449117713996573911712314101514771615746119101774111797514148610131091181115111244109147713891055312111112101491510711161173699417104617678141788106105118117118471013141071286104511121311101013911104111611510631191249108676788171289615513813712811712136101112156741011813510101310119410161456613115121293810777118612991315121381361291171296131141510715109895310151012910103141164131555121610133141011751116394131212118965997796131046101215129109123111510124101431411134615145716913151412113581810737481210119985896717613109613126126101012121181014411143141113136121497119141571216310815810109757118710119168128761217813791113861161110612138414151111313111513121299911914137181615107157108911561110710111016812471412118127131114861151110612137412156118136158121591091191213818101515797781211136810810101012894314511812151071391412613511091210761213614846118141517107118121181210815991171212113148138710912139831051389157710971291311159910126313914748113141217137981311151213810911111812121091101491397891136813101113393716102749511458931233996798931312111312910131015513101011111018111249131089109389111631311119353516810102114105124108133835966499961311113128106101258101211610101154513787105359911336111291051353871061151061211104133895665410986911738826412483128641095105871071054589103368126107131036796115116811548369106359107829772811106244445310874593105810107106428410635810677610361098114111081053856410533957522722911462464105810772510325101010766927476459107726638104824710910103551145573751510210249246210651078107921210321110610565937871043910792106689410210759101010591110597574181091024102106310453741089212113111136105255318510631110891010568971021065710610492109911574108598281031053645374108624111011835106211551451266117891045885782962766341226911116751075128586311566351271310610263410104810586101195124812106117594488453839102362361211691146115373124510621146639125139642103910742105861089912582108114594988411393910936212691159641411435311431013274661391158934141069774214586108997532138746913912851013114959149869121291351361614741157111431413137761013611586391411657104121478810691471431113577691313121051413241151114781796121113131381613711118781410149131471110136105861199114571015121571281162145141011957769121341013141010122161151177141756611713108913811108881010592148111213810158711891045761517158121311102851210895756512641013610131261675147101455136677102910861068121011592488121381315177481310351761117987131110158121210812518575106710166121376576148106551316610710102212101068612129111098448713413111764101312321731179117911815912810612141817711108761614128775156118126125816101010106210121410789125912101181048794111156101011121210821231079116911814978861114141710111182641438978155115125127891051013612101014107491057121211810681091111659104114125812129106936141131487118111113144104118107294838910845105115371397510139129106106412106791298116161091111649747411511121598693814431181011711413124449867899878101094810211437138751089109126561012268910971111161198114487673115116159899582441110106710411121145956685910791059781110321497186578210101210521092108410127711111188241184673175865912995926491066710811111135105106551310119135157141173719911186147152710710132109610241112977111089101421811114147131712875712139995612976127148911103121061012511131011813151561411713716981188914915147872131010368101228119997121010951451811111014913121297107613991155121274121214591410101210613121111810128101576101113131216884109813969714138727106378212148109179712710551451711410396121591010176149511125161210410129581415101210121381110811121310910578109139125884692139647101337107969712210148107175757953143178453106715410610717414115612716910510991387151112512989108114134941045684969653826929910451023101079109812210108571051051195343118125510578426107841011967779753951397101155491197811101141241043410674963693724969110954241047510188261085910310711458421111121156512810261058610991074747103954951011594411107411211912310636101275963695774310765159442464159198768869535794783291191196512181066851161196105494101012954651011296491034421097366668124510666559731053472585241226101692987484645105291074389793985111846685117111165599910712115565105256895344710571167611864111076456911310594822832111228109682889108410434610921101488975388711847625107611251093910781195105551054810534971058111079111061511107741064111010991084210381132108109108181097810101031010561091011012810955108571088710281010610210104310109810941010581010491053691105841059710915910874103431059310104210583371071071010191077810710110958109102108211075510153103841078210110410347101196101046107881089101065763155745587596978114133345631010323510387107273102987884741109781092228101974521831314778212174438710117611101561579878101066187103105107125689596157131111112311411613101331034109871092103102148681041341110771010427210101099410278517114768610612971341788107712111015915139117141056918610121012106121561594914158135111112101191110132131510131011489777951010102141261410913611117910124571110710119101012765810971614166961661096138175812771291099121313118141451191368128121061515615510144131414810515111210169510112111561310111089101179710551092912151412913661111910128561114108741116101612668811961614167951681091012648115111297149491212313889106141111101348387107151361354147131014910615412416125511810711468104106961169510159949415910101281386511310108866145812412168165105698811116714117115788991294311611497148410126388792651191014473771073131113543108771079866424512152847845894564696354159242489910782865836108856758123128835254988711876111111575819109837644377841011016689782658911447475103361195336837107586682653110244884569458469437411582321687910792368826584547587338231326488810971085681113585611010108107645367841011217613998126128415484654310699939683710356698663331034889456841084104664478118843141637710891328421574749577831241336382819110255891041310876910410310163576983104125711369812512541538967491089594938671104310629168383236859559831094646684988834514210832758813254316787899738818433338221413295898491047139548381638710943114955186781055531103119117149389564331164111441052614841048424615655953594616989978536582789285289375833611878693328983373589274839978286911101047138578687698110447111935884751075738102117117147329106834113471124756651094349494545136351565941111395915745464847495842593798731011775653729973877589179889871027651121087284786272981091748751737854451079788327797271251058742337121726958983296935454363317669511113351151108454849434655435103191073107755555759577817485159585841027454268102146810292981997985567875564910109910888367295271756577921037121326948885246539474264367368581736161984578794376554310109110104109327357565555537715410535105105544214944691041364106959819989655107648256659410994848116112455767462779110107810321356742810594354967528466531828579656692437674447453471029510104109325327661010658553174541010391051025146139443934337486857869584645410676482363574993454811611848596541324710151028832110107537226102933441665682625218265593551056726310634649483574235510610636552362104641068453112444410599522612643742343333710878873655843434966103668239377496385887648483935513444103552986281097638236926354419108626524212983665838565173621033106291089511451023951561266611523927474465443312444104425299266827457102749383810678853759843834951036532622993764667858776108474539355147410321095691658998610883210292645547938627554101891035610848366110362810632109231069510911652269515812868112104210997373410510483310941147462112891161386775111014101077912898106148358718915412810101141056375327212923910861467714106515716668571051191151311510127510823910641061359914814101010148927292949511108783861610971256101482109591031010493710668106698126101092891136651013589369210681085178118138112174”

Also, here is the reverse version of the same 17580 digits length big number of the code, which is presented just as a follow up fact:

“174112138118178858101069236891355106611389921010126986681066710931043109109521014861012597161086838711109594927292148101014101489935614101063982510127151013111511910557681661576514107714686910231297232756310511410101281541898735148106981287910714101110756713811689112627411494310831041053437971094221081186812515692265911510693109221063810621036136481085610389101547562387954452629210831088699581669952101037414559353748461077587866643799222653365104983439875538867810839374102577482669229254441044312435446747492231156612615695235101149510829106332103617658583653698124252268691041546392368263978106298523541044513353948487688856349779323683661096343484553687781083733432374432661229559410441243145684104621036526563610510354257839464341066372565103559658221252668651644332961022377510102183285101014713254968584611811543499743536826467410454658697885867433343944396114255109101034104517538565101066275332109104510297103445474467372469569657281853668452674935941052874561332810107110792746675745112116484899410596625487651065899981596941036419104694144254105105351055471375555657535279341010109110104355764379784598616173818536674326749453465288486932217110392776575715229678388910109910645587675598971998921026814102684245274105858595148177857595755557731010719103355465349484548411011535113511697631634345356929838995261712372374585101227977732889710745547873518774918102927864728872105117610287899817897587739972535677101173983759425849474846451575913911194651535365154949434945106675247113441183106297371471121181073755104788351971144110987668788571310411106928789983749258733398283369781183683759328859278826553789998164659535965154642484104861524101144111633649538149117119103315510578865195114431098763818354139479108489953241218233338481389789876731543281582783210514348898846664943109855596823838316291064311067384959899107496381554512812691135741231098763516310410910761084139105825110192838364131283779574741542281389710371416438881147644641010884569488343103366986635710839693991064365845441128126981397612110184675364107108101061851358115610897810886413223387358474558268836921077916832821157443698445694588441023165826658107376833956113351047471148965829768161104107837447683109195857111161187711884925358831281275568861083652878910892424594135964656945884472815512246486797108731054111331310777731449105112679886310128471449611311949128978115117714116811985651081612161245861486108310511868131012910415499915510696116941081046711810511125416412615910101471341413513671571038481013111161491088313121249149971112115481269108105167914166161198866161216104118714106118510121196111361291514912925101059711791010810116131115112510169121015111051481314144510615151510681281213611914581413111213999107121275881761310916696166161497810651271010119710111057124910117611913141012621410105107977891141310151021310139111011111251181314154915915661212101210610918561410117139915101512117781017813497612610681477151781029410910107242101077111013410468148102103927109841010313313101161141231111311157969568125107105103187661010789815715611107610118743741218277141383214597101282210978109414788872931027107871033532101063453313114786959875574553176651010898107861010461011971034410110210784103831015510751108221091081095110710810779101017107107103358210104310593103441087910915710594105811069539101048101054101099810104310101021068101028710857108551092810110110956101010310107810918108109108328111034210899101041110674107151110691110781110597341054810555105958111073910925611107257684711885397881411092610341048491088829681022111322882941051136945761110641187611657710445389565251056115712910995511671151168461118853979894310729105454648872969101261224852547533109755661064581266667310942349106429101165541291010945461011911685661810512969119113278945753698876989115642444595176310745769635912761063310912211411107411941155104995103474710799610586101021286511511122118445711310910856108218510474104295110694972933696741063410412411411107811949551011975133975797796101184107268457510125118435311910510557108210812109791010235101049992263865694968454104941381191098512111271513899510910716612115414717610410715106538431731495575771781010141229796107371013479621369845891291381057910131011121088111213121015108149510121041612125511149176101015961239410171114555710712179109148212786371072138714691399841088121613131011761015128810111113121061012141059121441212751211599613107971212913101411115185141091210979981112281036101021387147915914888111691371176141515813101111131256101210103911148127761295699139712751281317147114181114291010871197111224610109132710710152147861119971731411157135119131055106105351111811710669106492951295986175734611824881111711127410108922101051012210786518971432111078599101075968565911411121046710104112458999861551131167874481111911167111098926101256126109895108771343211810941010789889679844124413711101111843814938615911121157474491169111610116989126712106461091091210137513937115105451088983947281041141013141111118873141411366991012125841241191065111110968810121171210549107101412101365109107851251251181597384142611810111417111486781491186991110712382121011121010561111948710411812105991278141010126210101010816125126118156758714126168711101771418612810912815911117793112171231013641117413713488410991112128610612102210101071665136581061457761213166710106751851251081212158111071398111717635131048177131513881248921151210686101082971067136551014147756161312610101364512565789121085102131181217156155710489711158810121381121459101088108811913108713611561417775111611122101013144101213697795101151421411612815715127104591111986105136111014791310148148711111378161313111361217978111411524141310513129137657111314314769810781214104571169146358611101376137141314371111574161413613512991286149594913115101281396974138327599108861454277691410348911513966741323101145343141164599111266293910931138498944581121058912896105821074910103429651391263462111064531237115469111166122336102393845884459117106812124951011861054810103426610131012735661156358128755106711116912234662796825788459107861112645511156251083101141162108745364533108108259108741159921049610710652107108956101089111063510185325105361111113212894103745310106102249108104157971059111051010591071029468106921073910487375956610111032121092107785101066224491021021575735511455103910710244881063267791045767492661071010251032577810105642446911222752573953410563810510841181110936610771065863410286471010105831059741085344446211102877297891035106698354811116115966710371361081236103894510510787105954108631248412268873911861095466953841311106125106117103813510512961133911595371078513541011610121181012561081031211116139949665983133108124105114102810516539311113131169138109891310491112101811111010513101510131291113131293986799333128945511492716103739111313106811389979131014911210181211111091381512131198137121731481174914313126910591119137121097791513810583139912710138148113121211799815121011881271117101415118461481366121079121101351269147131510812511314941281010810810136121178971571015818121311910915981261581361112157412131065116111481311127118141247812101610111076111158971071515101816137914911991212151313111131511414138612111011686111379813121776128168119710118579710101581081637121415119971214136111331411141448101211101261061213129613101766789859910118127473810813512111514913716145615134141114341010121115123109129121561010461379975996118121241339165111171410133161051215541311631410101291510310959815101074151311967129116128131213131599612118771073812951213116614510169410111013510813101174156111261012131171281371381559612881778768691012411963510161141111101391010131111124561012810713147108471181151161081017881467617104417993611711161079151014111212115310589713147109441112111511810910138614147517941117791061174161577151414101231173957961397791144123151089961314612141251395111177101511346151077144108315715913710613967811641031294612141212101210131655111171115103761110117134781415141591371012131268866710912154101212121210610116105101110111410271211711513978146141391179129121081361371191015101013121312961111010141013101114102312107657998764138111291096101213613711111091010137133911111010414111351131053461178987124158101271017651213647121113911101271038117104414116563751342117814811121015101011761715512137481251351171261011810794814146661179138277131471114101510131196915812117108115115107769111110796810141163114938578137781471561329891081011710101141191077995112710681193441136578578887464278210310117510104109874911562310118498451126473511848549497223381155510410885461196335112448451124493211848599293243885575743885469993551274648112459324888596263341189510747739874109796581874688526593341188526561031011391010743710947910972610888644855864993711108825510104101038102710351010439119625107812624115585459276106810571084710981523102581043121186756751242611757585828666510107108127395152342385410127857116255466578728785836115121011107129395102341039581087105911628515695138112271159371151212117799798106310911810861089761081015139413121110210111498715561210715913768126101015111310561281071310810121374111261013101514118151514641051511136610121210815613115712610111312811121078111061413315911915414154125811126111031213896111113710612117121111710885148311999184131515121085127111031113891211713151013121871311117148456811111394181113111571095117141031111810125710159137181313101151464106111191364411711776991171473411410105710109117313710115368118996948727568987471243461047111011114347111133128888999118621051286894612335610491111111346491133512789810910111266107121263966113105121013991171312649103556710961051031210667712103861211101031251399371212441110115564109655431010116677101083126103325393351210419119115594495510491061156117131073269310263631158191495514910417511107956554119136716279610969613111389148517141110131717117795951410913661613796119179713613591589173111113131797591292181071396713109101181787146451015791135115136975512721281271191178108106812810145413731165125116774511741271215115116811896912710756131131261112121167114611847761595106121159895777106811101241141276911106681077611911101012105108551179107831010494137491110126121087611141111101110810105411799783121089613841011612121211886101491161114881013487996841210856168810146121213118813105911610141187135811976344513166891411128136881311581111102116755111197933441386129511888688911108101114286125121169996324881112125108108158139101061071413871210121463910613212861113123101410515613610761075131271110814331110813812156913833141054646471210251012211582331138188159918731106494104412522105212592103123815810910114761116398101044562552121091010912785581011106147681153281010649675526106947451081211861778811592710116997711546116746410101012687171287116957121111997511104611107869101010465751287761051212111189857109611101387911104455135881171210612121111858376961171387711741059137871191236712711851035610611714877127610129137771191139712713881014513111514671125681211357101110119971211131384146131315126411051181011159101110799761131310466713131213413101311710121110911111179966113141036579137131313313107121216103118119910612115145355597761312312101212916931081397107127511511510510786121215121212129397106139787107131191141015106810129159123128377961097841013131599411158669119631381178991010784131331559911488612119611131011686961012810139312579941581212109911810156561061312510119111212779141510128108918101595610131310513111511312127814141013868121121011986913710141312151035121289148136691291251198798781414121010451412897866891392512913768481214141010451468871061281313628127138612421213141251268881061211139611887138712122151311121312585846131110912111181413571712915411141375105946131210111221111141451217891044146781017911611121211921111151471298910841561381117101171112127911117151276959138131541310111310977127715111078121061055131013741010101313997871015171014815104101351010575107101213994813101171314815841113810125145474123994141361101348681011781012914541042339314969410615106710103935710102631036939510101566710539357410468105611375210116678559115548410810591147823114688253112558101021010994886364281224392459109210106978661169261274791143910991012687566111091161277710119341012931278105669104115125761069104101293671261299475651361067107108914681231259127136101314101171671289141189385712513710151415114168121395111299814712513791591510410881314513125910141112213179891310108131471311571013111121317389132109137713111071113171110138314962499731313101111917410382147664109133161361113914433132978612136161661013814123913991181112106121612101282129911913116117108129121312529912116139677128899131158921236169671212881191111889212381696612789111111281191212881291565759611721411101210851241575115561471214510101065749714111751314101275121066147109814217131311109771276141414101283271391199107474141014101293571597961084241110149125101577961481221211101491221012789131491261210108942101214810131191661010158114101061411102114161210101531171010612119244121261012312714109128954101211671213121114391485571091111710131111731014759712991191013111171210147109121213969101310111312714121011121413661110111091357412811714136911511195514118117813109125141125111111112111081010131210141712811911101291015101313101011171899109615813610131161398101361087610131066358111381012771013106610512118814121271113156121015126810141412811151571291566111031498615137109869114313912671371012889943131312971576129811963913991215116691611961291296129111061716109912912186591310121714108969918115121361215145814612911113128681525914512181143108986216911591810415936141619115910101015737141619125101012107727141691291013121371121114189119513813151114111618611145984158141116136101410911488411713101041012111181341077101048128116138101571610681381061081015101666101310108108109109614101110128118119991014141181271114117951081414877514877512813146710538876125134611101538816645848112151881116349814812216181411123119141461211167141712911101456141113712171199101351014121315128117910131310812515888710107138811510814811101071381111510131413117101613161114561310131271416916171413612107129141591117101312127714913151411131012129791416138141413912993913164818141397963213641118111377106172106121115115717104175128155571711412518810511761110121018810511964101610489549441516546911464101595106511166710109141085516167910101410812521659610610121282951461561012108119171491591017101111121710913941791118121310613749981811131361171691381111213411516141331212847571453102484710775710345481067971137588563916118711845133101614810111446138101514121011148612841591291110881294691291010158596612128108155536121213812885143812121351213891468111285101311996141115814109118915141215214697861551282861371361151182831310131511151113212311107151215913412811677129912498763759121210912711395912910101271112959491010147512551241214105145121291271081412121291479810129127146951011914776751011111414797151011111214998151011111289118710511582111071551515214108154112159141286481214911266984148186891447888118141416714815118141516111431538915121193143119812791141311781271118131171512911581311715119751313117411375136119410312586149510141214811148591481461111849781061111946716109111291068168910121310586891012136536139121266143111371256714121197145117512119914111111510111951111118108112512118868712131215810667313111596937111691291477161012141418711106141418111136714111013971011110149161051181491611510879711151047137915174111379151761187915136178491513131715417151113121513175118121113135981411213149914102121414914108128145149810812512991051215121495511158141351011138161314107135169147711511910718118117101518181277151118128713118811811136891181146119981441111391114171183161110171181016511121015591218158951878751271375121013105610121056111245411949415979115137811213118912131113910138131110881011158410101584131048121374312971639910161299101412598141059871013997161399916109591610105916310139133713111315751141510511410101011810710108971510119161571112161471512914111529131110281361017813612171213912131210911133109118314968111410611118106113816143111814101178131047913154491515841015787107710714713101514141311151214161191211168918117861877126147131291413131191313711913778910716820101016920810791081571610131571610138710101284121343131131711131714139141912111121411181491818910183101031410514115111181115891510914101514111515119151197111171011810588514812144121048101381713121771213712138121085101551615181681868666666561159117957851081110911897897791471514615116121113121613101681017814174141241412814128512851387139711971113791311915111415514185618116811188111810118107810711101111711978911811111311313338398997977167716127912129712127712127101291069761175111456146636103141071487168816168616106910109610869811971112710121210912129111281115816155161451114811118911591655168598995985888878147121411129111795171051110811683610316161010441212111199779999151599151516168844171712121111141488131366121288111116161313151516161010331818151510105555141466661212101015151111774477881111885533225518181212556613131515111199111112129955111110106699131312125510107712121111991313131313137714141111448812121616131322441111121288111166441414331515161614141414667710109914141212101014141313775512128812121717551414151512126616168810101010121210101717669912125588551515121212121212991010441111161617179910109910101616999999667766111199131311115577111113131313774410104411111111775566131399131366101014147717171111131311111717888810109933881313556611118899101012129966886677991010339999221414661212991616888888111199999977991414101014141414993366441010338855121215151313111111111010556616161515661414771414889922121277337766101011111010121215151818883314141010991212771010141411117766131311118811116677111199331088101010103333991010”

4.2.2 Rewriting of Basmala based key coding evidence

As already mentioned in the description of the rules of the key coding patterns based evidences, the second key place to look at in Quran is the verse Basmala, which is the first verse of Quran and repeated 114 times in Quran. Like an opener, it is used in the beginning of each of the 113 chapters out of the total 114 chapters of Quran and it is also used one time in one of the chapters, which makes it repeated 114 within the Quran interestingly and thus a unique verse. There are two key coding patterns exist in this special verse Basmala.

First key coding pattern is, the concatenation of the chapter index, verse index, number of words and number of letters in it is multiple of 19 as follows:

Natural numbers of the etxt of Basmala verse: Chapter 1, verse 1, 4 words, 19 letters 1,1,4,19 11419 is the coding representation number of Basmala.

In this chapter, I will present the evidence based on this key coding pattern of Basmala. The second key coding pattern is the concatenation of chapter index, verse index, number of words, which makes 114. It was already considered in Chapter 4.1.3 with the codes where there is no letters information is included. Since, these two key coding patterns are multiple of 19, the number letters must be multiple of 19 and as a result of mathematical necessity and thus it is not considered as a key coding pattern. So, in short the only key coding pattern with letters information is the 11419 and I will present in this chapter that it also exist in the full text of Quran too.

As per the rules, when a code is tested with letters information in a single text type, I assume it is rewriting of the text because of the letters in it and I always concatenate from right to left as in Arabic. This is the only exception in this books that we concatenate from right to left as if we are rewriting the Arabic text of the Quran with its corresponding natural numbers. We do never concatenate from left to right with letters information in a single text type as it is always considered as rewriting. Rewriting can only be done in a single text type and thus the pairing coding patterns of two different text types is not considered a rewriting and thus concatenated always in a standard order. These point already mentioned in the rules section of the key coding pattern based evidences but I wanted to clarify here again to remind them to the readers. Now, let’s continue the evidence code of this chapter.

We learned the key coding pattern from Basmala, which is the concatenation of chapter, verse, words and letters information. as, per the rules we will concatenate as if we are rewriting the text and thus from right to left in the full text of Quran. Also as per the rule we have to test this key coding pattern both at verse and chapter level data. Because, we do not have clear distinction like we observed in the Al-Fatiha whether the key coding pattern is only in chapter or verse level data.

In this chapter I will present the evidence we observe in the verse level data of the full text of Quran. This code of this evidence was one of the first codings I had discovered in 2019. By then, I had not realized, it was based on a key coding pattern of Basmala. I had hypothesized that how I can rewrite the full text of Quran by its natural numbers? This was the apparent coding pattern and when I tested it was successful both in verse and chapter level data. Because, from my point of view, I wanted to rewrite Quran by its own natural and thus universal numbers and my first hypothesis was validated. Even without the key coding pattern, they were standing as strong evidence to support that the chapter, verses, words and letters information along with the test structure has a strong 19 based relation. I was amazed by this observation and had named this particular coding as “The Ultimate Evidence” at that time. Instead of rewriting the previous subchapter of it, I will present as a subchapter of this chapter and will not change much and keep that old subchapter as much as possible in the original form. So, the following subchapter presents the evidence at the verse level data based on the key coding pattern we observed in the verse Basmala.

4.2.2.1 The Ultimate Evidence: Rewriting the full text by main descriptive numbers per verse

Since the code of this chapter was based on one my first hypothesized coding pattern, which is to re-write the text of Quran with its natural text numbers, and also this code was one of my first discovery if not the first, I had considered this evidence as the ultimate evidence at the first publication of my book in 2019. I will keep the title as is for this evidence although I later discovered more powerful evidences, like the one in the Al-Fatiha based 19 system, which I considered them as the main 19 system in my book. However, after Al-Fatiha, I realized that the rewriting coding pattern of this evidence is based on the key verse Basmala and this is also key coding pattern based evidence, which also includes letters information.

The code of this chapter suggests that the full text of Quran with all of its text structure, size and order along with words and letters are under the 19 based coding system of the full text Quran and thus suggest that the text of Quran is intact and unchanged from the beginning since 632. In a sense, this code fully decodes the text of Quran by its descriptive numbers. In order to decode the full text of Quran, we need its own text numbers to decode. The way I will decode the text of Quran is simply by rewriting the text of Quran, verse by verse with its counted descriptive numbers in the exact same order of the text from right to left as in Arabic. For these kinds of rewriting evidences, we can add this rule upon general rules such that in order to rewrite the text of Quran by its descriptive numbers we should to mimic the Arabic text of Quran that is written from right to left.

The same key coding pattern was also observed in verse 83:20 and explained in detail in the first key code of Chapter 4.4.1, where it is shown that the concatenation of chapter verse, words and letters is multiple of 19 (832029). We see this key coding pattern if strongly represented in the text of Quran.

In order to rewrite the full text of Quran in the exact same order, I will utilize from this table that keeps all the descriptor numbers for each and every verse of the full text of Quran in order:

knitr::kable(head(unQuran, 9), booktabs = TRUE,
  caption = 'Head part of all 6348 verses of Quran to show how the natural numbers of it look.')
Table 4.5: Head part of all 6348 verses of Quran to show how the natural numbers of it look.
VerseI chapter verse vwords vletters text
1 1 1 4 19 بسم الله الرحمن الرحيم
2 1 2 4 18 الحمد لله رب العالمين
3 1 3 2 12 الرحمن الرحيم
4 1 4 3 12 مالك يوم الدين
5 1 5 4 19 إياك نعبد وإياك نستعين
6 1 6 3 19 اهدنا الصراط المستقيم
7 1 7 9 44 صراط الذين أنعمت عليهم غير المغضوب عليهم ولا الضالين
8 2 0 4 19 بسم الله الرحمن الرحيم
9 2 1 1 3 الم

Using all the descriptive numbers per verse, I will rewrite the full text of Quran with the numbers in each row of the table above. I will basically rewrite the full text of Quran with numbers in the same order of the words of Quran from right to left as in Arabic. As numbers, I will use the exact chapter index, verse index, number of words and also number of letters of each verse. Since, in the full text of Quran there are 112 unnumbered Basmala verses, I will also take this into account and I will not assign any verse number for the unnumbered Basmalas but still assign their chapter index and word and letter numbers for them just like they are written in the text of Quran. This literally means, rewriting the full text of Quran with the 4 main descriptor numbers of the text. There is not much versions of such an hypothesis. Because, I am trying to test the order and size of each verse at the smallest resolution that is number of letters and words per verse along with all the two other specific descriptor numbers, chapters and verses.

Considering all the 6348 verse of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

[Chapter 114 | Last Verse of Chapter 114 | Total Words in Last Verse of Chapter 114 | Total Letters in Last Verse of Chapter 114] [Chapter 114 | Verse 5 of Chapter 114 | Total Words in Verse 5 of Chapter 114 | Total Letters in Verse 5 of Chapter 114] . . . . . . . [Chapter 1 | Verse 2 in Chapter 1 | Total Words in Verse 2 of Chapter 1 | Total Letters in Verse 2 of Chapter 1] [Chapter 1 | Verse 1 in Chapter 1 | Total Words in Verse 1 of Chapter 1 | Total Letters in Verse 1 of Chapter 1]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

[ 114 | 6 | 3 | 13] [ 114 | 5 | 5 | 20] . . . . . . [1 | 2 | 4 | 18] [1 | 1 | 4 | 19]

And, the final number after all the concatenation would look like this:

1146313 1145520 . . . . . . 12418 11419

11463131145520 . . . . . . 1241811419

Here is the proof with a reproducible R code that rewrites, namely decodes, the full text of Quran by the 4 different descriptor numbers first and then test this big number.

x<- unQuran # 6348 verses
tv <-c()
 for(j in 1:nrow(x)) {
     if(x$verse[j] != 0){#for all the numbered verses
         tmp <- paste0(x$chapter[j],x$verse[j],x$vwords[j],x$vletters[j])
         }else{#For unnumbered Basmala verses
             tmp <- paste0(x$chapter[j],x$vwords[j],x$vletters[j])
             }
     tv <- c(tv,tmp)
   }
 tmp <- paste0(tv, collapse = "")  
 #I revert the order from right to left as in Arabic.
 tmpr <- rev(tv) # matches the coding from right to left as in Arabic.
 cat("Head of the per verse representation numbers : ", head(tmpr))
## Head of the per verse representation numbers :  1146313 1145520 1144417 114328 114228 1141414
 #"1146313" "1145520" "1144417" "114328"  ...
 cat("Tail of the per verse representation numbers : ", tail(tmpr))
## Tail of the per verse representation numbers :  16319 15419 14312 13212 12418 11419
 tmpr <- paste0(tmpr, collapse = "")  
 cat("The test of divisibility by 19:")
## The test of divisibility by 19:
 cat(as.numeric(as.bigz(tmpr) %% 19)) #"0"
## 0
 cat("Number of digits on this big number
     is ", nchar(tmpr))
## Number of digits on this big number
##      is  46900

First of all, before discussing on the main point, as you can see in the last result, the digit sum of the length of this big number, namely the number of digits of this big number, which is obtained by rewriting the full text of Quran, is also exactly 19.

The big number of this evidence represents all the 6348 verses of the full text of Quran with respect to the number of words and letters per verse and supports the hypothesis that there is no redundant or missing words or even letters to a degree in each and every verses and the verse orders and sizes and also contents of the full text of Quran are also correct, intact and unchanged.

For the reference, to the best of my knowledge, Evidence 4.2.2.1 is first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself. In case if I find out Evidence 4.2.2.1 had been available in another article, which is very unlikely, then in such a case, I surely add a citation and update the online version of this book.

Because of the reasons I explained before, I had named this evidence, Evidence 4.2.2.1, as a single code, as the ultimate evidence, when considering the letter level information. It is not necessarily be really the ultimate code considering all the codes of this book but I will honor my initial experience and feelings with this code when I first discovered it in around 2019 keep its name as is. The coding pattern of Evidence 4.2.2.1 is quite strong, because, first, we literally rewrite the full text of Quran in the exact same structure and order using the main natural descriptor numbers per verse. Secondly, the same coding pattern also exist at the chapter level data of the text too, which I present in Chapter 4.2.2.2. Third, and now by the time I discovered the key coding pattern based system, it is based on the key coding pattern of the special verse Basmala and it is the main reason is for this code being special.

We used the full text with all the 6348 verses of Quran, which means including unnumbered and numbered verses in this evidence together. In my opinion, there is not much alternative than this big number to represent Quran with numbers up to its letters and thus this is one of the few best possible rewriting representation number of the full text of Quran considering letter level resolution information. We witnessed that this number is under the 19 based coding system of the text of Quran. On the other hand, I have observed some other interesting rewriting representations as well but they might be considered underneath of this evidence as secondary evidences compare to this one. Because this coding pattern is the most natural way of representing the text of Quran for rewriting it by its natural numbers. If Evidence 4.2.2.1 was not successful, those follow up rewriting codings would not be as meaningful as now. Because, one could always argue that the most natural rewriting representation did not pass the test, which is not the case right now.

There are two more codings, which further assures that the full text of Quran can be rewritten as a 19 based code with the natural numbers of the text along with the letters information. In the code of chapter 4.2.2.1.3, I present the coding that uses the number of letters of each word to replace each word in rewriting. Basically, it also suggest that not only the number of letter per verse but also the order of each word has under 19 based coding system when we apply the similar coding pattern of Evidence 4.2.2.1. Also, in the code of chapter 4.2.3.1, we witness that if we use sum instead of concatenation to get representation number per verse similar to the Evidence 4.2.2.1, we still have 19 based representation code for rewriting the full text of Quran. See those codes for more details in the respected chapters.

Since the key coding pattern is suitable to consider the text type of the numbered 6236 verses too, we have two trials and one success in this evidence based on the key coding pattern with letters information. Let’s add them into the counters for probability calculations.

# Counters for all the key coding patterns
key_codings_tested_nums <- key_codings_tested_nums +  2
key_codings_success_nums <- key_codings_success_nums + 1

Lastly, you can access this big number from the following link:

https://github.com/quran2019/Quran19/blob/master/BigNumber_6.1.txt

One can just copy the big number and paste it into a web based big number calculator and test it herself.

In the subchapters of this particular subchapter, I will provide relevant rewriting codes as facts which seem to be strognly associated with this particular rewriting evidence, “the ultimate evidence”. I will peovde them current as facts since I have not yet found clear key codings for this rewriting codes. Although, they are so strongly associated to “the ultimate evidence”, and might be conisdered as evidence in that respect, I will kep them as strong facts for now.

As per the rule, we have to test the follow even and odd coding pf the key coding evidence. Only in this key coding evidence, we do not observe the follow up even and odd coding when we consider the chapters to classify the verses as even and odd. Interestingly, if we classify with respect to the verses, there is still a follow up even and odd coding of this evidence. However, since this is against my set rules, I do not count that. So, we have 2 trials and no success for this case based on the general rules and add this to the counters.

evenodd_tested_nums <- evenodd_tested_nums + 2
evenodd_success_nums <- evenodd_success_nums + 0

Also, here is the “46900” digits length big number of Evidence 4.2.2.1:

“1146313114552011444171143281142281141414114419113551511345201133515113249113141411341911245151123412112229112141111241911155151114317111341511126191111515111419110373011027311101519110419109641410955191094517109351910924141091416109419108341510823121081316108419107721410763131075520107421110735201072417107141910741910647261063418106242310612101064191055315105441810534201052519105172510541910493101048314104741810463141045416104441710434151042416104141410441910339521032415103116103419102852110274181026211102552010244141023312102231410212131024191011128101104131019291018416101741410164171015424101452610134171012291011171014191001151910010414100972510084171007415100641810053111004311100321310022131001213100419998621997622996632995413994316993416992318991420994199882183987942986166698516789841145983311982623981125698419975518974937973620972519971521974199619520961821296172109616315961562696145179613415961231296115189610310969313968414967311966417965518964313963314962415961518964199584219574179569429554189546269533159522995121495419948312947313946413945414944312943312942313941413944199311416931041793941793831593731393641693541893452093351593231293116934199221299220521921962192184179217214921631292154179214316921341992123129211621921021392921192841692721392621192541592431192341892231492131392419911531391147399113730911231391113159110413919413918320917312916314915315914315913315912314911212914199020313901963290183179017945901641590153129014619901326901241690113149010214909212908414907515906417905620904520903311902415901415904198930210892931389285218927420892641589255208924521892394389225198921620892041789194208918523891751989161040891511498914314891351889123178911417891031589952689862389731289661889561689431289321289228891168941988264158825313882442288234138822314882141588204168819417881841788176258816212881521288142128813313881231288114158810310889211888314887618886619885413884313883210882314881417884198719315871851987173158716420871541487144128713619871241987112148710311879416878212877931876313875313874315873312872311871415874198617423861629861531486143118613310861231486113158610617869314868415867522866412865418864619863211862416861214864198522310852141285204178519519851821085174168516311851531385143158513414851241385111465851014658591040858940857627856413855314854315853211852213851316854198425941842431584234178422418842162684204148419415841831384173128416313841561884145138413518841221084113138410623849419848419847521846937845314844416843312842314841314844198336624833531683346308333420833262783316318330419832983683284198327313832663283254168324522832331683224168321213832029831941583186248317725831641783156268314830831373383127228311420831031683929838414837622836523835288345228335248326308312118341982199348218619821751882164168215315821441682134168212314821121182103158294178286178274188267288255188243158233148223178213158241981298328128518812751881262108125518812451881234198122315812131081206198119415811831381173138116211811531381144148113314811231481113148110313819310818316817314816314815314814314813314812316811312814198042419804121080404198039212803831480376248036212803529803451780333148032317803121080302108029212802821080273148026415802541680244218023515802241380213138020312801941580184118017417801628801529801421180133108012310801131280103118092780841480741480631080531180441880341680231280128804197946936794551979443137943414794252579414167940932793941779383167937397936417793552079344207933317793221379314207930417792942079283147927625792661979255267924417792329792231079212879203167919417791861679175187916625791541479143147913416791251979114167910527799212798314797213796314795213794213793213792213791213794197840166978399327838145878371047783651878356247834210783321278322127831314783052378294187828318782752178262978253147824624782331678222117821416782042178194227818626781751978162117815416781452578133167812420781131778103167893167882147872137864177853127842107834167823137812107841977504187749316774862477473167746526774531677444197743629774231577415207740316773951877385267737316773641877354147734316773331277324187731620773062177296247728316772773877262127725417772431677233187722311772141777205187719316771831777173157716314771531677145187713297712310771131377103147793147783147773157763107752137742137732137722137712137741976311042763011417629931762894776278407626729762552176249337623627762283076211359762072976199477618419761763076165237615837761463476131044761252376118367610729769104076873776773576673376583576463576373276210497611140764197540727753952675385177537618753652175354137534311753351775323127531412753041775293177528312752739752641775255177524315752331275223147521212752041775194147518420751741775166207515314751452175136267512418751138751052475931575829757312756418755523754623753524752420751417754197456114474553107454311745351974529317451310745031574495217448422744731474464177445418744441674435187442412744121074403147439314743851774377247436210743531474343137433312743229743157250743031274292107428412742741374262974255167424619742331374223974212574204117419310741831074172117416521741541274143137413210741241774114167410418749416748416747210746313745211744210743287422774131274419732078329731993173186267317835731663173151151731484073135227312419731163573107327399367386267376217368307355217346247335187324157313127341972281352722713447226727722511367224114572231664722212407221824722082672191041721883172171039721683972155277214104972131452721211397211937721013447291351728841727933726114672510377247287239337229357211349724197128157171271041712610377125125471248357123135371223157121134971204207119521711852571175237116731711583171143147113620711294471114217110627719728718416717147971652171572671418657135257127227111451714197044944704394070428427041831704073570395227038828703752170365247035417703452470334237032528703173070301042702942170285187027624702642170252147024522702352270222107021417702041570194177018297017415701621070153107014622701331670122127011940701041670931770841970721070631470531470411477034157024177014167041969524176951313695042069495216948317694762169464176945316694452369434176942624694172669404156939311693841669374186936517693552069345206933623693273169313126930296929313692841469274186926414692511446924840692321169223106921414692052069199426918626691794369165256915317691463069136236912629691173069106286996346985166971568696627695423694420693416692286911669419685251968511262685052568491040684811426847521684672768455186844104468431152684293868418386840416683912476838517683751868364146835323683462668338396832103968316236830524682962668287286827312682652368254176824626682331968227276821213682021368197276818210681710506816315681573368145156813413681241768113136810516689417688314687113968621368521368441568351868251968141668419673010406729134967281558672713526726934672573067248316723125567221247672112426720155467191562671883067171248671611406715145967147276713938671293867115316710113967918636781353677832676734675126867410426731865672115367193367419661217796611249766102712166912626684619466712516662310766517826642192663291146621149661155766419651225966511341536510177265973265814646572590656321466551454654281186532173652301326514217365419641852964171250641616796415839641419876413937641211596411165864101159649271226481051647186964616826451353644146264394964211476411759644196311114463102185639187563817906372090636187063514666342210463311446321251631178263419621121886210157262922886281879627945626187162523105624103962383762221926211252624196114361646113941611217756111157261101247619146061811546171668616321296152410161411466139326129346111143614196013208060123917360112194601056258609211016082191607156360619736051356604522216031362602136860149220604195924177859231987592213515921188459201048591910515918187259171050591617685915114759142394591312455912167359112812959102310659931134598189859737166596259059513605941251593146059241185591114359419582251221582193458208375819157258181773581715645816104358151040581419735813241155812239258113113958101782589201055883816758747163586156458518815842611558321905822310358118735841957292285572822945727391915726147457252813857241256572315585722216957212510857203918057192010557181257571713555716281185715156457142099571327132571222109571112435710371535791769578156957715745761252575837574361345739405721143571939574195696417569551656942105693310569262656915205690622568941856885195687420568652056857285684316568341956824225681422568041756794175678311567731256765205675419567441756735285672630567142156706285669733566842256673125666210566562956645255663315566263256619355660732565952556583145657421565641656553155654419565331756525175651525565052456494195648215564794756465255645521564441356433105642311564152556403135639312563821256372105636214563531656342105633417563221156312956302856292956283105627525562641756256255624418562331956222756214165620316561952156185235617420561631956153125614314561331256123125611213561021756952756852756731656631456531356441456321056231556131456419557862755774195576626557541955746225573419557241855714195570313556941955684195567419556631755654195564185563419556231455614195560523555941955583205557419555693755554195554941555341955525195551419555031655494195548210554741955465195545419554452155436265542419554164055404195539827553841955376315536419553583455344195533177855324195531418553041955291035552841955276275526412552541955246315523419552242355214195520418551931755184195517421551641955156205514524551341955124205511525551031755963455841755742355631855531755421055321055229551165541954556215454519545341754525185451626545062654495185448935544752054466295445421544452054439355442736544151954407295439315543852254379435436529543572454349385433416543272954318415430416542942254288325427735542652354259325424104154233145422729542141654206275419936541862354177295416416541562354146245413522541293854115265410521549943548835547840546828545520544728543631542731541422544195362317536121153603155359419535862053572105356520535541753543115353213535293253513125350418534941453484155347419534641353455265344415534341553424165341419534041353396215338518533731553367205335519533431553333145332311295331167353301654532911415328165153279475326186553253175324415532325995322414532141853203185319318531862153175165316518531531453143145313415531241753115165310518539518538310537315536311535313534514533414532516531312534195249525524810415247104252469335245732524493952439335242733524152152407275239520523894052377285236731523582752346295233623523283152316275230728522983152289315227628522672752255245224732522383352225285221198452207335219629521883852175205216125352156225214625521362152125185211317521031552941752841052741452621352521352421352339522210521165241951607315159943515872751579305156627515552551545195153621515213465151113951508295149729514842551475295146831514573251448375143827514293251417305140734513962551388345137736513672851356265134419513352051326265131523513083251299395128938512752251266235125938512462851239375122523512141951204205119526511831951176255116937511552051147325113519511241851115185110211519412518415517315516313515315514213513213512213511213514195045135350449365043627504273250417295040525503912495038135450371341503615545035625503452450337295032622503152550309335029831502883450271037502610415025417502462150236215022124550216235020623501993450188265017837501614575015103650149365013419501273050118375010522509104550852050711515061253505932504936503727502114450131450419491810454917197649161665491518914914271164913219349123212949114015949101053499301444987284972812749618794951248494941493177749223984911664494194829542494828146048272812048262813048254017948241977482312414822125248211452482018894819737481819864817271104816281244815311414814146148139434812208548113715148102510548984948852748784048621116485199348419944834194821561481519484194738301294737635473613654735125847341555473311554732218647318504730126647291140472810484727741472615654725166347247334723737472210454721124847202711747191473471815654717632471624104471544172471413484713145447122210847111144471016754798354786304771046476420475317474381674731881472188147183547419463527107463418794633228546321865463115604630207846291880462817734627104746263213846251460462418754623135546221254462125954620271294619943461817664617281134616188146154519346149434613135246121675461119764610249546924744682599467145946694546518644642910646315724626294611246419453784245368374535167645341461453311434532227845311259453013624529114745281454452710524526187045251668452421784523249445221356452117854520732451915644518135545172410245161374451511444514146145131660451214634511114245101972459114545814574574144561253455208945493445363145262945112454194459317445852944577254456104844555224454419445352744523114451519445061944495204448725444752444462104445418444421044433124442829444110344440523443983644387374437125044365244435832443431444337294432629443172844307334429837442842244274204426314442551844246274423524442262344215214420624441993544189314417835441662944156294414625441372844126264411520441062844951444810394478374467264456234445174438344422134411244419438962643888274387837438613524385136343841144438384243828364381831438011484379522437873443779374376629437562243746264373627437273543711569437052943695294368934436773443661040436511474364936436317794362729436110454360836435910424358144843579334356424435563643547364353114643521134435118674350730434912474348135543477314346125543451353434462643438364342734434162643401140433994043381249433773843361138433512534334530433317774332251114331104243309364329939432873243275224326940432573643241460432321834322114643218334320155343191266431893443171246431673143159374314419431320844312114943111250431011454391052438732437832436623435835434727433630432213431124341942531556425227109425122774250114742491562424827115424721684246165642452712342442072424382842421566424193542401457423962942381164423710504236177442359364234726423315554232629423114484230104142291663422813524227176842261264422512514224229142232911842222410742212284422022754219938421822964217115242161871421534149421430114421338152421213564211198942101559429166042819714272290426125342519904241038423104342213421124241941541239415319734152175141511356415032130414911434148124041472810741461146414518724144301294143175341421346414193941402610141392291413812554137198841361150413511424134177141331351413241441311670413019934129167941281461412710554126115241252599412411484123946412220844121187841201256411983441185274117147441161989411525102411423944113940411219894111166741101567419146241894041783641616744151775414733413733412419411124141940851770408412514083156740822510440816284080125940799434078321234077145840768424075114640741760407372340726234071632407094440691039406812444067301184066207640651453406421984063733406212414061208240601362405911434058136940571253405623934055125340544204053841405210464051115340501673404913534048124540471982404613614045104240441250404322864042156140411041404023884039124840389374037239440361040403523934034301054033165240327274031145540301141402927101402839146402713484026186940251987402473440236314022136340213011940201562401962840181567401713474016155940151663401483740131453401215624011136540101567409125340816764072712840610424052198404135240314564026294011240419397517773974167339732094397294539713415139709323969157439682277396717863966624396514623964734396311573962928396111503960146539591045395812423957932395615513955166439541352395321853952155939511568395011433949228339481143394725973946177639451876394411483943145439422610739411877394083239391040393836148393712413936155739351258393483339338343932155839317303930416392919813928728392711443926125939251040392413613923341323922207739213112039202080391910383918136739171260391617613915198539146213913929391252339119313910229539924105398341223973112639636138395231053941663393331263921045391629394193888417388751838861036388573138844173883420388242338814183880417387962438786233877520387610343875155438746283873422387293638719323870827386993338683133867411386673738651140386462138636303862103838611140386011453859103838584153857420385642138555193854721385352138524223851735385052238496233848838384752838465263845848384414543843104638426263841114638406223839728383842138374203836833383515493834939383363038321142383162938307333829950382813663827167038263112238259333824321373823156038222393382173038206333819520381873638171144381683238151035381472238137363812834381162438101048389731388155038710383861251385832384104438310373826223814153841937182419371813163718062337179315371784143717763037176217371753173717441437173419371723163717152937170418371694203716862237167315371663163716531537164620371635163716241737161314371604193715941737158104737157524371564143715521037154414371534203715241937151521371506293714952937148420371476263714652237145421371446223714352137142419371414193714052037139418371383173713742237136314371354183713441937133418371324193713141937130414371294193712841937127318371265243712552837124518371234193712242137121419371204173711942137118323371173233711642437115529371145213711310483711252737111419371103163710931437108419371073153710652037105731371044193710341937102281003710131637100516379962337985293797732379641937954183794316379342037924133791626379031537893113788416378741837865223785625378451637834183782315378141937804193779520377841937774203776525377552637744193773524377242037715223770418376942037685203767723376663237654213764623376342237626233761421376051937596283758313375762637565193755521375441537537343752419375172337505243749313374842037477243746316374551937443143743312374231437414163740419373962337384223737522373663337351038373442037335253732420373162537301036372952137286283727524372641737254143724317372372937227383721727372062437197283718416371721537167353715621371441937134173712313371112463710728379417378937377518376631375735374312373213372213371211374193683835368210343681146336801144367910373678114136771142367693636757303674731367362936726333671125036708333669124336687303667104936669463665115736645243663521366283636615233660145036594253658516365762336567323655728365411423653103936521353365110393650733364983536487303647249236461142364511453644622364393336426233641835364015583639737363883936379373636135636358373634104436331050363262336311145363012473629830362813473627727362683036254193624517362315583622831362172936201146361993836181255361752336166283615155536141157361383836121458361112543610836369125136810453678303667303653173643133633143622133611236419354525973544301203543261113542198335411976354033132353924100353810443537251083536187235351455353411453533135735322199353116653530837352916763528177835272294352672735251367352412483523412352216623521416352041835194213518341383517518351662335151147351418813513281153512281273511341153510241083591776358259135713623561358355156335411433532285352196835124100354193454155734531038345293634511035345016573449829344872634471752344624893445145934441147344334130344218773441135834401051343920733438945343723100343613493435839343414543433341603432156934313214334301041342973034281254342712483426114634259353424176234232285342226933421217034201045341919873418178234178353416167534152074341427109341319873412271073411125134101353349291053481666347166134616663451146344105034332123342186834117673441933731593337218923371145933709403369177133688373367846336612553365833336472933631562336212433361634336019873359229933581267335714633356146333553012633541139335370294335225853351351373350622673349231033348125833478333346629334583833448353343136533423163341835334017663339136133382275333748196333624923335302233334145633332512233322081333114643330176933291464332816793327136133261677332516743324167233231875332218853321176533202310233193515533181468331724803316155733151355331414603313261053312135833116363310167633922983388423371780336291433352812633428127333626332124333114613341932305263229114432287303227177532261869322511453224105232231459322213513221949322021953219125932188313217134632161156321515663214146432131666321216753211114232101455329146032882532710363266323251763324249232318663228313211332419313427100313331122313222923131196831301658312925973128114131272178312610403125156531247303123156431221566312121873120301113119114531181654311718693116258231152911231141776311315543112187031111454311027105319835318839317166731618723158333149473133163124193111331419306010393059832305819763057942305620863055125530542481305314553052114630519413050197130491037304828115304718873046178330451151304493930431656304214573041156730402285303922873038167230371557303615623035104330346343033187130321145303194830302292302916603028271133027187930268313025166530242185302314643022136730212083302011403019146030188393017628301611583015943301452630139433012526301183230101360309321523082298307104430611423058333041246303831302293011330419296994729681765296715732966636296516642964156529632284296214502961136429601253295952529581786295772829569402955135629546382953126529521991295115642950166229491459294813522947198929462511229452189294410452943842294212432941198829402812429391369293816772937739293617742935730293412502933239029321667293115702930627292923103292814572927188729261244292527117292420762923136029221759292183229201972291913472918135229172711829161356291564029141669291311612912188629116372910311202997432982190297127029610422951245294104329311562921040291132941928881963288716602886155928851966288418752883146728822611328811765288016702879217828782810228772610528762910928751770287484028731362287221872871197828701558286972828681458286711422866735286563328641364286318842862840286117752860156628592082285817732857259728561350285515742854126528531555285283428516292850239228491349284826106284718862846207728451881284413522843167528421048284194428401051283912522838291082837186928361773283515752834145728339332832251002831207328302082282927109282815592827291102826114828252610628241550282327108282211442821104228201976281933119281816722817936281613462815381482814104928131765281216642811103728101767289186728813632872292286125528512592841985283938282419281132841927931151279215612791176327901352278911402788187127871866278615642785833278413572783114227821670278114562780114527797282778834277742127761247277510372774831277310382772932277173027709322769940276812472767944276614442765145727641978276320822762167027612189276027104275912492758631275773927561558275511472754839275352827521144275194327507312749146827481042274713512746136127451358274428110274312432742145927411247274038136273916552738114727371360273616692735839273413612733125327321350273152327308342729933272811472727728272682727251462272417772723114227221447272194527201244271924106271820852717943271619772715156927141158271383627121972271111352710207427972827814562771665276728275104327410452739472723162716242741926227199226226521262257222622432126223423262225172622162526220417262193162621841526217420262167262621562826214319262139342621241926211522262104182620941626208727262076232620652026205419262042172620341826202522262017292620052426199625261985232619793526196417261953132619452226193416261924202619152126190829261891041261885192618793726186935261855222618452926183942261823212618162926180114026179317261784142617762026176422261755212617482926173631261723142617141826170318261695202616852126167935261661141261654232616411402616331726162414261617242616041826159521261581041261573202615673126155931261541138261535222615262726151420261503172614952626148418261473112614652126145114026144317261434142614272526141316261405212613910442613831326137518261369362613562326134210261333162613252426131317261304202612942326128521261271140261263172612541426124724261233152612252126121829261204182611962826118940261175162611693626115516261144192611372526112624261115262611031726109114026108317261074142610672426105418261045212610382926102726261013112610041426994192698419269762126964192695316269442126937282692622269131826903182689620268861926874172686624268552226846232683626268283126814182680416267941926784172677623267631926755222674628267341726725202671628267062326694192668521266782926663152665523266431626631357266262026618382660214265942326583142657420265631526553152654419265352526528352651114326507272649219626483122647420264631726458312644948264372626426252641125126407322639522263852426374162636734263583526347262633626263262426317232630519262983726289392627730262652326255202624940262352126228322621114626206252619732261810382617520261673226157332614623261383526126202611416261083226952126882926711392668382651143264114526362726241926113264192577124525765262575944257413642573104525729422571935257016692569836256822852567114725664202565114725645272563126125621350256111482560136125591772255813522557144425565242555145525541247255315642552733255172625509432549104625481355254711492546522254516572544155525439372542176825411144254016692539733253883725371369253694925359422534114825338372532156925311149253010412529114825287282527124925269442525739252473425239382522105125211985252020962519156525182187251716682516104025151350251483825139422512937251183925101762259942258176525716702561251255947254166625322922521973251944254192464228624632712024623918024617631524602310324591987245850219245711532456848245538173245423102245317762452104524511883245016672449728244811482447157024461147244531106244410442443381402442735244121832440331082439229924381458243719872436145524354820324341361243348217243217832431783502430156624291770242822872427198524261699242511492424947242313682422261212421351502420938241920852418731241793824161456241516702414156324131465241212592411281022410938249937248115024793724617812451143244199424318732422612224195124419231187292311718632311611422311584023114934231138342311272423111836231108432310914612310852223107731231068372310583423104628231031047231026302310110432310016652399830239851723977262396936239572723946262393620239263223912480239052623895222388144823875212386833238552223848292383124723828402381622238010472379730237810482377124423768442375114523748382373524237293723711675237010422369727236810422367421236694123657282364836236314472362124923617332360104523595212358523235772523567272355728235451923539392352833235112522350114823496302348424234773823467372345839234419852343727234262523418482340522233951923381241233710422336419233594223347322333251112332145523316242330725232983723281562232732138232651923251030232426104232317632322421232115662320940231913562318135623171041231652223155182314211042313622231272823116292310315239525238528237730236104223542123442023352123252123131423419227844199227712632276104122751145227493122732912222722913622711863227018602269941226872922671767226610432265271012264124522631555226217602261156022601656225973522581877225784122561259225516642254218922531674225227106225184122508412249931224811452247146022462397224514612244115122434182242936224117852240351482239104522381344223720892236271282235157622342089223311432232936223121812230241002229846222820942227145122261676222525108222493822232298222212522221415222062322191769221837144221722102221693822152285221417722213104122121448221125101221093522915612281345227124322613462257026222411442231244222228622110402241921112104321111829211108322110913502110811422110752521106623211051252211041666211031157211029382110193821100726219993521981142219720752196103721957322194124921936302192833219111572190199221891143218884021872383218663121857342184166921831041218212512181146521801045217914722178146121771261217612512175629217416752173158321728392171842217052921698332168735216793421661142216593621647372163939216273221618352160732215983421588372157735215613552155731215483121535252152114521519372150733214983721488432147208321461247214511462144188221431455214213502141135621401045213916612138730213783721361772213510492134104021331147213283921311357213018802129135121281559212762921268382125155321242282212362221221352212172721205262119135721181353211711422116735211583721146242113104821127292111104421108372198452189422171459216835215145821410442131572212114221173121419201351150201341979201331353201321259201311875201302085201299352012817672012712502012683820125828201241247201231870201226232012115652012014522011962120118722201171349201169422011511362011417652011314622011211422011193520110103820109124420108135620107620201063152010573220104124720103627201028362010173020100831209913442098123920972810420961662209551720942071209341820928282091937209017682089124420881248208715752086271052085936208493320836202082935208117652080157520795192078837207718692076124920751046207413422073146120721976207126115207083720691659206862120675192066124920651239206410422063136720625302061155920606232059833205814602057834205662820558412054939205319742052113520515212050929204951720481035204721872046727204510352044830204351920428312041213204035130203922932038620203751920366202035414203421120333122032312203131020302820295182028210202741620263102025515202451820234192022114020217322020520201941420181348201751820161037201510392014114420135232012937201151920101868209415208829207730206124420541920463120341520252320112204191998144619971045199694319955231994417199310381992624199141619909441989414198842019879371986524198562719847251983941198263319818331980522197993119787281977839197613621975259819749351973167419728361971934197082919691036196884319671038196683119651256196418611963933196211461961114619601251195911521958291291957316195683319559411954114819537291952736195110411950937194914601948145519471035194613541945124619441040194314501942165019418351940834193912461938114819371147193683519351653193493419339361932629193111491930834192910381928124019271141192618761925835192410381923145719225241921155719201138191993219188301917115119161042191593419146261913625191283419111146191013451991443198145219713451968301951352194145219351719251919115194191811024921810918681810862518107104818106942181051466181041149181035251810214651810111471810052718991148189815491897835189619771895124918942078189313511892310189162318901553188931018881350188713461886259118852918841034188393818823514818819401880105118791776187812481877241031876134618759291874166418731038187282718711565187012431869103618688241867621186611371865125118649341863208518621249186111491860134918598431858197518573011818561892185519831854145418531051185213651851135918502611118492812218481663184711521846136718452310218449371843113918422079184183018401562183919631838828183716571836125018351241183413501833115018321470183128123183012481829281291828301291827155418262381182583718241758182372518223315118213214218201356181938173181822109181734127181619801815187518141978181311481812939181173018101661189104218862718711441861146185165818462718331318215691811142184191711121721711022901710953017108835171071870171069451710594617104146117103940171021667171011978171001463179923921798147117972711417961147179514601794155817932692179212531791114517901037178914531788197617879301786135017851454178411401783125317821357178193617801456177912461778146017771142177613601775124817749371773136317721139177115701770178117692287176815571767187317661454176593517641996176310411762156417611358176025113175921921758187417571884175613521755156817541455175316711752944175125100175051917499451748942174719761746198217451258174421871743630174213481741104417401159173918671738724173713481736165717351156173417711733229017328341731135917301248172913551728125017279481726104517251253172412511723251081722936172111501720124517191252171818711717135317161468171521821714731171313591712231161711843171094217916711781149177231101761157175177617413601739311721257171219517419161288321612714511612612531612522911612417751612312491612294216121735161201143161191971161181566161175201611622941611522841611413571611394416112241071611115511611018651610972716108115616107136216106249416105115216104124816103166916102135616101176716100941169910411698840169718761696156416951557169419831693176816923213116912089169016811689241031688135916871043168619911685114516841451168373916826291681251101680251191679186816781575167719711676291091675271031674104216731562167221981671229216702074166924931668135416671565166617691665166116641463166317721662177116612396166012581659196516589371657734165612571655634165410381653124316521148165112511650732164914581648176716478311646728164516671644126316431561164252516411878164010371639115316381873163714461636281221635321181634104316332291163212641631156716302090162984416281982162721981626218616251569162494016231349162211551621732162010411619625161810391617727161642216151149161421100161313491612157116111671161013471691044168948167145916673116584016483016373616218681619421641915995221598624159772815968341595319159462715933141592319159142015904211589521158815631587736158651915851469158462415833191582630158153015805251579528157852415775191576315157552115748411573319157252415716251570523156941815686231567422156694015651462156442315637291562416156152015606291559624155862615575231556829155573215548351553728155293715514181550522154962615488301547104015463171545520154483015434201542114115415191540420153910461538418153741715366241535624153452015331139153293115317271530422152993615281245152772815268331525725152474215236291522126315211142152083415191152151872915175211516737151583615149391513726151252315118331510728159729158939157834156937155727154831153739152730151625154191452136014511036145063114496321448105014471142144612511445146414442610914439451442136014418391440939143913541438186114372611414361558143513551434156114339431432251071431218614301253142942114281250142718841426134914251255142415591423178314224418714213413814205181419145614182290141716621416725141552314141043141316781412177814112911214103314314937157148135014711481462611714521861441975143167614214541411672144191343156413421871134116681340135813398321338218213371974133625101133519891334145313333913913321355133151193133028106132983813281152132719671326167413252394132473013231572132219101132113541320734131915581318271181317421821316451881315115513142710713131986131294213113512113101454139530138155813715561362090135251121342711113324101132261151311560134191211123941211019791210929123121081767121071459121067301210511491210410361210362612102145712101211051210047169129914551298935129793912962072129562712941247129312561292114612919391290238412891039128822101128721811286134712851249128413511283187012821153128118721280371391279135012781663127724841276331231275114512746251273124812721244127152712701565126916621268301101267281111266248812652611412641766126317711262147412616291260103512591772125893912577351256177212558331254146112531554125212471251291101250229212491139124815531247145712462296124511501244841124325105124218701241208612403212712391046123826104123726112123627115123511381234104112331768123219841231321311230187312291042122813431227103612261968122523891224197612232391122294312213213812209421219177712181873121719801216420121517761214938121313541212834121112431210166812914591281557127730126251061251663124166312316641226311215221241911123167311122318111219411112017691111915611111810421111783511116261101111572911114146811113176611112124611111104311110187211109207711108187511107155711106937111051036111045201110316571110212441110124941110093611999421198946119710441196631119510371194188611932082119216651191197911909371189237811883613711872182118611421185157411842711011838311182125711813011811801130117913431178271091177134811761554117552211741148117314601172134811719481170186811691563116812441167841116618731165114711641870116323851162228311612811111601768115912501158146111572181115618651155728115416651153166111521882115114521150186311491975114819721147196311462476114515561144198411432386114220731141114811402694113910421138197311371155113617581135125211341866113310381132145911313112311301038112923921128208111272911311261140112593511241161112314671122727112194111202410011191150111823100111739146111616651115146211141664111318751112279511111048111013561191147118229311731127116166411519851148281132598112935111103611419101091145101082387101072485101061655101059381010427100101031045101021564101011460101001453109915601098219410978331096830109510441094228510932410910921461109172810902711810891151108829131108716831086526108510481084135210832285108273310811764108010391079626107816771077114810761038107514691074229310731787107216601071341361070135910699351068259610671561106625901065104210641565106342110621036106142141106019761059207310581044105715631056522105516581054218410531143105213521051113910501253104922811048730104712491046156310452087104410421043114510421147104115601040124510391981103816661037228310361760103529971034176310331039103211481031271141030166310291046102818891027271181026167210251145102443198102326113102241166102122841020166810191771101829123101714541016186510153913810141042101317871012271041011188610101466109157410863010715711061462105231011042812610329113102269910152210419912915549128146091272179912616569125125491241882912317789122221029121187791205219991199419118311279117271099116176191151861911422889113208491121610991113717491101561910927101910823869107241179106125491051685910416679103166591021774910122999100251289992711399816719971669996145999518889943013299319869922390991261039901780989135698814769871146986188298516749841871983251129828439812711898025103979209397811479771567976937975125297446190973126297224107971241329702612596932168968167996719105966166796513649641773963166496212559612611496022118959198295816629571144956104595517819542295953124795222939511456950166594915639481664947178694615719451470944147794313529422311394115719404317693916709382912293731134936361609351984934291399331460932156493123102930231079292912392828113927124092618839252396924331709232097922831921104492016809192411091823999171883916241029151145914115991320939121879911136891010399913569816779723105961874952613394229893321359214649194187522958741885873135787245209871135487025948691146868103986720788662610786527115864937863207686212538611250860331348598358581455857104385612448551038854178285318688521774851937850136784918748483614084717768461367845136184419888432088842351498413315084010468391666838165983718818362198835135883421938331252832197283117698301674829198282810488271261826199582513588242195823114982210398218368201254819249781862681721868162081815125481463081313588122310381122998101867891152887338723101861151851147841147836348217828118898419720611487205166972048417203238972027317201125072001044719973271981252719710477196939719526997194146471931256719273371917287190125571892912571882810471873715371861040718522887184114071835187182840718173171801469717930122717810427177947717630132717513647174527717315647172261047171197971701052716940172716814777167198071661141716518797164198171632711871621773716120937160432007159832715832141715743222715630129715541170715415637153145971521569715111467150391727149187471482289714713637146361537145208971441565714341165714223109714118857140940713910367138249971372913971361160713511437134239071331380713212477131229471301047712922887128167671272110071261666712552271248417123197771223127121420712031771194257118625711711417116115571151140711452271131146711241671117347110730710993271086267107624710611367105186571049347103167171029417101231027100197979910447989387979407961885795188279413597931664792135979163379012537894215978822937871983786241077853815678484078373678213547811146780135377915637786337771666776837775239677425113773351327721366771251077701771769271137687307671139766145876516577641471763135976211447611139760932759217675817727572912375615657558357543214575338146752104575119957502087749156874814727471362746188774510487442811074336150742157074110427402310473914627384016173737157736115873519747341147733291107322611173116647301678729166972822947273113872620837257347241248723125472228130721526720251057191770718125471715667167367154167145217131350712175771116737101148791156789457762776636751246741043731457721350711474196165218661642910461638326162939616116666160166461591977615837138615735144615614616155844615417756153177561523514961514218061502711861498366148371426147135161462812261453912861444016761432310661421670614131145614020836139229561382611761372096613631128613519756134727613318716132937613110386130281346129838612836151612710416126941612528110612429118612315696122241006121209661201259611930116611810406117113961161863611511486114231056113126261122395611122100611013606109219061082510361071353610613446105844610415596103943610216536101186561001568699441876981359697166969612626951769694291286934920169222102691441716901666689178168816596879566868446857346842110068314586821152681229368025926791253678186567718696761554675950674145867324106672838671391606704517566912476682310366752166693266527105664103666317736621248661177166022956593111365814596572277656217465563565427108653157165225105651176565028103649843648156464714566462390645942644207964314636421157641124664015626391771638228263719676361050635281146342290633146663213606312711163019766299396281660627176862611476253213362410416231243622125762114546201368619371376187326171756616936615929614249261393761225100611104161013566994468135367166666311386512536411426312526214496114696419512011425119241025118114751172910851164515351151770511422975113156651122286511113615110642805109155951082299510726128510652213510520865104241005103218551029345101261005100167359911455989375972711959620865955119659424104593241165921372591209259016825894520558812525871869586740585146758416635832189582261285811570580197857910425781771577249057616585752598574840573259657234139571197857019895692092568311295672594566241045651262564472185631367562136356116685602711055921775581254557241095561148555136855438158553158055228116551231045501045549331365485122854716665462611754531140544411955431568542261135416828154019715391449538136453712495362488535146853413525333414053240162531261065309385291356528166452724995261462525135252417695232110052218755211570520239251929107518301345174215751618805152492514251195133214151245207511241075107405910475827117571986566228155432015431137536127852532425124975419417650191417515734174125041732612941721887417154216417024994169114441681250416711434166136141651566416414584163251314162261364161147341601460415914574158832415734128415663141552210341541990415337162415217784151843415022100414914494148145341471148414618924145114541441885414316584142199141413616141403313741391471413862841372078413629130413538163413414624133124941321040413132129413011434129221024128291264127401784126124541251773412416664123207241222195412173241207354119211094118836411711434116206741152081411426974113331354112145441111146411013504109197941082182410714544106730410515674104229441032010641026228141012396410031122499104049812644972712849683749533172494401704931670492602354913216249036168489281284882288487176148615574852277484228748330135482135648124101480124947918734783614347748204476209847531139474219347319754721763471114947072846918924683214676274662710746519774642310546316654621673461156546030125459291324582510245720100456209545511384541880453103745211434512094450104044914544482069447291214463817744594444414644434920544214614411243440155543915684381885437157843632158435229243440192433198843227108431125643013534292499428834427136042614614255826442442185423542654221763421114942017834193515741824106417209041614704152210741413554131879412882994117127141013634915714813704719914637186451679441458432811542168241291254419320011573199301213198218531977303196729319543188319414583193209531921145319121100319011573189938318820863187219931862410831852399318412553183281203182937318122953180301223179361463178177431771253317622873175115431741564317317773172156931711147317019783169135431681674316733151316694731652073316425107316383231621353316121683160187531593012131587283157145331563715731552189315475291315325106315240166315119843150626314913643148105031471987314621883145249931442710731431251314213603141633314024105313994131386293137135431361570313523104313413713133115531325293131527313013623129166131281245312794331261768312515693124136031231047312212573121114931202188311928127311831125311723983116187731159403114158431131459311235152311111483110231133109114431081149310710433106178131051465310414703103341573102135431011774310015693992077398135039725993961042395114739411443932499392155639124913901462389114338893738794738618833851352384291263831462382729381331463801367379281203782912037727116376936375361443748343733211537217793711152370939369135436813663671461366207536516703643212936362836215543612511436072535915473587323571159356136035531132354630353946352208635183435019803494518734853534723793467333452191344208134383734213603412080340176333920923381552337351383362410933518663347273331148332114733114623302696329227932827113327218632625923251553324156532320813221150321188832026122319261073181872317654316115031524107314241253132911631294331114683101666391347381554374619736135035113734187433115332724311334192286491962285271182284281032283321382282129551228115542280145222791772227814542277198722761145227545186227417792273301342272281122271208922701557226916652268136822673012522663514822652712322643917422631144226224922261249722603914822596724922584316922572411822562410222555018922542287225352208225294122512712222501577224960240224830114224743165224654217224516692244938224328106224273122416342240271162239156522388442237351402236251112235472002234251222233642882232331472231452032230301142229461932228401772227729222613542225146522241466222316812222271222221391822220261182219261232218167222175724722162593221522104221430127221349214221220932211207422101772220912492208166722071149220612522205145922041765220325103220283522011457220024972199124921982611021973012121967329021951466219422107219315652192624219125130219013592189271202188178721876528621861777218544185218432123218315612182165521811354218016772179939217838163217751266217614582175116121742912221732593217215622171186621702289216911502168176821672396216612572165311232164431872163935216293721611364216011572159209121582489215794221561045215512662154135021531153215263221511787215031138214917662148197521477272146147321453213021443414621434519621422189214115542140301272139146321381037213719792136311352135156321341554213327114213217702131933213018742129168121281776212714652126301222125221152124198321231867212212582121157021203111221191046211824103211711472116145621151252211430113211331141211217582111187221101776210933123210818732107175921061961210525982104136521031249210274308210122892100104429910442981255297187229625102295944294176729327131292115129130119290271072892610828810462872813828613632854923128415712832915028210522811354280239127924102278114527793627623101275197727437141273115727210452712497270176226918712682380267208326694526512542641354263157026224108261602572602811825918772582095257189025673025515602542712125373725283025112532501050249188424819692471258246838245847244105524374124284224118792401469239105123817682371143236198623519802341363233231012321248231157023028111229197022813602272082226391552253414522413662232078222239922112532202510221919862186192171772216115721573421416732131977212729211114321012512910492811472712532611472583324125223847227272113241917944163191541914312132121241811419”

4.2.2.1.1 Fact: Rewriting the full text by main descriptive numbers per verse index

Evidence 4.2.2.1 is the main evidence to rewrite the full text of Quran with the 4 main descriptor numbers of a text. If Evidence 4.2.2.1 was not successful, I would not be able to confidently hypothesize the additional follow up potential evidences such as this one. Because, when we mention a specific verse in Quran we naturally refer to it by its chapter and verse index such as this “Quran 74:30”. Therefore, any natural test must consider those numbers first as I did so in Evidence 4.2.2.1 and proved that when we rewrite, or in other words decode the text of Quran with its main descriptor numbers, the resulting big number is divisible by 19, which very strongly supports that Quran is intact and has correct order and unchanged as we Muslims already presume and accept so. However, after witnessing that great test, I decided to perform a follow up test. I wanted to test if there is any similar design with respect to the general order index of each verse from 1 to 6348 (column VerseI in the table). Then, the question was at which location should I place the general order verse index for concatenation. The previous natural order was not quite suitable as it does not fit in, for instance, the natural “74:30” like expression of a verse of Quran. I decided to place the general order of verse index at the beginning just like I naturally did myself while generating the table of the text of Quran and placing the general verse indexes, VerseI, at the beginning. This make sense because we also sometimes refer to a verse like “the first verse” in Quran without referring the chapter index. In a sense, these general verse order indexes are at the outer domain of chapter indexes and when we give only this index one can find out which chapter and which verse of that chapter by following the order of the verses in Quran. Thus, I locate the general verse indexes, VerseI, at the beginning and then follow the general order of concatenations afterwards. As I show in the following, rewriting the full text of Quran as in Evidence 4.2.2.1 but this time regarding the general verse order indexes results another big number that is also divisible by 19.

Considering all the 6348 verse of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

[Last General Verse index, 6348 | Chapter 114 | Total Words in Last Verse of Chapter 114 | Total Letters in Last Verse of Chapter 114] [ General Verse index 6347 | Chapter 114 | Total Words in Verse 5 of Chapter 114 | Total Letters in Verse 5 of Chapter 114] . . . . . . . [General Verse index 2 | Chapter 1 | Total Words in Verse 2 of Chapter 1 | Total Letters in Verse 2 of Chapter 1] [ General Verse index 1 | Chapter 1 | Total Words in Verse 1 of Chapter 1 | Total Letters in Verse 1 of Chapter 1]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

[ 6348 | 114 | 3 | 13] [ 6347 | 114 | 5 | 20] . . . . . . [ 2 | 1 | 4 | 18] [1 | 1 | 4 | 19]

And, the final number after all the concatenation would look like this:

6348114313 6347114520 . . . . . . 21418 11419

63481143136347114520 . . . . . . 2141811419

Here is the proof with a reproducible R code that rewrites, namely decodes, the full text of Quran by the 4 different descriptor numbers first and then test this big number.

x<- data.table(unQuran)
tmp <- paste0(x$VerseI,x$chapter,x$vwords,x$vletters) 
head(tmp)
## [1] "11419" "21418" "31212" "41312" "51419" "61319"
#Revert the order from right to left as in Arabic.
tmpr <- rev(tmp)
head(tmpr)
## [1] "6348114313" "6347114520" "6346114417" "634511428"  "634411428" 
## [6] "6343114414"
tmpr <- paste0(tmpr, collapse = '')
cat(as.numeric(as.bigz(tmpr) %% 19))# "0"
## 0
cat("number of digits on this big number is", nchar(tmpr))
## number of digits on this big number is 58714

Since I used the number 6348 for general verse indexes of the full text, I also tested the unnumbered version for the number 6236. This fact only passes the test for the full text of Quran that is based on 6348 general verse indexes, which is more assuring in fact as we are rewriting or decoding the text of Quran.

You can access this “58714” digits length big number from the following link:

https://github.com/quran2019/Quran19/blob/master/6_1_1_rewrite.txt

One can just copy the big number and paste it into a web based big number calculator and test it herself.

Also, here is the “58714” digits length big number:

“6348114313634711452063461144176345114286344114286343114414634211441963411135156340113520633911351563381134963371134146336113419633511251563341124126333112296332112411633111241963301115156329111317632811141563271116196326111515632511141963241107306323110731632211051963211104196320109414631910951963181095176317109519631610941463151094166314109419631310841563121083126311108316631010841963091072146308107313630710752063061072116305107520630410741763031074196302107419630110672663001064186299106423629810621062971064196296105315629510541862941054206293105519629210572562911054196290104310628910431462881044186287104314628610441662851044176284104415628310441662821044146281104419628010395262791034156278103166277103419627610252162751024186274102211627310252062721024146271102312627010231462691022136268102419626710128626610141362651012962641014166263101414626210141762611014246260101526625910141762581012962571011762561014196255100519625410041462531007256252100417625110041562501004186249100311624810031162471002136246100213624510021362441004196243996216242996226241996326240994136239993166238994166237993186236994206235994196234982183623398942623298166662319816786230981145622998311622898623622798125662269841962259751862249793762239762062229751962219752162209741962199652062189621262179621062169631562159662662149651762139641562129631262119651862109631062099631362089641462079631162069641762059651862049631362039631462029641562019651862009641961999542161989541761979594261969541861959562661949531561939529619295214619195419619094312618994313618894413618794414618694312618594312618494313618394413618294419618193416618093417617993417617893315617793313617693416617593418617493520617393515617293312617193166170934196169922961689252161679262161669241761659221461649231261639241761629231661619241961609231261599262161589221361579221161569241661559221361549221161539241561529231161519241861509231461499231361489241961479131361469173961459173061449131361439131561429141361419141361409132061399131261389131461379131561369131561359131561349131461339121261329141961319031361309063261299031761289094561279041561269031261259061961249026612390416612290314612190214612090212611990414611890515611790417611690620611590520611490311611390415611290415611190419611089210610989313610889521610789420610689415610589520610489521610389943610289519610189620610089417609989420609889523609789519609689104060958911496094893146093895186092893176091894176090893156089895266088896236087893126086896186085896166084893126083892126082892860818916608089419607988415607888313607788422607688413607588314607488415607388416607288417607188417607088625606988212606888212606788212606688313606588312606488415606388310606288211606188314606088618605988619605888413605788313605688210605588314605488417605388419605287315605187519605087315604987420604887414604787412604687619604587419604487214604387311604287416604187212604087931603987313603887313603787315603687312603587311603487415603387419603286423603186296030863146029863116028863106027863146026863156025866176024863146023864156022865226021864126020864186019866196018862116017864166016862146015864196014853106013854126012854176011855196010852106009854166008853116007853136006853156005854146004854136003851465600285146560018510406000859405999856275998854135997853145996853155995852115994852135993853165992854195991849415990843155989844175988844185987846265986844145985844155984843135983843125982843135981846185980845135979845185978842105977843135976846235975844195974844195973845215972849375971843145970844165969843125968843145967843145966844195965836245964833165963836305962834205961836275960836315959834195958838365957834195956833135955836325954834165953835225952833165951834165950832135949832959488341559478362459468372559458341759448362659438383059428373359418372259408342059398331659388329593783414593683622593583523593483285933835225932835245931836305930832115929834195928829345927826195926825185925824165924823155923824165922824165921823145920822115919823155918824175917826175916824185915827285914825185913823155912823145911823175910823155909824195908818325907815185906815185905812105904815185903815185902814195901813155900813105899816195898814155897813135896813135895812115894813135893814145892813145891813145890813145889813135888813105887813165886813145885813145884813145883813145882813145881813165880813125879814195878804195877802105876804195875802125874803145873806245872802125871802958708051758698031458688031758678021058668021058658021258648021058638031458628041558618041658608042158598051558588041358578031358568031258558041558548041158538041758528028585180295850802115849803105848803105847803125846803115845802758448041458438041458428031058418031158408041858398041658388031258378028583680419583579936583479519583379313583279414583179525583079416582979932582879417582779316582679395825794175824795205823794205822793175821792135820794205819794175818794205817793145816796255815796195814795265813794175812792958117931058107928580979316580879417580779616580679518580579625580479414580379314580279416580179519580079416579979527579879212579779314579679213579579314579479213579379213579279213579179213579079213578979419578878166957877893257867814585785781047578478518578378624578278210578178212578078212577978314577878523577778418577678318577578521577478295773783145772786245771783165770782115769784165768784215767784225766786265765785195764782115763784165762785255761783165760784205759783175758783165757783165756782145755782135754784175753783125752782105751784165750783135749782105748784195747774185746773165745776245744773165743775265742773165741774195740776295739773155738775205737773165736775185735775265734773165733774185732774145731773165730773125729774185728776205727776215726776245725773165724777385723772125722774175721773165720773185719773115718774175717775185716773165715773175714773155713773145712773165711775185710772957097731057087731357077731457067731457057731457047731557037731057027721357017721357007721356997721356987721356977741956967610425695761141569476931569376947569276840569176729569076521568976933568876627568776830568676135956857672956847694756837641956827663056817652356807683756797663456787610445677765235676768365675767295674761040567376737567276735567176733567076835566976635566876732566776104956667611405665764195664757275663755265662755175661756185660755215659754135658753115657755175656753125655754125654754175653753175652753125651753956507541756497551756487531556477531256467531456457521256447541756437541456427542056417541756407562056397531456387552156377562656367541856357538563475524563375315563275295631753125630754185629755235628756235627755245626754205625754175624754195623741144562274310562174311562074519561974931561874310561774315561674521561574422561474314561374417561274418561174416561074518560974412560874210560774314560674314560574517560474724560374210560274314560174313560074312559974295598745725055977431255967421055957441255947441355937429559274516559174619559074313558974395588742555877441155867431055857431055847421155837452155827441255817431355807421055797441755787441655777441855767441655757441655747421055737431355727421155717421055707428556974275568743125567744195566737832955657393155647362655637383555627363155617311515560738405559735225558734195557736355556737325555739365554736265553736215552738305551735215550736245549735185548734155547733125546734195545721352554472134455437272755427211365541721145554072166455397212405538728245537728265536721041553572831553472103955337283955327252755317210495530721452552972113955287293755277213445526721351552572841552472933552372114655227210375521727285520729335519729355518721349551772419551671157155157110415514711037551371125455127183555117113535510713155509711349550871420550771521550671525550571523550471731550371831550271314550171620550071944549971421549871627549771728549671416549571147954947152154937172654927118655491715255490717225489711451548871419548770944548670940548570842548470831548370735548270522548170828548070521547970524547870417547770524547670423547570528547470730547370104254727042154717051854707062454697042154687021454677052254667052254657021054647041754637041554627041754617029546070415545970210545870310545770622545670316545570212545470940545370416545270317545170419545070210544970314544870314544770114754467041554457041754447041654437041954426941754416931354406942054396952154386931754376962154366941754356931654346952354336941754326962454316972654306941554296931154286941654276941854266951754256952054246952054236962354226973154216931254206929541969313541869414541769418541669414541569114454146984054136921154126931054116941454106952054096994254086962654076994354066952554056931754046963054036962354026962954016973054006962853996963453986951653976915685396696275395694235394694205393694165392692853916916539069419538968519538868126253876852553866810405385681142538468521538368727538268518538168104453806811525379689385378688385377684165376681247537568517537468518537368414537268323537168626537068839536968103953686862353676852453666862653656872853646831253636852353626841753616862653606831953596872753586821353576821353566872753556821053546810505353683155352687335351685155350684135349684175348683135347685165346684175345683145344681139534368213534268213534168415534068518533968519533868416533768419533667104053356713495334671558533367135253326793453316773053306783153296712555328671247532767124253266715545325671562532467830532367124853226711405321671459532067727531967938531867938531767531531667113953156718635314671353531367832531267734531167126853106710425309671865530867115353076793353066741953056617795304662497530366271215302661262530166461945300661251529966231075298661782529766219252966629114529566114952946615575293664195292652596529165341535290651772528965732528865146452876525905286653214652856514545284652811852836521735282653013252816542173528065419527964529527864125052776416795276648395275641987527464937527364115952726416585271641159527064271225269641051526864186952676416825266641353526564146252646494952636411475262641759526164419526063114452596321855258631875525763179052566320905255631870525463146652536322104525263114452516312515250631782524963419524862218852476215725246622288524562187952446294552436218715242622310552416210395240628375239622192523862125252376241952366136164523561941523461177552336115725232611247523161146052306111545229611668522861321295227612410152266111465225619325224619345223611143522261419522160208052206039173521960219452186056258521760211015216602191521560156352146019735213601356521260522215211601362521060136852096049220520860419520759177852065919875205591351520459188452035910485202591051520159187252005910505199591768519859114751975923945196591245519559167351945928129519359231065192593113451915918985190593716651895925905188591360518759125151865914605185594118551845911435183594195182585122151815893451805883751795815725178581773517758156451765810435175581040517458197351735824115517258239251715831139517058178251695820105516858381675167584716351665815645165581881516458261155163582190516258231035161581873516058419515957228551585722945157573919151565714745155572813851545712565153571558515257216951515725108515057391805149572010551485712575147571355514657281185145571564514457209951435727132514257221095141571243514057371535139571769513857156951375715745136571252513557837513457361345133579405132571143513157939513057419512956417512856516512756210512656310512556626512456520512356622512256418512156519512056420511956520511856728511756316511656419511556422511456422511356417511256417511156311511056312510956520510856419510756417510656528510556630510456421510356628510256733510156422510056312509956210509856629509756525509656315509556632509456935509356732509256525509156314509056421508956416508856315508756419508656317508556517508456525508356524508256419508156215508056947507956525507856521507756413507656310507556311507456525507356313507256312507156212507056210506956214506856316506756210506656417506556211506456295063562850625629506156310506056525505956417505856625505756418505656319505556275054564165053563165052565215051565235050564205049563195048563125047563145046563125045563125044562135043562175042565275041565275040563165039563145038563135037564145036562105035563155034563145033564195032556275031554195030556265029554195028556225027554195026554185025554195024553135023554195022554195021554195020553175019554195018551850175541950165531450155541950145552350135541950125532050115541950105593750095541950085594150075541950065551950055541950045531650035541950025521050015541950005551949995541949985552149975562649965541949955564049945541949935582749925541949915563149905541949895583449885541949875517784986554194985554184984554194983551035498255419498155627498055412497955419497855631497755419497655423497555419497455418497355317497255419497155421497055419496955620496855524496755419496655420496555525496455317496355634496255417496155423496055318495955317495855210495755210495655294955551649545541949535462149525451949515441749505451849495462649485462649475451849465493549455452049445462949435442149425452049415493549405473649395451949385472949375431549365452249355494349345452949335472449325493849315441649305472949295484149285441649275442249265483249255473549245452349235493249225410414921543144920547294919544164918546274917549364916546234915547294914544164913546234912546244911545224910549384909545264908545214907549434906548354905548404904548284903545204902547284901546314900547314899544224898544194897533174896532114895533154894534194893536204892532104891535204890534174889533114888532134887539324886533124885534184884534144883534154882534194881534134880535264879534154878534154877534164876534194875534134874536214873535184872533154871537204870535194869533154868533144867533112948665316734865531654486453114148635316514862539474861531865486053317485953415485853259948575341448565341848555331848545331848535362148525351648515351848505331448495331448485341548475341748465351648455351848445351848435331048425331548415331148405331348395351448385341448375351648365331248355341948345252548335210414832521042483152933483052732482952939482852933482752733482652521482552727482452520482352940482252728482152731482052827481952629481852623481752831481652627481552728481452831481352931481252628481152727481052524480952732480852833480752528480652198448055273348045262948035283848025252048015212534800526224799526254798526214797525184796523174795523154794524174793524104792524144791522134790522134789522134788523947875221047865216478552419478451731478351943478251727478151930478051627477951525477851519477751621477651134647755111394774518294773517294772514254771515294770518314769517324768518374767518274766519324765517304764517344763516254762518344761517364760517284759516264758514194757515204756516264755515234754518324753519394752519384751515224750516234749519384748516284747519374746515234745514194744514204743515264742513194741516254740519374739515204738517324737515194736514184735515184734512114733514124732514154731513154730513134729513154728512134727512134726512134725512134724514194723501353472250936472150627472050732471950729471850525471750124947165013544715501341471450155447135062547125052447115072947105062247095052547085093347075083147065083447055010374704501041470350417470250621470150621470050124546995062346985062346975093446965082646955083746945014574693501036469250936469150419469050730468950837468850522468750104546865052046855011514684501253468350932468250936468150727468050114446795031446785041946774910454676491976467549166546744918914673492711646724921934671493212946704940159466949105346684930144466749728466649281274665491879466449124846634994146624917774661492398466049166446594941946584854249465748146046564828120465548281304654484017946534819774652481241465148125246504814524649481889464848737464748198646464827110464548281244644483114146434814614642489434641482085464048371514639482510546384884946374852746364884046354821116463448199346334819944632484194631481561463048519462948419462847301294627476354626471365462547125846244715554623471155462247218646214785046204712664619471140461847104846174774146164715654615471663461447733461347737461247104546114712484610472711746094714734608471565460747632460647241044605474417246044713484603471454460247221084601471144460047167545994783545984763045974710464596474204595473174594473816745934718814592471881459147835459047419458946271074588461879458746228545864618654585461560458446207845834618804582461773458146104745804632138457946146045784618754577461355457646125445754625954574462712945734694345724617664571462811345704618814569464519345684694345674613524566461675456546197645644624954563462474456246259945614614594560469454559461864455846291064557461572455646629455546124554464194553458424552458374551451676455045146145494511434548452278454745125945464513624545451147454445145445434510524542451870454145166845404521784539452494453845135645374517854536457324535451564453445135545334524102453245137445314511444530451461452945166045284514634527451142452645197245254511454524451457452345414452245125345214520894520459344519456314518456294517451245164541945154431745144452945134472545124410484511445224510444194509445274508443114507445194506446194505445204504447254503445244502442104501444184500442104499443124498448294497441034449644523449544836449444737449344125044924452444914483244904431444894472944884462944874472844864473344854483744844442244834442044824431444814451844804462744794452444784462344774452144764462444754493544744493144734483544724462944714462944704462544694472844684462644674452044664462844654451444644410394463448374462447264461446234460445174459448344458442134457441244564441944554362644544382744534383744524313524451431363445043114444494384244484383644474383144464311484445435224444437344443439374442436294441436224440436264439436274438437354437431569443643529443543529443443934443343734443243104044314311474430439364429431779442843729442743104544264383644254310424424431448442343933442243424442143636442043736441943114644184311344417431867441643730441543124744144313554413437314412431255441143135344104362644094383644084373444074362644064311404405439404404431249440343738440243113844014312534400435304399431777439843251114397431042439643936439543939439443732439343522439243940439143736439043146043894321834388431146438743833438643155343854312664384439344383431246438243731438143937438043419437943208443784311494377431250437643114543754310524374437324373438324372436234371438354370437274369436304368432134367431243664341943654215564364422710943634222774362421147436142156243604227115435942216843584216564357422712343564220724355428284354421566435342935435242145743514262943504211644349421050434842177443474293643464272643454215554344426294343421448434242104143414216634340421352433942176843384212644337421251433642229143354229118433442241074333422284433242227543314293843304222964329421152432842187143274234149432642301144325423815243244213564323421989432242155943214216604320421971431942229043184212534317421990431642103843154210434314421343134212431242419431141123943104119734309411751430841135643074132130430641114343054112404304412810743034111464302411872430141301294300411753429941134642984193942974126101429641229142954112554294411988429341115042924111424291411771429041135142894141442884116704287411993428641167942854114614284411055428341115242824125994281411148428041946427941208442784118784277411256427641834427541527427441147442734119894272412510242714123944270419404269411989426841166742674115674266411462426541940426441836426341167442624117754261417334260417334259414194258411242574141942564017704255401251425440156742534025104425240628425140125942504094342494032123424840145842474084242464011464245401760424440723424340623424240632424140944424040103942394012444238403011842374020764236401453423540219842344073342334012414232402082423140136242304011434229401369422840125342274023934226401253422540420422440841422340104642224011534221401673422040135342194012454218401982421740136142164010424215401250421440228642134015614212401041421140238842104012484209409374208402394420740104042064023934205403010542044016524203407274202401455420140114142004027101419940391464198401348419740186941964019874195407344194406314193401363419240301194191401562419040628418940156741884013474187401559418640166341854083741844014534183401562418240136541814015674180401253417940167641784027128417740104241764021984175401352417440145641734062941724012417140419417039177741693916734168392094416739945416639341514165399324164391574416339227741623917864161396244160391462415939734415839115741573992841563911504155391465415439104541533912424152399324151391551415039166441493913524148392185414739155941463915684145391143414439228341433911434142392597414139177641403918764139391148413839145441373926107413639187741353983241343910404133393614841323912414131391557413039125841293983341283983441273915584126397304125394164124391981412339728412239114441213912594120391040411939136141183934132411739207741163931120411539208041143910384113391367411239126041113917614110391985410939621410839929410739523410639931410539229541043924105410339341224102393112641013936138410039231054099391663409839331264097391045409639629409539419409438417409338518409238103640913873140903841740893842040883842340873841840863841740853862440843862340833852040823810344081381554408038628407938422407838936407738932407638827407538933407438313407338411407238737407138114040703862140693863040683810384067381140406638114540653810384064384154063384204062384214061385194060387214059385214058384224057387354056385224055386234054388384053385284052385264051388484050381454404938104640483862640473811464046386224045387284044384214043384204042388334041381549404038939403938630403838114240373862940363873340353895040343813664033381670403238311224031389334030383213740293815604028382393402738730402638633402538520402438736402338114440223883240213810354020387224019387364018388344017386244016381048401538731401438155040133810384012381251401138832401038104440093810374008386224007384154006384194005374194004373164003376234002373154001374144000376303999372173998373173997374143996374193995373163994375293993374183992374203991376223990373153989373163988373153987376203986375163985374173984373143983374193982374173981371047398037524397937414397837210397737414397637420397537419397437521397337629397237529397137420397037626396937522396837421396737622396637521396537419396437419396337520396237418396137317396037422395937314395837418395737419395637418395537419395437419395337414395237419395137419395037318394937524394837528394737518394637419394537421394437419394337417394237421394137323394037323393937424393837529393737521393637104839353752739343741939333731639323731439313741939303731539293752039283773139273741939263741939253728100392437316392337516392237623392137529392037732391937419391837418391737316391637420391537413391437626391337315391237311391137416391037418390937522390837625390737516390637418390537315390437419390337419390237520390137419390037420389937525389837526389737419389637524389537420389437522389337418389237420389137520389037723388937632388837421388737623388637422388537623388437421388337519388237628388137313388037626387937519387837521387737415387637734387537419387437723387337524387237313387137420387037724386937316386837519386737314386637312386537314386437416386337419386237623386137422386037522385937633385837103838573742038563752538553742038543762538533710363852375213851376283850375243849374173848374143847373173846377293845377383844377273843376243842377283841374163840372153839377353838376213837374193836374173835373133834371246383337728383237417383137937383037518382937631382837735382737312382637213382537213382437211382337419382236835382136103438203614633819361144381836103738173611413816361142381536936381436730381336731381236629381136633381036125038093683338083612433807367303806361049380536946380436115738033652438023652138013683638003652337993614503798364253797365163796366233795367323794367283793361142379236103937913613533790361039378936733378836835378736730378636249237853611423784361145378336622378236933378136623378036835377936155837783673737773683937763693737753613563774368373773361044377236105037713662337703611453769361247376836830376736134737663672737653683037643641937633651737623615583761368313760367293759361146375836938375736125537563652337553662837543615553753361157375236838375136145837503612543749368363748361251374736104537463683037453673037443631737433631337423631437413621337403612373936419373835259737373530120373635261113735351983373435197637333533132373235241003731351044373035251083729351872372835145537273511453726351357372535219937243516653723358373722351676372135177837203522943719357273718351367371735124837163541237153516623714354163713354183712354213711353413837103551837093562337083511473707351881370635281153705352812737043534115370335241083702351776370135259137003513623699351358369835156336973511433696352285369535196836943524100369335419369234155736913410383690349363689341035368834165736873482936863472636853417523684342489368334145936823411473681343413036803418773679341358367834105136773420733676349453675342310036743413493673348393672341454367134341603670341569366934321433668341041366734730366634125436653412483664341146366334935366234176236613422853660342693365934217036583410453657341987365634178236553483536543416753653342074365234271093651341987365034271073649341251364834135336473429105364634166636453416613644341666364334114636423410503641343212336403418683639341767363834419363733159336363318923635331459363433940363333177136323383736313384636303312553629338333628337293627331562362633124336253363436243319873623332299362233126736213314633620331463361933301263618331139361733702943616332585361533351373614336226736133323103361233125836113383336103362936093383836083383536073313653606333163605338353604331766360333136136023322753601334819636003324923599333022335983314563597332512235963320813595331464359433176935933314643592331679359133136135903316773589331674358833167235873318753586331885358533176535843323102358333351553582331468358133248035803315573579331355357833146035773326105357633135835753363635743316763573332298357233842357133178035703329143356933281263568332812735673362635663312433565331461356433419356332526356232114435613273035603217753559321869355832114535573210523556321459355532135135543294935533221953552321259355132831355032134635493211563548321566354732146435463216663545321675354432114235433214553542321460354132825354032103635393263235383217633537322492353632186635353283135343213353332419353231271003531313112235303122923529311968352831165835273125973526311141352531217835243110403523311565352231730352131156435203115663519312187351831301113517311145351631165435153118693514312582351331291123512311776351131155435103118703509311454350831271053507318353506318393505311667350431187235033183335023194735013131635003141934993113349831419349730103934963083234953019763494309423493302086349230125534913024813490301455348930114634883094134873019713486301037348530281153484301887348330178334823011513481309393480301656347930145734783015673477302285347630228734753016723474301557347330156234723010433471306343470301871346930114534683094834673022923466301660346530271133464301879346330831346230166534613021853460301464345930136734583020833457301140345630146034553083934543062834533011583452309433451305263450309433449305263448308323447301360344630321523445302298344430104434433011423442308333441301246344030831343930293438301334373041934362994734352917653434291573343329636343229166434312915653430292284342929145034282913643427291253342629525342529178634242972834232994034222913563421296383420291265341929199134182915643417291662341629145934152913523414291989341329251123412292189341129104534102984234092912433408291988340729281243406291369340529167734042973934032917743402297303401291250340029239033992916673398291570339729627339629231033395291457339429188733932912443392292711733912920763390291360338929175933882983233872919723386291347338529135233842927118338329135633822964033812916693380291161337929188633782963733772931120337629743337529219033742912703373291042337229124533712910433370291156336929104033682913336729419336628196333652816603364281559336328196633622818753361281467336028261133359281765335828167033572821783356282810233552826105335428291093353281770335228840335128136233502821873349281978334828155833472872833462814583345281142334428735334328633334228136433412818843340288403339281775333828156633372820823336281773333528259733342813503333281574333228126533312815553330288343329286293328282392332728134933262826106332528188633242820773323281881332228135233212816753320281048331928944331828105133172812523316282910833152818693314281773331328157533122814573311289333310282510033092820733308282082330728271093306281559330528291103304281148330328261063302281550330128271083300281144329928104232982819763297283311932962816723295289363294281346329328381483292281049329128176532902816643289281037328828176732872818673286281363328528229232842812553283281259328228198532812893832802841932792813327828419327727115132762715613275271763327427135232732711403272271871327127186632702715643269278333268271357326727114232662716703265271456326427114532632772832622783432612742132602712473259271037325827831325727103832562793232552773032542793232532794032522712473251279443250271444324927145732482719783247272082324627167032452721893244272710432432712493242276313241277393240271558323927114732382783932372752832362711443235279433234277313233271468323227104232312713513230271361322927135832282728110322727124332262714593225271247322427381363223271655322227114732212713603220271669321927839321827136132172712533216271350321527523321427834321327933321227114732112772832102782732092714623208271777320727114232062714473205279453204271244320327241063202272085320127943320027197731992715693198271158319727836319627197231952711353194272074319327728319227145631912716653190277283189271043318827104531872794731862731631852762431842741931832619923182265213181267223180263213179264233178265173177266253176264173175263163174264153173264203172267263171266283170263193169269343168264193167265223166264183165264163164267273163266233162265203161264193160262173159264183158265223157267293156265243155266253154265233153269353152264173151263133150265223149264163148264203147265213146268293145261041314426519314326937314226935314126522314026529313926942313826321313726629313626114031352631731342641431332662031322642231312652131302682931292663131282631431272641831262631831252652031242652131232693531222611413121264233120261140311926317311826414311726724311626418311526521311426104131132632031122673131112693131102611383109265223108266273107264203106263173105265263104264183103263113102265213101261140310026317309926414309826725309726316309626521309526104430942631330932651830922693630912662330902621030892631630882652430872631730862642030852642330842652130832611403082263173081264143080267243079263153078265213077268293076264183075266283074269403073265163072269363071265163070264193069267253068266243067265263066263173065261140306426317306326414306226724306126418306026521305926829305826726305726311305626414305526419305426419305326621305226419305126316305026421304926728304826622304726318304626318304526620304426619304326417304226624304126522304026623303926626303826831303726418303626416303526419303426417303326623303226319303126522303026628302926417302826520302726628302626623302526419302426521302326829302226315302126523302026316301926135730182662030172683830162621430152642330142631430132642030122631530112631530102641930092652530082683530072611433006267273005262196300426312300326420300226317300126831300026948299926726299826625299726125129962673229952652229942652429932641629922673429912683529902672629892662629882662429872672329862651929852683729842693929832673029822652329812652029802694029792652129782683229772611462976266252975267322974261038297326520297226732297126733297026623296926835296826620296726416296626832296526521296426829296326113929622683829612611432960261145295926627295826419295726132956264192955251245295425526295325944295225136429512510452950259422949259352948251669294725836294625228529452511472944254202943251147294225527294125126129402513502939251148293825136129372517722936251352293525144429342552429332514552932251247293125156429302573329292572629282594329272510462926251355292525114929242552229232516572922251555292125937292025176829192511442918251669291725733291625837291525136929142594929132594229122511482911258372910251569290925114929082510412907251148290625728290525124929042594429032573929022573429012593829002510512899251985289825209628972515652896252187289525166828942510402893251350289225838289125942289025937288925839288825176228872594228862517652885251670288425125128832594728822516662881252292288025197328792594428782541928772422862876242712028752439180287424763152873242310328722419872871245021928702411532869248482868243817328672423102286624177628652410452864241883286324166728622472828612411482860241570285924114728582431106285724104428562438140285524735285424218328532433108285224229928512414582850241987284924145528482448203284724136128462448217284524178328442478350284324156628422417702841242287284024198528392416992838241149283724947283624136828352426121283424351502833249382832242085283124731283024938282924145628282416702827241563282624146528252412592824242810228232493828222493728212411502820249372819241781281824114328172419942816241873281524261222814249512813244192812237292811231863281023114228092384028082393428072383428062372428052383628042384328032314612802235222801237312800238372799238342798236282797231047279623630279523104327942316652793238302792235172791237262790239362789237272788236262787236202786236322785232480278423526278323522278223144827812352127802383327792352227782382927772312472776238402775236222774231047277323730277223104827712312442770238442769231145276823838276723524276623937276523167527642310422763237272762231042276123421276023941275923728275823836275723144727562312492755237332754231045275323521275223523275123725275023727274923728274823519274723939274623833274523125227442311482743236302742234242741237382740237372739238392738231985273723727273623625273523848273423522273323519273223124127312310422730234192729239422728237322727232511127262314552725236242724237252723238372722231562272123321382720235192719231030271823261042717231763271623421271523156627142394027132313562712231356271123104127102352227092351827082321104270723622270623728270523629270423315270323525270223528270123730270023104226992342126982342026972352126962352126952331426942341926932244199269222126326912210412690221145268922931268822291222687222913626862218632685221860268422941268322729268222176726812210432680222710126792212452678221555267722176026762215602675221656267422735267322187726722284126712212592670221664266922218926682216742667222710626662284126652284126642293126632211452662221460266122239726602214612659221151265822418265722936265622178526552235148265422104526532213442652222089265122271282650221576264922208926482211432647229362646222181264522241002644228462643222094264222145126412216762640222510826392293826382222982637221252263622415263522623263422176926332237144263222221022631229382630222285262922177226282210412627221448262622251012625229352624221561262322134526222212432621221346262022702622619221144261822124426172222862616221040261522419261421104326132182926122183226112113502610211142260921525260821623260721125226062116662605211157260421938260321938260221726260121935260021114225992120752598211037259721732259621124925952163025942183325932111572592211992259121114325902184025892123832588216312587217342586211669258521104125842112512583211465258221104525812114722580211461257921126125782112512577216292576211675257521158325742183925732184225722152925712183325702173525692193425682111422567219362566217372565219392564217322563218352562217322561218342560218372559217352558211355255721731255621831255521525255421114525532193725522173325512183725502184325492120832548211247254721114625462118822545211455254421135025432113562542211045254121166125402173025392183725382117722537211049253621104025352111472534218392533211357253221188025312113512530211559252921629252821838252721155325262122822525216222524211352252321727252221526252121135725202113532519211142251821735251721837251621624251521104825142172925132110442512218372511218452510219422509211459250821835250721145825062110442505211572250421114225032173125022141925012011502500201979249920135324982012592497201875249620208524952093524942017672493201250249220838249120828249020124724892018702488206232487201565248620145224852062124842072224832013492482209422481201136248020176524792014622478201142247720935247620103824752012442474201356247320620247220315247120732247020124724692062724682083624672073024662083124652013442464201239246320281042462201662246120517246020207124592041824582082824572093724562017682455201244245420124824532015752452202710524512093624502093324492062024482093524472017652446201575244520519244420837244320186924422012492441201046244020134224392014612438201976243720261152436208372435201659243420621243320519243220124924312012392430201042242920136724282053024272015592426206232425208332424201460242320834242220628242120841242020939241920197424182011352417205212416209292415205172414201035241320218724122072724112010352410208302409205192408208312407202132406203513024052022932404206202403205192402206202401204142400202112399203122398203122397203102396202823952051823942021023932041623922031023912051523902051823892041923882011402387207322386205202385204142384201348238320518238220103723812010392380201144237920523237820937237720519237620186823752041523742082923732073023722012442371204192370206312369204152368205232367201223662041923651914462364191045236319943236219523236119417236019103823591962423581941623571994423561941423551942023541993723531952423521962723511972523501994123491963323481983323471952223461993123451972823441983923431913622342192598234119935234019167423391983623381993423371982923361910362335198432334191038233319831233219125623311918612330199332329191146232819114623271912512326191152232519291292324193162323198332322199412321191148232019729231919736231819104123171993723161914602315191455231419103523131913542312191246231119104023101914502309191650230819835230719834230619124623051911482304191147230319835230219165323011993423001993622991962922981911492297198342296191038229519124022941911412293191876229219835229119103822901914572289195242288191557228719113822861993222851983022841911512283191042228219934228119626228019625227919834227819114622771913452276191443227519145222741913452273198302272191352227119145222701951722691951922681915226719419226618249222651818682264186252263181048226218942226118146622601811492259185252258181465225718114722561852722551811482254181549225318835225218197722511812492250182078224918135122481831022471862322461815532245183102244181350224318134622421825912241182922401810342239189382238183514822371894022361810512235181776223418124822331824103223218134622311892922301816642229181038222818827222718156522261812432225181036222418824222318621222218113722211812512220189342219182085221818124922171811492216181349221518843221418197522131830118221218189222111819832210181454220918105122081813652207181359220618261112205182812222041816632203181152220218136722011823102220018937219918113921981820792197188302196181562219518196321941882821931816572192181250219118124121901813502189181150218818147021871828123218618124821851828129218418301292183181554218218238121811883721801817582179187252178183315121771832142217618135621751838173217418221092173183412721721819802171181875217018197821691811482168189392167187302166181661216518104221641862721631811442162181146216118165821601862721591831321581815692157181142215618419215517217221541722902153175302152178352151171870215017945214917946214817146121471794021461716672145171978214417146321431723922142171471214117271142140171147213917146021381715582137172692213617125321351711452134171037213317145321321719762131179302130171350212917145421281711402127171253212617135721251793621241714562123171246212217146021211711422120171360211917124821181793721171713632116171139211517157021141717812113172287211217155721111718732110171454210917935210817199621071710412106171564210517135821041725113210317219221021718742101171884210017135220991715682098171455209717167120961794420951725100209417519209317945209217942209117197620901719822089171258208817218720871763020861713482085171044208417115920831718672082177242081171348208017165720791711562078171771207717229020761783420751713592074171248207317135520721712502071179482070171045206917125320681712512067172510820661793620651711502064171245206317125220621718712061171353206017146820591721822058177312057171359205617231162055178432054179422053171671205217114920511723110205017115720491717762048171360204717931204617125720451721952044174192043168322042161451204116125320401622912039161775203816124920371694220361673520351611432034161971203316156620321652020311622942030162284202916135720281694420271624107202616155120251618652024167272023161156202216136220211624942020161152201916124820181616692017161356201616176720151694120141610412013168402012161876201116156420101615572009161983200816176820071632131200616208920051616812004162410320031613592002161043200116199120001611451999161451199816739199716629199616251101995162511919941618681993161575199216197119911629109199016271031989161042198816156219871621981986162292198516207419841624931983161354198216156519811617691980161661197916146319781617721977161771197616239619751612581974161965197316937197216734197116125719701663419691610381968161243196716114819661612511965167321964161458196316176719621683119611672819601616671959161263195816156119571652519561618781955161037195416115319531618731952161446195116281221950163211819491610431948162291194716126419461615671945162090194416844194316198219421621981941162186194016156919391694019381613491937161155193616732193516104119341662519331610391932167271931164221930161149192916211001928161349192716157119261616711925161347192416104419231694819221614591921167311920168401919168301918167361917161868191616942191516419191415522191315624191215728191115834191015319190915627190815314190715319190615420190515421190415521190315156319021573619011551919001514691899156241898153191897156301896155301895155251894155281893155241892155191891153151890155211889158411888153191887155241886156251885155231884154181883156231882154221881159401880151462187915423187815729187715416187615520187515629187415624187315626187215523187115829187015732186915835186815728186715937186615418186515522186415626186315830186215104018611531718601552018591583018581542018571511411856155191855154201854151046185315418185215417185115624185015624184915520184815113918471593118461572718451542218441593618431512451842157281841158331840157251839157421838156291837151263183615114218351583418341511521833157291832155211831157371830158361829159391828157261827155231826158331825157281824157291823159391822158341821159371820157271819158311818157391817157301816156251815154191814141360181314103618121463118111463218101410501809141142180814125118071414641806142610918051494518041413601803148391802149391801141354180014186117991426114179814155817971413551796141561179514943179414251071793142186179214125317911442117901412501789141884178814134917871412551786141559178514178317841444187178314341381782145181781141456178014229017791416621778147251777145231776141043177514167817741417781773142911217721433143177114371571770141350176914114817681426117176714218617661419751765141676176414145417631416721762144191761131564176013187117591316681758131358175713832175613218217551319741754132510117531319891752131453175113391391750131355174913511931748132810617471383817461311521745131967174413167417431323941742137301741131572174013191011739131354173813734173713155817361327118173513421821734134518817331311551732132710717311319861730139421729133512117281314541727135301726131558172513155617241320901723132511217221327111172113241011720132611517191315601718134191717122394171612197917151229123171412176717131214591712127301711121149171012103617091262617081214571707122110517061247169170512145517041293517031293917021220721701126271700121247169912125616981211461697129391696122384169512103916941222101169312218116921213471691121249169012135116891218701688121153168712187216861237139168512135016841216631683122484168212331231681121145168012625167912124816781212441677125271676121565167512166216741230110167312281111672122488167112261141670121766166912177116681214741667126291666121035166512177216641293916631273516621217721661128331660121461165912155416581212471657122911016561222921655121139165412155316531214571652122296165112115016501284116491225105164812187016471220861646123212716451210461644122610416431226112164212271151641121138164012104116391217681638121984163712321311636121873163512104216341213431633121036163212196816311223891630121976162912239116281294316271232138162612942162512177716241218731623121980162212420162112177616201293816191213541618128341617121243161612166816151214591614121557161312730161212251061611121663161012166316091216641608126311607125221606124191605111673160411318160311941160211176916011115611600111042159911835159811261101597117291596111468159511176615941112461593111043159211187215911120771590111875158911155715881193715871110361586115201585111657158411124415831124941582119361581119421580119461579111044157811631157711103715761118861575112082157411166515731119791572119371571112378157011361371569112182156811114215671115741566112711015651183115641112571563113011815621111301561111343156011271091559111348155811155415571152215561111481555111460155411134815531194815521118681551111563155011124415491184115481118731547111147154611187015451123851544112283154311281111542111768154111125015401114611539112181153811186515371172815361116651535111661153411188215331114521532111863153111197515301119721529111963152811247615271115561526111984152511238615241120731523111148152211269415211110421520111973151911115515181117581517111252151611186615151110381514111459151311311231512111038151111239215101120811509112911315081111401507119351506111161150511146715041172715031194115021124100150111115015001123100149911391461498111665149711146214961116641495111875149411279514931110481492111356149111114714901122931489113112714881116641487111985148611828148511259814841193514831110361482114191481101145148010238714791024851478101655147710938147610271001475101045147410156414731014601472101453147110156014701021941469108331468108301467101044146610228514651024109146410146114631072814621027118146110115114601029131145910168314581052614571010481456101352145510228514541073314531017641452101039145110626145010167714491011481448101038144710146914461022931445101787144410166014431034136144210135914411093514401025961439101561143810259014371010421436101565143510421143410103614331042141143210197614311020731430101044142910156314281052214271016581426102184142510114314241013521423101139142210125314211022811420107301419101249141810156314171020871416101042141510114514141011471413101560141210124514111019811410101666140910228314081017601407102997140610176314051010391404101148140310271141402101663140110104614001018891399102711813981016721397101145139610431981395102611313941041166139310228413921016681391101771139010291231389101454138810186513871039138138610104213851017871384102710413831018861382101466138110157413801063013791015711378101462137710231011376102812613751029113137410269913731052213721041913719155413709146013699217913689165613679125413669188213659177813649221021363918771362952199136199411360931127135992710913589176113579186113569228813559208413549161091353937174135291561135192710113509238613499241171348912541347916851346916671345916651344917741343922991342925128134192711313409167113399166913389145913379188813369301321335919861334923901333926103133291780133191356133091476132991146132891882132791674132691871132592511213249843132392711813229251031321920931320911471319915671318993713179125213169461901315912621314924107131392413213129261251311932168131091679130991910513089166713079136413069177313059166413049125513039261141302922118130191982130091662129991144129891045129791781129692295129591247129492293129391456129291665129191563129091664128991786128891571128791470128691477128591352128492311312839157112829431761281916701280929122127993113412789361601277919841276929139127591460127491564127392310212729231071271929123127092811312699124012689188312679239612669331701265920971264983112639104412629168012619241101260923991259918831258924102125791145125691159125592093125491879125391368125291039125191356125091677124992310512489187412479261331246922981245932135124491464124399411242822951241818851240813571239845209123881354123782594123681146123581039123482078123382610712328271151231893712308207612298125312288125012278331341226883512258145512248104312238124412228103812218178212208186812198177412188937121781367121681874121583614012148177612138136712128136112118198812108208812098351491208833150120781046120681666120581659120481881120382198120281358120182193120081252119981972119881769119781674119681982119581048119481261119381995119281358119182195119081149118981039118888361187812541186824971185862611848218611838208111828125411818630118081358117982310311788229911778186711768115211758733117482310111738115111728114711718114711708634116981782116881889116784191166711481165716691164784111637238911627731116171250116071044115977321158712521157710471156793911557269911547146411537125611527733115177281150712551149729125114872810411477371531146710401145722881144711401143751811427840114177311140714691139730122113871042113779471136730132113571364113475271133715641132726104113171979113071052112974017211287147711277198011267114111257187911247198111237271181122717731121720931120743200111978321118732141111774322211167301291115741170111471563111371459111271569111171146111073917211097187411087228911077136311067361531105720891104715651103741165110272310911017188511007940109971036109872499109772913910967116010957114310947239010937138010927124710917229410907104710897228810887167610877211001086716661085752210847841108371977108273121081742010807317107974251078762510777114110767115510757114010747522107371146107274161071773410707730106979321068762610677624106671136106571865106479341063716711062794110617231021060719791059710441058793810577940105671885105571882105471359105371664105271359105176331050712531049742159104872293104771983104672410710457381561044784010437736104271354104171146104071353103971563103876331037716661036783710357239610347251131033735132103271366103172510710307177110297271131028773010277113910267145810257165710247147110237135910227114410217113910207932101972176101871772101772912310167156510157835101473214510137381461012710451011719951010720871009715681008714721007713621006718871005710481004728110100373615010027157010017104210007231049997146299874016199773715799671158995719749947114799372911099272611199171664990716789897166998872294987731138986720839857734984712489837125498272813098175269807251059797177097871254977715669767736975741697475219737135097271757971716739707114896971156968794596776279667636965712469647104396371457962713509617149607419959621869586291049576832956693995561666954616649536197795263713895163514495061461949684494861775947617759466351499456421809446271189436836942637142941613519406281229396391289386401679376231069366167093563114593462083933622959326261179316209693063112892961975928672792761871926693792561038924628134923683892263615192161041920694191962811091862911891761569916624100915620969146125991363011691261040911611399106186390961148908623105907612629066239590562210090461360903621909026251039016135390061344899684489861559897694389661653895618658946156889364418789261359891616698906126288961769888629128887649201886622102885644171884616668836178188261659881695688068448796734878621100877614588766115287562293874625928736125387261865871618698706155486969508686145886762410686668388656391608646451758636124786262310386165218606932859627105858610368576177385661248855617718546229585363111385261459851622778506217484966358486271088476157184662510584561765844628103843684384261564841614568406239083969428386207983761463836611578356124683461562833617718326228283161967830610508296281148286229082761466826613608256271118246197682369398226166082161768820611478196321338186104181761243816612578156145481461368813637137812673281161756810693680969298086249280769378066251008056104180461356803694480261353801616668006311387996125379861142797612527966144979561469794641979351142792524102791511477905291087895451537885177078752297786515667855228678451361783564280782515597815229978052612877955221377852086777524100776521857755934774526100773516737725114577159377705271197695208676855119676752410476652411676551372764520927635168276254520576151252760518697595740758514677575166375652189755526128754515707535197875251042751517717505249074951658748525987475840746525967455341397445197874351989742520927415311297405259473952410473851262737547218736513677355136373451668733527110732521777315125473052410972951148728513687275381587265158072552811672452310472351045722533136721551228720516667195261177185311407175411957165156871552611371456828171351971712514497115136471051249709524887085146870751352706534140705540162704526106703593870251356701516647005249969951462698513526975176969652110069551875694515706935239269252910769153013469054215768951880688524926875251196865321416855452076845241076835740682510476815271176805198667956228167854320167753113767656127867555324267452497673541967245019167141573670412506694261296684188766745421666642499665411446644125066341143662413616614156666041458659425131658426136657414736564146065541457654483265343412865246316514221036504199064943716264841778647484364642210064541449644414536434114864241892641411456404188563941658638419916374361616364331376354147163446286334207863242913063143816363041462629412496284104062743212962641143625422102624429126623440178622412456214177362041666619420726184219561747326164735615421109614483661341143612420676114208161042697609433135608414546074114660641350605419796044218260341454602473060141567600422945994201065984622815974239659643112259541040594412645934271285924837591433172590440170589416705884602355874321625864361685854281285844228858341761582415575814227758042287579430135578413565774241015764124957541873574436143573448204572420985714311395704219356941975568417635674114956647285654189256443215634627562427107561419775604231055594166555841673557415655564301255554291325544251025534201005524209555141138550418805494103754841143547420945464104054541454544420695434291215424381775414944540414645394492055384146153741243536415555354156853441885533415785324321585314229253044019252941988528427108527412565264135352542499524483452341360522414615214582645204421855194542655184176351741149516417835154351575144241065134209051241470511422107510413555094187950848829950747127150641363505415715044137050341991502437186501416795004145849942811549841682497429125496441949531157494330121493321854923730491372949034318848931458488320954873114548632110048531157484393848332086482321994813241084803239947931255478328120477393747632295475330122474336146473317744723125347132287470311544693156446831777467315694663114746531978464313544633167446233315146139474603207345932510745838324573135345632168455318754543301214533728452314534513371574503218944937529144832510644734016644631984445362644431364443310504423198744132188440324994393271074383125143731360436363343532410543439414333629432313544313157043032310442931371428311554273529426352742531362424316614233124542239434213176842031569419313604183104741731257416311494153218841432812741333112541232398411318774103940409315844083145940733515240631148405323113404311444033114940231043401317814003146539931470398334157397313543963177439531569394320773933135039232599391310423903114738931144388324993873155638632491385314623843114338339373823947381318833803135237932912637831462377372937633314637531367374328120373329120372327116371393637033614436938343683321153673177936631152365393936431354363313663623146136132075360316703593321293583628357315543563251143553725354315473533732352311593513136035033113234936303483946347320863463834345319803443451873433535342323793413733340321913393208133838373373136033632080335317633343209233331552332335138331324109330318663293727328311483273114732631462325326963243227932332711332232186321325923203155331931565318320813173115031631888315326122314326107313318723123654311311503103241073093241253083291163073943306314683053166630431347303315543023461973013135030031137299318742983115329737242963132953419294249196293227118292228103291232138290212955128921554288214522872177228621454285219872842114528324518628221779281230134280228112279220892782155727721665276213682752301252742351482732271232722391742712114427022492269224972682391482672672492662431692652241182642241022632501892622228726125220826029412592271222582157725726024025623011425524316525425421725321669252293825122810625027312492634248227116247215652462844245235140244225111243247200242225122241264288240233147239245203238230114237246193236240177235272923421354233214652322146623121681230227122229239182228226118227226123226216722252572472242259322322210422223012722124921422022093219220742182177221721249216216672152114921421252213214592122176521122510321028352092145720822497207212492062261102052301212042732902032146620222210720121565200262419922513019821359197227120196217871952652861942177719324418519223212319121561190216551892135418821677187293918623816318525126618421458183211611822291221812259318021562179218661782228917721150176217681752239617421257173231123172243187171293517029371692136416821157167220911662248916529421642104516321266162213501612115316026321592178715823113815721766156219751552727154214731532321301522341461512451961502218914921554148230127147214631462103714521979144231135143215631422155414122711414021770139293313821874137216811362177613521465134230122133222115132219831312186713021258129215701282311121272104612622410312521147124214561232125212223011312123114112021758119218721182177611723312311621873115217591142196111322598112213651112124911027430810922289108210441072104410621255105218721042251021032944102217671012271311002115199230119982271079722610896210469522813894213639324923192215719122915090210528921354882239187224102862114585293684223101832197782237141812115780210457922497782176277218717622380752208374294573212547221354712157070224108692602576822811867218776622095652189064273063215606222712161273760283059212535821050572188456219695521258542838532847522105551274150284249218794821469472105146217684521143442198643219804221363412231014021248392157038228111372197036213603522082342391553323414532213663122078302239929212532822510227219862626192521772242115723273422216732121977202729192114318212511721049162114715212531421147132833122125211284710272792138241971944613195141941312312122141811419”

4.2.2.1.2 Fact: Rewrite the full text by word and letter numbers per verse regarding verse indexes

Although I designated the coding of this section as a fact, in my opinion it might also be designated as a weak evidence as it is very meaningful coding example. In Evidence 4.2.2.1, I had used the 4 main descriptors numbers to rewrite the full text of Quran. It was the natural way of rewriting the full text by the 4 main descriptive numbers. However, we can also refer to each verse by their general verse index that we assign from 1 to 6348 to the full text. Since we refer to the total verse number 6348, we also consider the unnumbered version 6236 as well for testing. If we use only these general verse indexes and refer to each verse, we can similarly rewrite the full text of Quran by the number of words and letters per verse in order. Because as mentioned before, these general verse indexes also incorporates the chapter information inside implicitly and enough to represent the full text of Quran precisely. As you will see in the following, I will rewrite, first, the full text of Quran regarding the total number of verses 6348.

As we know, Quran is written from right to left and I again follow this same pattern while rewriting the text by the descriptive numbers. This represents the whole text of Quran with respect to number of words and letters per general verse index and supports the hypothesis that there is no redundant or missing words or letters in each verse and their orders are also correct.

Considering all the 6348 verse of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

[Last General Verse index, 6348 | Total Words in Last Verse of Chapter 114 | Total Letters in Last Verse of Chapter 114] [ General Verse index 6347 | Total Words in Verse 5 of Chapter 114 | Total Letters in Verse 5 of Chapter 114] . . . . . . . [General Verse index 2 | Total Words in Verse 2 of Chapter 1 | Total Letters in Verse 2 of Chapter 1] [ General Verse index 1 | Total Words in Verse 1 of Chapter 1 | Total Letters in Verse 1 of Chapter 1]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

[ 6348 | 3 | 13] [ 6347 | 5 | 20] . . . . . . [ 2 | 4 | 18] [1 | 4 | 19]

And, the final number after all the concatenation would look like this:

6348313 6347520 . . . . . . 2418 1419

63483136347520 . . . . . . 24181419

In the following proof, I demonstrate that this hypothesis for the case of 6348, which represents the total general verse indexes of the full text of Quran.

#Verse index (VerseI)  as descriptor
x<- data.table(unQuran)
tmp <- paste0(x$VerseI,x$vwords,x$vletters) 
head(tmp)
## [1] "1419" "2418" "3212" "4312" "5419" "6319"
tmpr <- rev(tmp) ## matches the coding from right to left as in Arabic.
head(tmpr)
## [1] "6348313" "6347520" "6346417" "634528"  "634428"  "6343414"
tmpr <- paste0(tmpr, collapse = '')
cat(as.numeric(as.bigz(tmpr) %% 19))
## 0
cat("number of digits on this big number is", nchar(tmpr))
## number of digits on this big number is 47284

One more fact based on this code is that, if we look at even and odd pattern of this coding, it is also multiple of 19.

Also, here is the “47284” digits length big number:

“6348313634752063464176345286344286343414634241963415156340520633951563384963374146336419633551563344126333296332411633141963305156329317632841563276196326515632541963247306323731632251963214196320414631951963185176317519631641463154166314419631341563123126311316631041963092146308313630752063062116305520630441763034196302419630172663004186299423629821062974196296315629541862944206293519629272562914196290310628931462884186287314628641662854176284415628341662824146281419628095262794156278166277419627652162754186274211627352062724146271312627031462692136268419626728626641362652962644166263414626241762614246260526625941762582962571762564196255519625441462537256252417625141562504186249311624831162472136246213624521362444196243621624262262416326240413623931662384166237318623642062354196234218362339426232166662311678623011456229311622862362271256622641962255186224937622362062225196221521622041962195206218212621721062163156215626621451762134156212312621151862103106209313620841462073116206417620551862043136203314620241562015186200419619942161984176197942619641861956266194315619329619221461914196190312618931361884136187414618631261853126184313618341361824196181416618041761794176178315617731361764166175418617452061735156172312617116617041961692961685216167621616641761652146164312616341761623166161419616031261596216158213615721161564166155213615421161534156152311615141861503146149313614841961473136146739614573061443136143315614241361414136140320613931261383146137315613631561353156134314613321261324196131313613063261293176128945612741561263126125619612426612341661223146121214612021261194146118515611741761166206115520611431161134156112415611141961102106109313610852161074206106415610552061045216103943610251961016206100417609942060985236097519609610406095114960943146093518609231760914176090315608952660886236087312608661860856166084312608321260822860811660804196079415607831360774226076413607531460744156073416607241760714176070625606921260682126067212606631360653126064415606331060622116061314606061860596196058413605731360562106055314605441760534196052315605151960503156049420604841460474126046619604541960442146043311604241660412126040931603931360383136037315603631260353116034415603341960324236031296030314602931160283106027314602631560256176024314602341560225226021412602041860196196018211601741660162146015419601431060134126012417601151960102106009416600831160073136006315600541460044136003146560021465600110406000940599962759984135997314599631559952115994213599331659924195991941599031559894175988418598762659864145985415598431359833125982313598161859805135979518597821059773135976623597541959744195973521597293759713145970416596931259683145967314596641959656245964316596363059624205961627596063159594195958836595741959563135955632595441659535225952316595141659502135949295948415594762459467255945417594462659438305942733594172259404205939316593829593741459366225935523593428593352259325245931630593021159294195928934592761959265185925416592431559234165922416592131459202115919315591841759176175916418591572859145185913315591231459113175910315590941959088325907518590651859052105904518590351859024195901315590031058996195898415589731358963135895211589431358934145892314589131458903145889313588831058873165886314588531458843145883314588231458813165880312587941958784195877210587641958752125874314587362458722125871295870517586931458683175867210586621058652125864210586331458624155861416586042158595155858413585731358563125855415585441158534175852285851295850211584931058483105847312584631158452758444145843414584231058413115840418583941658383125837285836419583593658345195833313583241458315255830416582993258284175827316582639582541758245205823420582231758212135820420581941758184205817314581662558156195814526581341758122958113105810285809316580841758076165806518580562558044145803314580241658015195800416579952757982125797314579621357953145794213579321357922135791213579021357894195788166957879325786145857851047578451857836245782210578121257802125779314577852357774185776318577552157742957733145772624577131657702115769416576842157674225766626576551957642115763416576252557613165760420575931757583165757316575621457552135754417575331257522105751416575031357492105748419574741857463165745624574431657435265742316574141957406295739315573852057373165736518573552657343165733418573241457313165730312572941857286205727621572662457253165724738572321257224175721316572031857193115718417571751857163165715317571431557133145712316571151857102957093105708313570731457063145705314570431557033105702213570121357002135699213569821356974195696104256951141569493156939475692840569172956905215689933568862756878305686135956857295684947568341956826305681523568083756796345678104456775235676836567572956741040567373756727355671733567083556696355668732566710495666114056654195664727566352656625175661618566052156594135658311565751756563125655412565441756533175652312565139565041756495175648315564731256463145645212564441756434145642420564141756406205639314563852156376265636418563538563452456333155632295631312563041856295235628623562752456264205625417562441956231144562231056213115620519561993156183105617315561652156154225614314561341756124185611416561051856094125608210560731456063145605517560472456032105602314560131356003125599295598572505597312559621055954125594413559329559251655916195590313558939558825558741155863105585310558421155835215582412558131355802105579417557841655774185576416557541655742105573313557221155712105570285569275568312556741955667832955659315564626556383555626315561115155608405559522555841955576355556732555593655546265553621555283055515215550624554951855484155547312554641955451352554413445543727554211365541114555401664553912405538824553782655361041553583155341039553383955325275531104955301452552911395528937552713445526135155258415524933552311465522103755217285520933551993555181349551741955161571551510415514103755131254551283555111353551031555091349550842055075215506525550552355047315503831550231455016205500944549942154986275497728549641654951479549452154937265492186554915255490722548914515488419548794454869405485842548483154837355482522548182854805215479524547841754775245476423547552854747305473104254724215471518547062454694215468214546752254665225465210546441754634155462417546129546041554592105458310545762254563165455212545494054534165452317545141954502105449314544831454471147544641554454175444416544341954424175441313544042054395215438317543762154364175435316543452354334175432624543172654304155429311542841654274185426517542552054245205423623542273154213125420295419313541841454174185416414541511445414840541321154123105411414541052054099425408626540794354065255405317540463054036235402629540173054006285399634539851653971568539662753954235394420539341653922853911653904195389519538812625387525538610405385114253845215383727538251853811044538011525379938537883853774165376124753755175374518537341453723235371626537083953691039536862353675245366626536572853643125363523536241753616265360319535972753582135357213535672753552105354105053533155352733535151553504135349417534831353475165346417534531453441139534321353422135341415534051853395195338416533741953361040533513495334155853331352533293453317305330831532912555328124753271242532615545325156253248305323124853221140532114595320727531993853189385317531531611395315186353141353531383253127345311126853101042530918655308115353079335306419530517795304249753032712153021262530146194530012515299231075298178252972192529629114529511495294155752934195292259652913415352901772528973252881464528725905286321465285145452842811852832173528230132528142173528041952795295278125052771679527683952751987527493752731159527216585271115952702712252691051526818695267168252661353526514625264949526311475262175952614195260114452592185525818755257179052562090525518705254146652532210452521144525112515250178252494195248218852471572524622885245187952449455243187152422310552411039524083752392192523812525237419523636164523594152341775523315725232124752311460523011545229166852283212952272410152261146522593252249345223114352224195221208052203917352192194521856258521721101521621915215156352141973521313565212522215211136252101368520949220520841952071778520619875205135152041884520310485202105152011872520010505199176851981147519723945196124551951673519428129519323106519231134519118985190371665189259051881360518712515186146051854118551841143518341951825122151819345180837517915725178177351771564517610435175104051741973517324115517223925171311395170178251692010551683816751674716351661564516518815164261155163219051622310351611873516041951592285515822945157391915156147451552813851541256515315585152216951512510851503918051492010551481257514713555146281185145156451442099514327132514222109514112435140371535139176951381569513715745136125251358375134361345133940513211435131939513041951294175128516512721051263105125626512452051236225122418512151951204205119520511872851173165116419511542251144225113417511241751113115110312510952051084195107417510652851056305104421510362851027335101422510031250992105098629509752550963155095632509493550937325092525509131450904215089416508831550874195086317508551750845255083524508241950812155080947507952550785215077413507631050753115074525507331350723125071212507021050692145068316506721050664175065211506429506328506229506131050605255059417505862550574185056319505527505441650533165052521505152350504205049319504831250473145046312504531250442135043217504252750415275040316503931450383135037414503621050353155034314503341950326275031419503062650294195028622502741950264185025419502431350234195022419502141950203175019419501818501741950163145015419501452350134195012320501141950109375009419500894150074195006519500541950043165003419500221050014195000519499941949985214997626499641949956404994419499382749924194991631499041949898344988419498717784986419498541849844194983103549824194981627498041249794194978631497741949764234975419497441849733174972419497142149704194969620496852449674194966420496552549643174963634496241749614234960318495931749582104957210495629495516495441949536214952519495141749505184949626494862649475184946935494552049446294943421494252049419354940736493951949387294937315493652249359434934529493372449329384931416493072949298414928416492742249268324925735492452349239324922104149213144920729491941649186274917936491662349157294914416491362349126244911522491093849095264908521490794349068354905840490482849035204902728490163149007314899422489841948973174896211489531548944194893620489221048915204890417488931148882134887932488631248854184884414488341548824194881413488052648794154878415487741648764194875413487462148735184872315487172048705194869315486831448673112948661673486516544864114148631651486294748611865486031748594154858259948574144856418485531848543184853621485251648515184850314484931448484154847417484651648455184844518484331048423154841311484031348395144838414483751648363124835419483452548331041483210424831933483073248299394828933482773348265214825727482452048239404822728482173148208274819629481862348178314816627481572848148314813931481262848117274810524480973248088334807528480619844805733480462948038384802520480112534800622479962547986214797518479631747953154794417479341047924144791213479021347892134788394787210478616478541947847314783943478272747819304780627477952547785194777621477613464775113947748294773729477242547715294770831476973247688374767827476693247657304764734476362547628344761736476072847596264758419475752047566264755523475483247539394752938475152247506234749938474862847479374746523474541947444204743526474231947416254740937473952047387324737519473641847355184734211473341247324154731315473031347293154728213472721347262134725213472441947231353472293647216274720732471972947185254717124947161354471513414714155447136254712524471172947106224709525470893347078314706834470510374704104147034174702621470162147001245469962346986234697934469682646958374694145746931036469293646914194690730468983746885224687104546865204685115146841253468393246829364681727468011444679314467841946771045467619764675166546741891467327116467221934671321294670401594669105346683014446677284666281274665187946641248466394146621777466123984660166446594194658542494657146046562812046552813046544017946531977465212414651125246501452464918894648737464719864646271104645281244644311414643146146429434641208546403715146392510546388494637527463684046352111646341993463319944632419463115614630519462941946283012946276354626136546251258462415554623115546222186462185046201266461911404618104846177414616156546151663461473346137374612104546111248461027117460914734608156546076324606241044605441724604134846031454460222108460111444600167545998354598630459710464596420459531745943816745931881459218814591835459041945892710745881879458722854586186545851560458420784583188045821773458110474580321384579146045781875457713554576125445752595457427129457394345721766457128113457018814569451934568943456713524566167545651976456424954563247445622599456114594560945455918644558291064557157245566294555124554419455384245528374551167645501461454911434548227845471259454613624545114745441454454310524542187045411668454021784539249445381356453717854536732453515644534135545332410245321374453111444530146145291660452814634527114245261972452511454524145745234144522125345212089452093445196314518629451712451641945153174514529451372545121048451152245104194509527450831145075194506619450552045047254503524450221045014184500210449931244988294497103444965234495836449473744931250449252444918324490314448972944886294487728448673344858374484422448342044823144481518448062744795244478623447752144766244475935447493144738354472629447162944706254469728446862644675204466628446551444641039446383744627264461623446051744598344458213445712445641944556264454827445383744521352445113634450114444498424448836444783144461148444552244447344443937444262944416224440626443962744387354437156944365294435529443493444337344432104044311147443093644291779442872944271045442683644251042442414484423933442242444216364420736441911464418113444171867441673044151247441413554413731441212554411135344106264409836440873444076264406114044059404404124944037384402113844011253440053043991777439825111439710424396936439593943947324393522439294043917364390146043892183438811464387833438615534385126643849344383124643827314381937438041943792084437811494377125043761145437510524374732437383243726234371835437072743696304368213436712436641943651556436427109436322774362114743611562436027115435921684358165643572712343562072435582843541566435393543521457435162943501164434910504348177443479364346726434515554344629434314484342104143411663434013524339176843381264433712514336229143352911843342410743332284433222754331938433022964329115243281871432734149432630114432538152432413564323198943221559432116604320197143192290431812534317199043161038431510434314134313124312419431112394310197343091751430813564307321304306114343051240430428107430311464302187243013012943001753429913464298939429726101429622914295125542941988429311504292114242911771429013514289414428816704287199342861679428514614284105542831152428225994281114842809464279208442781878427712564276834427552742741474427319894272251024271239442709404269198942681667426715674266146242659404264836426316744262177542617334260733425941942581242574194256177042551251425415674253251044252628425112594250943424932123424814584247842424611464245176042447234243623424263242419444240103942391244423830118423720764236145342352198423473342331241423220824231136242301143422913694228125342272393422612534225420422484142231046422211534221167342201353421912454218198242171361421610424215125042142286421315614212104142112388421012484209937420823944207104042062393420530105420416524203727420214554201114142002710141993914641981348419718694196198741957344194631419313634192301194191156241906284189156741881347418715594186166341858374184145341831562418213654181156741801253417916764178271284177104241762198417513524174145641736294172124171419417017774169167341682094416794541663415141659324164157441632277416217864161624416014624159734415811574157928415611504155146541541045415312424152932415115514150166441491352414821854147155941461568414511434144228341431143414225974141177641401876413911484138145441372610741361877413583241341040413336148413212414131155741301258412983341288344127155841267304125416412419814123728412211444121125941201040411913614118341324117207741163112041152080411410384113136741121260411117614110198541096214108929410752341069314105229541042410541033412241023112641013613841002310540991663409833126409710454096629409541940944174093518409210364091731409041740894204088423408741840864174085624408462340835204082103440811554408062840794224078936407793240768274075933407431340734114072737407111404070621406963040681038406711404066114540651038406441540634204062421406151940607214059521405842240577354056522405562340548384053528405252640518484050145440491046404862640471146404662240457284044421404342040428334041154940409394039630403811424037629403673340359504034136640331670403231122403193340303213740291560402823934027730402663340255204024736402311444022832402110354020722401973640188344017624401610484015731401415504013103840121251401183240101044400910374008622400741540064194005419400431640036234002315400141440006303999217399831739974143996419399531639945293993418399242039916223990315398931639883153987620398651639854173984314398341939824173981104739805243979414397821039774143976420397541939745213973629397252939714203970626396952239684213967622396652139654193964419396352039624183961317396042239593143958418395741939564183955419395441939534143952419395141939503183949524394852839475183946419394542139444193943417394242139413233940323393942439385293937521393610483935527393441939333163932314393141939303153929520392873139274193926419392528100392431639235163922623392152939207323919419391841839173163916420391541339146263913315391231139114163910418390952239086253907516390641839053153904419390341939025203901419390042038995253898526389741938965243895420389452238934183892420389152038907233889632388842138876233886422388562338844213883519388262838813133880626387951938785213877415387673438754193874723387352438723133871420387072438693163868519386731438663123865314386441638634193862623386142238605223859633385810383857420385652538554203854625385310363852521385162838505243849417384841438473173846729384573838447273843624384272838414163840215383973538386213837419383641738353133834124638337283832417383193738305183829631382873538273123826213382521338242113823419382283538211034382014633819114438181037381711413816114238159363814730381373138126293811633381012503809833380812433807730380610493805946380411573803524380252138018363800523379914503798425379751637966233795732379472837931142379210393791135337901039378973337888353787730378624923785114237841145378362237829333781623378083537791558377873737778393776937377513563774837377310443772105037716233770114537691247376883037671347376672737658303764419376351737621558376183137607293759114637589383757125537565233755628375415553753115737528383751145837501254374983637481251374710453746830374573037443173743313374231437412133740123739419373825973737301203736261113735198337341976373333132373224100373110443730251083729187237281455372711453726135737252199372416653723837372216763721177837202294371972737181367371712483716412371516623714416371341837124213711341383710518370962337081147370718813706281153705281273704341153703241083702177637012591370013623699135836981563369711433696228536951968369424100369341936921557369110383690936368910353688165736878293686726368517523684248936831459368211473681341303680187736791358367810513677207336769453675231003674134936738393672145436713416036701569366932143366810413667730366612543665124836641146366393536621762366122853660269336592170365810453657198736561782365583536541675365320743652271093651198736502710736491251364813533647291053646166636451661364416663643114636421050364132123364018683639176736384193637159336361892363514593634940363317713632837363184636301255362983336287293627156236261243362563436241987362322993622126736211463362014633619301263618113936177029436162585361535137361462267361323103361212583611833361062936098383608835360713653606316360583536041766360313613602227536014819636002492359930223359814563597251223596208135951464359417693593146435921679359113613590167735891674358816723587187535861885358517653584231023583351553582146835812480358015573579135535781460357726105357613583575636357416763573229835728423571178035702914335692812635682812735676263566124335651461356441935635263562114435617303560177535591869355811453557105235561459355513513554949355321953552125935518313550134635491156354815663547146435461666354516753544114235431455354214603541825354010363539632353817633537249235361866353583135341335334193532271003531311223530229235291968352816583527259735261141352521783524104035231565352273035211564352015663519218735183011135171145351616543515186935142582351329112351217763511155435101870350914543508271053507835350683935051667350418723503833350294735013163500419349913349841934971039349683234951976349494234932086349212553491248134901455348911463488941348719713486103734852811534841887348317833482115134819393480165634791457347815673477228534762287347516723474155734731562347210433471634347018713469114534689483467229234661660346527113346418793463831346216653461218534601464345913673458208334571140345614603455839345462834531158345294334515263450943344952634488323447136034463215234452298344410443443114234428333441124634408313439293438133437419343694734351765343415733433636343216643431156534302284342914503428136434271253342652534251786342472834239403422135634216383420126534191991341815643417166234161459341513523414198934132511234122189341110453410842340912433408198834072812434061369340516773404739340317743402730340112503400239033991667339815703397627339623103339514573394188733931244339227117339120763390136033891759338883233871972338613473385135233842711833831356338264033811669338011613379188633786373377311203376743337521903374127033731042337212453371104333701156336910403368133367419336619633365166033641559336319663362187533611467336026113335917653358167033572178335628102335526105335429109335317703352840335113623350218733491978334815583347728334614583345114233447353343633334213643341188433408403339177533381566333720823336177333352597333413503333157433321265333115553330834332962933282392332713493326261063325188633242077332318813322135233211675332010483319944331810513317125233162910833151869331417733313157533121457331193333102510033092073330820823307271093306155933052911033041148330326106330215503301271083300114432991042329819763297331193296167232959363294134632933814832921049329117653290166432891037328817673287186732861363328522923284125532831259328219853281938328041932791332784193277115132761561327517633274135232731140327218713271186632701564326983332681357326711423266167032651456326411453263728326283432614213260124732591037325883132571038325693232557303254932325394032521247325194432501444324914573248197832472082324616703245218932442710432431249324263132417393240155832391147323883932375283236114432359433234731323314683232104232311351323013613229135832282811032271243322614593225124732243813632231655322211473221136032201669321983932181361321712533216135032155233214834321393332121147321172832108273209146232081777320711423206144732059453204124432032410632022085320194332001977319915693198115831978363196197231951135319420743193728319214563191166531907283189104331881045318794731863163185624318441931831992318252131817223180321317942331785173177625317641731753163174415317342031727263171628317031931699343168419316752231664183165416316472731636233162520316141931602173159418315852231577293156524315562531545233153935315241731513133150522314941631484203147521314682931451041314451931439373142935314152231405293139942313832131376293136114031353173134414313362031324223131521313082931296313128314312741831263183125520312452131239353122114131214233120114031193173118414311772431164183115521311410413113320311273131119313110113831095223108627310742031063173105526310441831033113102521310111403100317309941430987253097316309652130951044309431330935183092936309162330902103089316308852430873173086420308542330845213083114030823173081414308072430793153078521307782930764183075628307494030735163072936307151630704193069725306862430675263066317306511403064317306341430627243061418306052130598293058726305731130564143055419305441930536213052419305131630504213049728304862230473183046318304562030446193043417304262430415223040623303962630388313037418303641630354193034417303362330323193031522303062830294173028520302762830266233025419302452130238293022315302152330203163019135730186203017838301621430154233014314301342030123153011315301041930095253008835300711433006727300521963004312300342030023173001831300094829997262998625299712512996732299552229945242993416299273429918352990726298962629886242987723298651929858372984939298373029825232981520298094029795212978832297711462976625297573229741038297352029727322971733297062329698352968620296741629668322965521296482929631139296283829611143296011452959627295841929571329564192955124529545262953944295213642951104529509422949935294816692947836294622852945114729444202943114729425272941126129401350293911482938136129371772293613522935144429345242933145529321247293115642930733292972629289432927104629261355292511492924522292316572922155529219372920176829191144291816692917733291683729151369291494929139422912114829118372910156929091149290810412907114829067282905124929049442903739290273429019382900105128991985289820962897156528962187289516682894104028931350289283828919422890937288983928881762288794228861765288516702884125128839472882166628812292288019732879944287841928772286287627120287539180287476315287323103287219872871502192870115328698482868381732867231022866177628651045286418832863166728627282861114828601570285911472858311062857104428563814028557352854218328533310828522299285114582850198728491455284848203284713612846482172845178328447835028431566284217702841228728401985283916992838114928379472836136828352612128343515028339382832208528317312830938282914562828167028271563282614652825125928242810228239382822937282111502820937281917812818114328171994281618732815261222814951281341928127292811186328101142280984028089342807834280672428058362804843280314612802522280173128008372799834279862827971047279663027951043279416652793830279251727917262790936278972727886262787620278663227852480278452627835222782144827815212780833277952227788292777124727768402775622277410472773730277210482771124427708442769114527688382767524276693727651675276410422763727276210422761421276094127597282758836275714472756124927557332754104527535212752523275172527507272749728274851927479392746833274512522744114827436302742424274173827407372739839273819852737727273662527358482734522273351927321241273110422730419272994227287322727251112726145527256242724725272383727221562272132138272051927191030271826104271717632716421271515662714940271313562712135627111041271052227095182708211042707622270672827056292704315270352527025282701730270010422699421269842026975212696521269531426944192693441992692126326911041269011452689931268829122268729136268618632685186026849412683729268217672681104326802710126791245267815552677176026761560267516562674735267318772672841267112592670166426692189266816742667271062666841266584126649312663114526621460266123972660146126591151265841826579362656178526553514826541045265313442652208926512712826501576264920892648114326479362646218126452410026448462643209426421451264116762640251082639938263822982637125226364152635623263417692633371442632221022631938263022852629177226281041262714482626251012625935262415612623134526221243262113462620702622619114426181244261722862616104026154192614104326138292612832261113502610114226095252608623260712522606166626051157260493826039382602726260193526001142259920752598103725977322596124925956302594833259311572592199225911143259084025892383258863125877342586166925851041258412512583146525821045258114722580146125791261257812512577629257616752575158325748392573842257252925718332570735256993425681142256793625667372565939256473225638352562732256183425608372559735255813552557731255683125555252554114525539372552733255183725508432549208325481247254711462546188225451455254413502543135625421045254116612540730253983725381772253710492536104025351147253483925331357253218802531135125301559252962925288382527155325262282252562225241352252372725225262521135725201353251911422518735251783725166242515104825147292513104425128372511845251094225091459250883525071458250610442505157225041142250373125024192501115025001979249913532498125924971875249620852495935249417672493125024928382491828249012472489187024886232487156524861452248562124847222483134924829422481113624801765247914622478114224779352476103824751244247413562473620247231524717322470124724696272468836246773024668312465134424641239246328104246216622461517246020712459418245882824579372456176824551244245412482453157524522710524519362450933244962024489352447176524461575244551924448372443186924421249244110462440134224391461243819762437261152436837243516592434621243351924321249243112392430104224291367242853024271559242662324258332424146024238342422628242184124209392419197424181135241752124169292415517241410352413218724127272411103524108302409519240883124072132406351302405229324046202403519240262024014142400211239931223983122397310239628239551823942102393416239231023915152390518238941923881140238773223865202385414238413482383518238210372381103923801144237952323789372377519237618682375415237482923737302372124423714192370631236941523685232367122366419236514462364104523639432362523236141723601038235962423584162357944235641423554202354937235352423526272351725235094123496332348833234752223469312345728234483923431362234225982341935234016742339836233893423378292336103623358432334103823338312332125623311861233093323291146232811462327125123261152232529129232431623238332322941232111482320729231973623181041231793723161460231514552314103523131354231212462311104023101450230916502308835230783423061246230511482304114723038352302165323019342300936229962922981149229783422961038229512402294114122931876229283522911038229014572289524228815572287113822869322285830228411512283104222829342281626228062522798342278114622771345227614432275145222741345227383022721352227114522270517226951922681522674192266249222651868226462522631048226294222611466226011492259525225814652257114722565272255114822541549225383522521977225112492250207822491351224831022476232246155322453102244135022431346224225912241292240103422399382238351482237940223610512235177622341248223324103223213462231929223016642229103822288272227156522261243222510362224824222362122221137222112512220934221920852218124922171149221613492215843221419752213301182212189222111983221014542209105122081365220713592206261112205281222204166322031152220213672201231022200937219911392198207921978302196156221951963219482821931657219212502191124121901350218911502188147021872812321861248218528129218430129218315542182238121818372180175821797252178331512177321422176135621753817321742210921733412721721980217118752170197821691148216893921677302166166121651042216462721631144216211462161165821606272159313215815692157114221564192155217221542290215353021528352151187021509452149946214814612147940214616672145197821441463214323922142147121412711421401147213914602138155821372692213612532135114521341037213314532132197621319302130135021291454212811402127125321261357212593621241456212312462122146021211142212013602119124821189372117136321161139211515702114178121132287211215572111187321101454210993521081996210710412106156421051358210425113210321922102187421011884210013522099156820981455209716712096944209525100209451920939452092942209119762090198220891258208821872087630208613482085104420841159208318672082724208113482080165720791156207817712077229020768342075135920741248207313552072125020719482070104520691253206812512067251082066936206511502064124520631252206218712061135320601468205921822058731205713592056231162055843205494220531671205211492051231102050115720491776204813602047931204612572045219520444192043832204214512041125320402291203917752038124920379422036735203511432034197120331566203252020312294203022842029135720289442027241072026155120251865202472720231156202213622021249420201152201912482018166920171356201617672015941201410412013840201218762011156420101557200919832008176820073213120062089200516812004241032003135920021043200119912000114519991451199873919976291996251101995251191994186819931575199219711991291091990271031989104219881562198721981986229219852074198424931983135419821565198117691980166119791463197817721977177119762396197512581974196519739371972734197112571970634196910381968124319671148196612511965732196414581963176719628311961728196016671959126319581561195752519561878195510371954115319531873195214461951281221950321181949104319482291194712641946156719452090194484419431982194221981941218619401569193994019381349193711551936732193510411934625193310391932727193142219301149192921100192813491927157119261671192513471924104419239481922145919217311920840191983019187361917186819169421915419191452219136241912728191183419103191909627190831419073191906420190542119045211903156319027361901519190014691899624189831918976301896530189552518945281893524189251918913151890521188984118883191887524188662518855231884418188362318824221881940188014621879423187872918774161876520187562918746241873626187252318718291870732186983518687281867937186641818655221864626186383018621040186131718605201859830185842018571141185651918554201854104618534181852417185162418506241849520184811391847931184672718454221844936184312451842728184183318407251839742183862918371263183611421835834183411521833729183252118317371830836182993918287261827523182683318257281824729182393918228341821937182072718198311818739181773018166251815419181413601813103618126311811632181010501809114218081251180714641806261091805945180413601803839180293918011354180018611799261141798155817971355179615611795943179425107179321861792125317914211790125017891884178813491787125517861559178517831784441871783341381782518178114561780229017791662177872517775231776104317751678177417781773291121772331431771371571770135017691148176826117176721861766197517651676176414541763167217624191761156417601871175916681758135817578321756218217551974175425101175319891752145317513913917501355174951193174828106174783817461152174519671744167417432394174273017411572174019101173913541738734173715581736271181735421821734451881733115517322710717311986173094217293512117281454172753017261558172515561724209017232511217222711117212410117202611517191560171841917172394171619791715291231714176717131459171273017111149171010361709626170814571707211051706471691705145517049351703939170220721701627170012471699125616981146169793916962384169510391694221011693218116921347169112491690135116891870168811531687187216863713916851350168416631683248416823312316811145168062516791248167812441677527167615651675166216743011016732811116722488167126114167017661669177116681474166762916661035166517721664939166373516621772166183316601461165915541658124716572911016562292165511391654155316531457165222961651115016508411649251051648187016472086164632127164510461644261041643261121642271151641113816401041163917681638198416373213116361873163510421634134316331036163219681631238916301976162923911628943162732138162694216251777162418731623198016224201621177616209381619135416188341617124316161668161514591614155716137301612251061611166316101663160916641608631160752216064191605167316043181603941160217691601156116001042159983515982611015977291596146815951766159412461593104315921872159120771590187515891557158893715871036158652015851657158412441583249415829361581942158094615791044157863115771037157618861575208215741665157319791572937157123781570361371569218215681142156715741566271101565831156412571563301181562113015611343156027109155913481558155415575221556114815551460155413481553948155218681551156315501244154984115481873154711471546187015452385154422831543281111542176815411250154014611539218115381865153772815361665153516611534188215331452153218631531197515301972152919631528247615271556152619841525238615242073152311481522269415211042152019731519115515181758151712521516186615151038151414591513311231512103815112392151020811509291131508114015079351506116115051467150472715039411502241001501115015002310014993914614981665149714621496166414951875149427951493104814921356149111471490229314893112714881664148719851486828148525981484935148310361482419148111451480238714792485147816551477938147627100147510451474156414731460147214531471156014702194146983314688301467104414662285146524109146414611463728146227118146111511460291311459168314585261457104814561352145522851454733145317641452103914516261450167714491148144810381447146914462293144517871444166014433413614421359144193514402596143915611438259014371042143615651435421143410361433421411432197614312073143010441429156314285221427165814262184142511431424135214231139142212531421228114207301419124914181563141720871416104214151145141411471413156014121245141119811410166614092283140817601407299714061763140510391404114814032711414021663140110461400188913992711813981672139711451396431981395261131394411661393228413921668139117711390291231389145413881865138739138138610421385178713842710413831886138214661381157413806301379157113781462137723101137628126137529113137426991373522137241913711554137014601369217913681656136712541366188213651778136422102136318771362521991361941136031127135927109135817611357186113562288135520841354161091353371741352156113512710113502386134924117134812541347168513461667134516651344177413432299134225128134127113134016711339166913381459133718881336301321335198613342390133326103133217801331135613301476132911461328188213271674132618711325251121324843132327118132225103132120931320114713191567131893713171252131646190131512621314241071313241321312261251311321681310167913091910513081667130713641306177313051664130412551303261141302221181301198213001662129911441298104512971781129622951295124712942293129314561292166512911563129016641289178612881571128714701286147712851352128423113128315711282431761281167012802912212793113412783616012771984127629139127514601274156412732310212722310712712912312702811312691240126818831267239612663317012652097126483112631044126216801261241101260239912591883125824102125711451256115912552093125418791253136812521039125113561250167712492310512481874124726133124622981245321351244146412439411242229512411885124013571239452091238135412372594123611461235103912342078123326107123227115123193712302076122912531228125012273313412268351225145512241043122312441222103812211782122018681219177412189371217136712161874121536140121417761213136712121361121119881210208812093514912083315012071046120616661205165912041881120321981202135812012193120012521199197211981769119716741196198211951048119412611193199511921358119121951190114911891039118883611871254118624971185626118421861183208111821254118163011801358117923103117822991177186711761152117573311742310111731151117211471171114711706341169178211681889116741911661148116516691164841116323891162731116112501160104411597321158125211571047115693911552699115414641153125611527331151728115012551149291251148281041147371531146104011452288114411401143518114284011417311140146911393012211381042113794711363013211351364113452711331564113226104113119791130105211294017211281477112719801126114111251879112419811123271181122177311212093112043200111983211183214111174322211163012911154117011141563111314591112156911111146111039172110918741108228911071363110636153110520891104156511034116511022310911011885110094010991036109824991097291391096116010951143109423901093138010921247109122941090104710892288108816761087211001086166610855221084841108319771082312108142010803171079425107862510771141107611551075114010745221073114610724161071734107073010699321068626106762410661136106518651064934106316711062941106123102106019791059104410589381057940105618851055188210541359105316641052135910516331050125310494215910482293104719831046241071045381561044840104373610421354104111461040135310391563103863310371666103683710352396103425113103335132103213661031251071030177110292711310287301027113910261458102516571024147110231359102211441021113910209321019217610181772101729123101615651015835101432145101338146101210451011199510102087100915681008147210071362100618871005104810042811010033615010021570100110421000231049991462998401619973715799611589951974994114799329110992261119911664990167898916699882294987311389862083985734984124898312549822813098152698025105979177097812549771566976736975416974521973135097217579711673970114896911569689459676279666369651246964104396314579621350961149604199592186958291049578329569399551666954166495319779523713895135144950146194984494817759471775946351499454218094427118943836942371429411351940281229393912893840167937231069361670935311459342083933229593226117931209693031128929197592872792718719269379251038924281349238389223615192110419209419192811091829118917156991624100915209691412599133011691210409111139910186390911489082310590712629062395905221009041360903219090225103901135390013448998448981559897943896165389518658941568893441878921359891166989012628891769888291288874920188622102885441718841666883178188216598819568808448797348782110087714588761152875229387425928731253872186587118698701554869950868145886724106866838865391608644517586312478622310386152186093285927105858103685717738561248855177185422958533111385214598512277850217484963584827108847157184625105845176584428103843843842156484114568402390839942838207983714638361157835124683415628331771832228283119678301050829281148282290827146682613608252711182419768239398221660821176882011478193213381810418171243816125781514548141368813371378127328111756810936809929808249280793780625100805104180413568039448021353801166680031138799125379811427971252796144979514697944197931142792241027911147790291087894515378817707872297786156678522867841361783642807821559781229978026128779522137782086777241007762185775934774261007731673772114577193777027119769208676851196767241047662411676513727642092763168276245205761125276018697597407581467757166375621897552612875415707531978752104275117717502490749165874825987478407462596745341397441978743198974220927413112974025947392410473812627374721873613677351363734166873327110732217773112547302410972911487281368727381587261580725281167242310472310457223313672151228720166671926117718311407174119571615687152611371468281713197171214497111364710124970924887081468707135270634140705401627042610670393870213567011664700249969914626981352697176969621100695187569415706932392692291076913013469042157689188068824926872511968632141685452076842410768374068210476812711768019866796228167843201677311376766127867553242674249767341967250191671157367012506692612966818876675421666624996651144664125066311436621361661156666014586592513165826136657147365614606551457654832653341286526316512210365019906493716264817786478436462210064514496441453643114864218926411145640188563916586381991637361616363313763514716346286332078632291306313816363014626291249628104062732129626114362522102624291266234017862212456211773620166661920726182195617732616735615211096148366131143612206761120816102697609331356081454607114660613506051979604218260314546027306011567600229459920106598622815972396596311225951040594126459327128592837591331725904017058916705886023558732162586361685852812858422885831761582155758122775802287579301355781356577241015761249575187357436143573482045722098571311395702193569197556817635671149566728565189256432156362756227107561197756023105559166555816735571565556301255552913255425102553201005522095551113855018805491037548114354720945461040545145454420695432912154238177541944540146453949205538146153712435361555535156853418855331578532321585312292530401925291988528271085271256526135352524995248345231360522146152158264520421855195426551817635171149516178351535157514241065132090512147051122107510135550918795088829950771271506136350515715041370503199150237186501167950014584992811549816824972912549641949511574943012149321854927304917294904318848914584882095487114548621100485115748493848320864822199481241084802399479125547828120477937476229547530122474361464731774472125347122874701154469156446817774671569466114746519784641354463167446233151461947460207345925107458832457135345621684551875454301214537284521453451371574502189449752914482510644740166446198444562644413644431050442198744121884402499439271074381251437136043663343524105434941433629432135443115704302310442913714281155427529426527425136242416614231245422943421176842015694191360418104741712574161149415218841428127413311254122398411187741094040915844081459407351524061148405231134041144403114940210434011781400146539914703983415739713543961774395156939420773931350392259939110423901147389114438824993871556386249138514623841143383937382947381188338013523792912637814623777293763314637513673742812037329120372271163719363703614436983436832115367177936611523659393641354363136636214613612075360167035932129358628357155435625114355725354154735373235211593511360350311323496303489463472086346834345198034445187343535342237934173334021913392081338837337136033620803351763334209233315523323513833124109330186632972732811483271147326146232526963242279323271133222186321259232015533191565318208131711503161888315261223142610731318723126543111150310241073092412530829116307943306146830516663041347303155430246197301135030011372991874298115329772429613295419294491962932711829228103291321382901295512891554288145228717722861454285198728411452834518628217792813013428028112279208927815572771665276136827530125274351482732712327239174271114427024922692497268391482676724926643169265241182642410226350189262228726152208260941259271222581577257602402563011425543165254542172531669252938251281062507312496342482711624715652468442453514024425111243472002422512224164288240331472394520323830114237461932364017723572923413542331465232146623116812302712222939182228261182272612322616722255724722425932232210422230127221492142202093219207421817722171249216166721511492141252213145921217652112510321083520914572082497207124920626110205301212047329020314662022210720115652006241992513019813591972712019617871956528619417771934418519232123191156119016551891354188167718793918638163185512661841458183116118229122181259318015621791866178228917711501761768175239617412571733112317243187171935170937169136416811571672091166248916594216410451631266162135016111531606321591787158311381571766156197515572715414731533213015234146151451961502189149155414830127147146314610371451979144311351431563142155414127114140177013993313818741371681136177613514651343012213322115132198313118671301258129157012831112127104612624103125114712414561231252122301131213114112017581191872118177611733123116187311517591141961113259811213651111249110743081092289108104410710441061255105187210425102103944102176710127131100115199301199827107972610896104695281389413639349231921571912915090105289135488239187241028611458593684231018319778237141811157801045792497781762771871762380752083749457312547213547115707024108696025768281186718776620956518906473063156062271216173760830591253581050571884561969551258548385384752105551741508424918794814694710514617684511434419864319804213634123101401248391570382811137197036136035208234391553334145321366312078302399291253282510227198626619251772241157237342216732119772072919114318125117104916114715125314114713833121252118471072791384197944631954194312321224181419”

4.2.2.1.3 Fact: Rewriting the full text of Quran at verse level by replacing the number of letters of the word with the words

In code 4.2.2.1, we had witnessed that we could rewrite Quran by concatenating the 6348 representation numbers of each verse at the verse level. In this fact, Fact 4.2.2.1.3, we will observe a similar rewriting coding, but with more deep resolution of the text. This time instead of using the number letters per verse, I will literally replace each word with the number of letters of each word and rewrite the text of Quran. This further reassures the rewriting of code 4.2.2.1 and shows that not only the total number of letters per verse but also the order of each word in a verse pattern has 19 the similar 19 based design. This fact answers any potential objections such that “why is there no coding that shows the order of the word are also under 19 based design?”. This fact, Fact 4.2.2.1.3, answer that question by proving that there is also a coding at the number of letters per word resolution and we can rewrite Quran also with the same pattern of code 4.2.2.1 but now with the information of the order of words per verse. Also, this fact is based the second type of the text with 6236 numbered verses. Therefore, considering code 4.2.2.1 and Fact 4.2.2.1.3 together, they support each other assures that the text of Quran is under 19 based design up to its letters and thus intact and unchanged. Moreover, there is also further fact, Fact 4.2.3.1, that further shows that the pattern of code 4.2.2.1 works again if we use sum instead of concatenation operation while coding per verse. Considering all those three similar coding patterns, we witness a very strong 19 based design that shows that there is 19 based design in the full text of Quran up to its last letter with the current order of chapters, words.

Considering the 6236 numbered verse of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

[Chapter 114 | Last Verse of Chapter 114 | Total Words in Last Verse of Chapter 114 | Total Letters in Last Verse of Chapter 114] [Chapter 114 | Verse 5 of Chapter 114 | Total Words in Verse 5 of Chapter 114 | Total Letters in Verse 5 of Chapter 114] . . . . . . . [Chapter 1 | Verse 2 in Chapter 1 | Total Words in Verse 2 of Chapter 1 | Total Letters in Verse 2 of Chapter 1] [Chapter 1 | Verse 1 in Chapter 1 | Total Words in Verse 1 of Chapter 1 | Total Letters in Verse 1 of Chapter 1]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

[ 114 | 6 | 3 | 6 5 2] [ 114 | 5 | 5 | 5 4 2 5 4] . . . . . . [1 | 2 | 4 | 8 2 3 5] [1 | 1 | 4 | 6 6 4 3]

And, the final number after all the concatenation would look like this:

11463652 1145554254 . . . . . . 1248235 1146643

114636521145554254 . . . . . . 12482351146643

Here is the proof of this fact:

x <- nQuran
tmpwr <- c()
for(i in 1:nrow(x)){
  word<-unlist(str_split(x$text[i]," "))
  tmpwr <- c(tmpwr,paste0( rev(sapply(word, nchar) ), collapse = "") )
}

cat("Tail of the representation numbers of each verse with number of letters per its words: ", tail(tmpwr))
## Tail of the representation numbers of each verse with number of letters per its words:  5342 53 53 6722 54254 652
cat("Head of the representation numbers of each verse with number of letters per its words: ", head(tmpwr))
## Head of the representation numbers of each verse with number of letters per its words:  6643 8235 66 534 6544 865
tmp <- paste0(x$chapter,x$verse, x$vwords, tmpwr)
cat("Tail of this big number at verse level: ", tail(tmp))
## Tail of this big number at verse level:  114145342 1142253 1143253 114446722 1145554254 11463652
cat("Head of this big number at verse level: ", head(tmp))
## Head of this big number at verse level:  1146643 1248235 13266 143534 1546544 163865
tmpr <- paste0(rev(tmp), collapse = '')
as.bigz(tmpr) %% 19
## Big Integer ('bigz') :
## [1] 0
cat("The number of digits on this big number is", nchar(tmpr))
## The number of digits on this big number is 111098

As we see the remainder of mod 19 is 0 and thus it has 19 based coding relation. It has a similar approach to code 4.2.2.1 but using the second type of the text, the 6236 numbered verses. It also goes further in the letters resolution of the text by using the number of letters per word resolution. This is the maximum resolution we could look at in a text with the natural numbers of a text. The reason I designated this strong coding as a fact is because code 4.2.2.1 coding pattern has an exact matching code at the chapter level, which is code 4.2.2.2 and they together shows there is the same rewriting coding pattern both at chapter and verse levels of the full text of Quran. However, it is not so obvious how to get chapter level matching coding of Fact 4.2.2.1.3. My first attempt by replacing the number of letters per chapter in code 4.2.2.2 with rewriting of each word did not seem to worked. However, I am not sure if that was a suitable approach to match of Fact 4.2.2.1.3 at the chapter level anyways. It may be the case that, there is no direct matching of the coding pattern of Fact 4.2.2.1.3 in the chapter level. Because it literally replace each word by the number of its letters and this happens at verse level text. Concatenating the chapter indexes with this verse level representations may not be direct match of the coding to Fact 4.2.2.1.3. In that case, I might consider Fact 4.2.2.1.3 as code 4.2.2.1.3. However, I want to calculate a more conservative global probability of the overall 19 system I present in this book and I thus would like to designate each coding as conservative as possible to make sure there are less objections that might be caused by such codings.

For the reference, to the best of my knowledge, Fact 4.2.2.1.3 is first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself.

Also, here is the “111098” digits length big number:

“11463652114555425411444672211432531142253114145342113553342311345528231133533423113243222113145342112453423311234433211222541121434221115532352111435571113433451112633434211115333331103753383441102764326551101564333109643353109554264310945524331093542643109246242109148422108346252108235431081367310772771076362510755562251074274107357433310724634410714644510647326326410634532810624664710612461055354610544426610534645510525525431051756333231049353210483554104747344104637431045462531044462631043454241042454341041444331033967578655310324337210311610285625621027463721026265102556362310244633210233633102237431021276101112531011043253101925410184732410174542310164742410154766510145775431013472531012272101117100115553421001046224100976224344100845534100745334100645472100534251004342510032491002249100124999863335439976343543996675654599543433994374599343274992375699147553988213333354434467524344369879632586552986166225464329632552985166346667552647353984116623236554398334349826544424981126636963255329755543249749322444684973633235497255425397155427396195654239618284961725596163555961568642339614534343961345325961237329611553325961033349693445968463329673632966457239655422739643634963364496243273961534344958485449574635395695334865539554646295465427539533654952254951286948353494735449464452294544523944342694334449423436941442439311443549310443649394436493835559373445936445439354535593456223793353334293233369311692212459220563363921964424439218454449217268921635349215463629214344892134763392123552921164343439210267929274928473249272679262749254542492434529234753392234379213436911536439114766455769113774444349112365291113744911045233919452429183767917353491635369153537914363691335379123536911266902035359019675275690183755901798767552329016452629015352590146523252901324290124625390113653901027790926690845243907533225906444549056344225904532753903333590245424901454428930246892935268928555335892748552892643543892553542689245645248923962475555489225336348921633533389204335689194346789185743638917566223891610535444623489151153556362374891439328913543353891236478911462458910372689956555589866254248973633896643332389563333228943336893266892235891168826465228825365288244664688234442388223653882144344882044354881944364881844364881764353648816266881526688142668813363488123534881145442881035328892568883554887632434288664234338854432488435448832558823554881474428719357387185653328717353787164666287154433487144424287136434422871246544871126887103425879464248782668779435434323876343687534458743645873343587234348714633386174568486162458615346486143623861333438612353686113537861064332238693743868454338675853248664432386543276864645332286326586246253861277852235328521444228520446258519552552851825585174644285163434851536528514366385134542385124533285111465375244386552851014644444622985528591043235683248589665623453857649623385644522855363585437538532658522768513637842595333865538424345684234534584224655284216626534842046233841943246841834368417333684163643841565233238414542223841356423384122558411354484106445424849464368484555484756542484697433437428453455844454258433354842345584135638336665263283353673833466625568333465638332665255483316575374833048344832986552565283284834483273526832661083335832545425832456462483233673832244372832128583202548319452538318653742383177624434283164654283156854243831486526332383137763644383127442324383114546583103853839254838442538376436423836583543835244834574533833566264832675373583128382199356443423821865325228217553253821647423821535378214443638213443728212362682112658210375382946623828643242282745544826764327428255542348243564823346482236748213663812988244236381285624338127583322812626481255454238124555323812346634812236638121342481206452332811944443811834368117343681162568115364381144523481133554811234648111346481103454819343381834848173464816346481534648143464813346481236648113453804246625804124680404455580392758038355480376535443803625780352548034542533803336448032393580312468030246802925780282558027334780264355280254355380244537680235423338022453328021365280203462801945442801844322801745273801624480152458014256801335328012343380113543801034348092438084442480744343806342480536238044664280344453802364280125379469524362635794556243479443733794346233794256462779414625379409525434324793946263793836647937332479364336579355327537934466447933393579322677931475447930453367929455557928365379276562435792664353227925576445792446434792325479223442792124479203655791945336791864232237917533534791663663527915444427914382479134542579125533357911445347910572846799257798355479727679637437952497942497932497922497912497840165352654425435583783994334334537838145462323723954378371053626636827836554324783565344627834255783326678322757831357278305536367829457337828357678275552547826254782536537824653446278233646782224778214644278204556578194656578186665243781756353278162657815463257814553827781335567812454567811356678103556789355678826878726778645543785373278427378347324782365278128277504644477493853774866263347747385377465645747745385377444844377436643574774236367741554272774038537739563333773858753377373853773648343773546233773438537733335477324644477316524342773063422377729662423777283853772775396546772627577254554377243853772338467722353377214442777205432637719385377183944771737627716374377153853771455325377132547712343377113454771034647793464778346477735647763424775249774249773249772249771249763110553395242476301155342442363762995334335327628967544567376278546675527626754525537625564335762495244333457623666453376228654433327621135546325573446762075554244761996566365557618474447617676344676165663267615874632555761466656567613107344427346761256353676118646532467610775442437691053444244647687666336776777334765766768443447658663326727646675863763754536637621055765427537611164325237332754076423534753957573475385444327537643242375365342757535452427534352475335543327532353475314333375304653375293656752836337527332475264743375255534237524355575233543752235547521266752047523751945522751845564751746452751662552427515374375145543727513643357475124753375113323751055357475936547582547573534756473447555557427546542363753554375752476437514744274561174632442363745534337454353374535662237452954424424274513523745037357449567233744848563744736537446454447445482447444474237443572225744243252744128274403842743936537438554332743775252433743625574353554743434367433342674322637431575432323344342542434444449362569655536556655755435536355537430334574292557428433427427432537426236742555333274246433324742337427422343274212327420433327419333474183433741725674165573337415442427414362574132557412464257411454347410443837494435474847234747255746364374525674424674324474225274136427320784442494542435327634447656734274427643265266445236242754522375453526555424434327319953343353273186643256731784744525473166547654731511553635555637314855657543731355632673124665273116566495731075476235739956233276273866453357376546222736845432552735554453734666442273355342473245352731364272281343255354662257227134434324442523722674434354722511432426254227224114454286243372231644643236433842537222126423334262327221843334232722084243344272191044655433347218844253373721710455332433772168439738237215545684721410456438483472131443443443245534721211453524422447211945333483472101344342523434247291345234535544347288554486547279444225345726114742565243472510443554224472474436434723943542425472294543255347211345536423533427128155383399543472427127105535355523712610582533223471251264323534768371248538335537123135543533436426712235467121135354422754233712045447711955533571185674627117555265711675544454711585634334371143653711365352327112963543556771114656471106533484719763635327184563271714896686275356447165535537157644432371418642423343243376234713576462712744333237111444623244243463704496545336757043963355726370428645637657041883344423704077387343703956373370388434244257037546362703656455470354642570345763267033469267032556926703177263453703010635742273370294672670285534427027664422670264546670252867024552726702356632570222737021455347020454337019453727018254701745424701625570153343701465255237013354770122577011955425263870104544370936657084664370725570635547053545704113356332468470347242702442387014454369524634469513634695048354694956425469483764694766332436946463626945373669445835436943482256942662544369417625442369404444369393623693846343693748352693655234369355455246934574333693366542336932775555226931346269302546929373369284534269274745269264623369251163252565424692487626357469232566922353269214542369205643436919966456542469186544265691796553357366916555366691537466914653575569136545234691265365376911772753336910654644569968104354698552333697155355445454743556966544734695487446944844469346253692262691166852583323685112637553885543685058253768491053743246246848115342553334568475635526846764234626845544235684410623296443568431163635533675684298363632436841865287532684044444683912633273355532683856333268375634326836463326835398668346644372683386524666468321064334462436831653352568305833556829663345568287643336368273732682656355468254633568246555722682338386822764253526821267682027668197633245468182736817106862555373681637356815776364436814553232681344333681244454681135446810544233689474246883833687119435223423268627668527668444344683553523682563532681463616730104463454262672913442228652462267281544284352334626267271352443455444446726944354354267257642533767248655254226723126258853464226722126434434434446721125324244264336720154238263263324336719154333636265553446718843452534671712438554262252671611424534262266715146542572655334267147663324367139644326256671294453645526711566568671011652324243266791844234232432564523567813453653444524467784353545367676444556675126437858766446741043554555426731842325552632325633467211663444775346719432335445661217825546552365545456611248525552552442324255554446610278255444255396625353635554436691264475510645426684643233355344696345356544237524477442435443555426671264254572554266623627524524465856476355426651775666666446525233664214339856524346373343526632966533524254325434462445633533662116636574343266115445655243242542651225433424343234275555536334465113442442446752445555435372865556445456510174544255742465534365974554545658144585595432342565725433455234442443644334232565632426736576635354357352357735253276551442563443355433654284422443354257642745662626247653214334324442434353523266523052443356543224437743376726854465142433443424334443444565235362724465667653542641856685464171244535364446264161682642337477772466415843454874641419444377538348722554264139874423324641211666356367476411164335435434435242641011644655576566492765344675244663455543733546364810463564665664718443453626432622553646164354766746856443645134445463255353644146445635256822464396555656836421146354545542641174323353525238223463111163455334443631021824543364255542327227639188263434327375255426381762949754545673536637206294685463443236265263618854242344236223754635148357644436633463422634675254265356463756463311623634525536321265234442537663117792456345453459436211218357352343225656425446210156554743275286446292264233455433663264355426281864378543527435452262799456434736261864256532364525542262523854254555533646472275536241065254254336238663363466222144332537677554457234262112666552382234611436675355655732554539343629434334555542611398444423756112176533424675244763461111564233478442865661101244265352554261914833353644654426181183343584376617168542573435435343616324335854444245672333554437324343361524854256445454436372325433614115553527534261396226243436129622625542611116635238223360132065263362525434625542601239444243775263763765375353534552237843542601121624446623745576372353601056445544346286277463683725436263523322263736838449785355426092182663627376285275246460821834257626273528252462607154454544654542436061965243435644334443336051366334355546246045265556443242243285733456348765435432644436523672443426031346355473737626021362568657536726014964234536363447556752554245626664253537556646255425924176636822246726664259231963457667666523324425922136628542332442592118755674442656336362592010825556555259191082567446635918186344246342364555425917108444652584591617824433433344732745915114445455525459142362353375645534225323592591312623534262435591216622756482644626359112874458634444346636325586653235910234434553624386593446525659931826423353336375346253542552856659818825647742468626597597376442467353565348344226498647453253442596254323542344444332463453443595138645635824252594126443443645535931454624626654325592417428857665624723246426745625254626325544259111663523822335822518243234353544346752447346762357272726536432656564325821943425364358208725646525819158273237354377565818178243334736327546358171564255544273744258161044444253765815106523455343581419635374342254345532358132463456476567544623563362758122344435235333463366635542581131463555564554476343447726333554258101787444434645557264589206444675766867373554258838647454346462742423454668683436262453235874743342735362523423433243623436235424252382244223586154323554553754635851844954635253356465258426449444657364652362328553235832146352646232465362627658223444355257566372722624755811844428454365264343257292265254254353432336363445728224453525435525566455542572739645545567253456357288546542677435666352572614645457672684645725284342655246564336765586478563572412652434365765572315452325536352355572221443326232423623525242572125652542543355554664544253657203964366364264463542554256434872656543664657192065576566534388255556571812434354447982571713656342535442657162864564554326566342334464255335715156462565523444265714206554333767765635433857132764266353245448663525755109435712226523467524456963549833571112433274444422571037463564347326524455532424526854442633357917453435372754434425781564273357675623357715433745638537655576126443526562545758644468325743646354234344362434435232453524326834257394333776525721143233546832571966368223356964634456955623325694246569334245692678232456915652255690665232456894446456885823245687464285686563425568576244444568436555683474355682464575681464665680482255679483425678354256773453567654624456754664356744634456735765735672683266556714545756706655642566978325285566846457566737325666273566566557425664583275566336275662665665456619622277423566078335553565958327556583527565746573565645353565535375654462475653364756525423265651587442565055353856494872256482785647984654446656465653565645563354564444342564335235642354256415652665640372456393723563826656372645636268563535835634264563346362563225656312545630253562925456283532562756526656264554356256634462562446534562337665622234562146334562037365619563462561854247656174655456163856561536335614372556133723561236425611285561028956957527656857527656735655663545565336456443533563255562357356137435578686233555774654455766463436557546544557463353625573465445572462735571465445570345455694654455684545555674654455663755556546544556418556346544556235635561465445560573742555946544555838755557465445556933536256455554654455549374627336555346544555255522555514654455503655554946544554825555474654455465534345545465445544524456554368344435542465445541688578455404654455398333424265538465445537674565455364654455358735324645534465445533176362768526272644255324654455314733555304654455291032232682255528465445527686233555264352255254654455246852763552346544552248654552146544552046246551937735518465445517483825516465445515632425455145752735513465445512485255511573654551036565596763657558472535574745755636665553665554264553273552263551165455654334254545442725453455435452552533545164237645450664535354495463235448932563526354475442825446644766254454565554445543625443952532623754427543847554415552345440742356545439345654385544545437945666426454365676645435732445245434947323556354334633454327423565454318756545635430445345429446665428853254526542776834653542655623754259342252455542410443335535654233644542274235654542144534542065355545419953325456354186453434541774235654541644534541564233745414633347454135453375412932335655654115546565410565334549965656335454883338453654785457267454683335334454555335454475327254543653377654275376343541455665362373753612655360353753594663453586543233535726453565652435355463445354332653532495352954254323453513435535046444534946224534845424534746643534644342534557573453444542453434542453424733353414665253404334353396323733533854353353373348533674323422533553353553343555533334465332314342653742443526234274325385575533116765553655523822453301653435223423252635329116633352422553281644242434362322335327965867625253261854344232347428232353253764532444272532325542546434362523442748532253224443353214635453203675531936575318663423353175335325316542642531536355314374353134443453124323953115326325310542435539542534538353253736635363632535354453454332253345243532533622531333652495665535248104334474345524710626433555352469623454423524576345635524495465624435243963454333252427825646252415635525240764234625239564622523894675373325237792235525236762268525235882233252523466524575233662256252328532247625231692446252307632546252298535353345228964235323352276646543522676523335522558335552247545355552238534324485222563469522119433423252736366685652207348633652196643574521886446453652175542725216126425454622765215662423552146634453521363433535212563225521138545210346552944643528442225274534252627652527652427652335225222555211651607645255451599837435553515876526242515796243324425156673644351555846345154553344515365322275152135245342525324515111443333442635150844333435514976555323514848476514757447751468645432345145775342835144863774325514383363324351429753433232514176556233514074342867513965244555138846537243513776665346513678233453513568243275134483355133532555513266336355131584533513086623334551299445543266512894563254455127563355512664444345125963435645251246873442512396423336645122563563512146463512048453511958627351183829511766252555116963354452551155542725114782443655113565323511245346511155422551102835194323451845334517353751635535153564514249513249512249511249504513442745533634350449453354543504366654335042763356635041744264365040566553503912645433446235503813424343263685450371343542323353225036154226264432325635035646462350345633575033744466325032644362350315437565030942256254350298653335425028875433723502710442346245350261066273442345025444545024644242550236432354502212455536324233502165443255020663352450199433235545501884443324250178463629525016146324444252575450151043232225675014943532346650134366450127546335450118644427645010543366509106342763626508543355507114322475477650612423377356364505943235355250494464542525037433544450211433844452525013671491810634568344249171964275253427352262454916164335523822456472491518825442787722655584491427444247252646362744654622474491321444264362865853273542491232444246844342544543633432425755424911408263237365387366344323424344623323425542491010654663748449930834276674343343447637336778273498744554244972882587554625753445524262444274961865237646274452554249512445344543543494962674275249317445366455544375524922362574245462635337625542491164442466433625542482954555486554363564436754447267253632626742464455563536444482814554353644654424827285433246224627665432666565433482628533446336647845364584662553248254055455662425245344476272656454426666265524824195634456232344746243482312644333232443482212534522755563482114532344344256254820187578364543334855454819755448564818195475756224638282433481727555437524456433363336333633481628556326363444563629434336728248153153625282832435722446266585373854814145544425434683448139586465423481220445526623446396522524811375634324342334244234326232863777672825481025547444343434533634247485248986477765748856657348785544684448621554346544555525799109548519544334745467524498548419554468447268842744248345446482157564544342424254815542534738307622546637555424543425442755424737675669247361376365663436644735127534575536534734153443435244255524733117636746554247322176445253423266442555247318759494394730127455329789434729117442236253247281075664426534727786686344726157455327432555534725163533753423273652472477432674472377564555472210775262625347211234445353454447202735524634636254644545444455547191477459957433235471815663347334626363471766635664716247763435543455554253345254715447453552423426722444326833264523263332547345347141377432333243344713143438645233242547122234674377567524486554424711113428355443347101679543525533752644798754425534786743556477107564625542476435574753557474387334425645544644337533443346593364555447318754444246553665533472185574342434333686564718734425554635278534344243626243536352543354634186436635355345355444633224323336423563368344244463218442564224525444323463115442662342644652463020644434433543245535254629186534346554674244534628176535444246432655546271065665252644626328252344565232737354436743636246446251485447332744324462418444328222643576544462313645525274354346221282325356276546212543454343634343253384423354620276444452843545639662765355444619962378535446181765464252323255255461728763325243234484426334284273546161865453552727524455546154582443352255543543545426233644333466546435677646149653446555461313623533824455246121685555554445544434611194338262346243255554461024854242944373244264323262469244433334234233242435243224682566364523363424422637226624671443353455356544466968653553446518662373326224324333464296423252332568233252545432526246315663564453636852462666426546112453786636828345368825382544535168234626666444654453414623357354536544533118252345253445322293333326242443272432344531126459545345544530136523524786554452911642633554634528146425563432532445271084564468344526186254433273362626424525166427552353256544452421532232433536354663226452324644325354345434334544426452213623433265684445211762376486566277532452076454553451915735365834423524451813625543752536245172473547354325455232373525845161383872876673544515116432643653245141465345445256552451316745322355238223445121466428535553344451111432434556334510194446432623452443462459114435464623445814455623732444444574443345612664344546443455206446653525326244375745496444233534536856822452666426545112445937464458575665445776523324445610646663546244555553454454434844453587426445235424451544272445066242324449566332444876424342444756437444462644445462464444264444336424442866234323444110623442442344405675324439862645382443876636853443712654852633233443656427544358733663224434375244337443262844326833384443178253352443076627354442986536653344284549444274645544263455442555425244246634455442356446444226635234442158262344206625434441994653435234418944334434244178446535444416673664344156645653441465463524413744536334412663634444115443544410645643644956222244810763454233244786426368244676623324445663352444454324444386336427344226744112438966443454388862352225438786446526443861363532374255434385136563563683246438411663353362434383864563765438285352682543818834363224380116563744236243795644624378764645634377964335442643766825473437566334424374664428243736645543437276439454437115645646625632554437056845643695667554368964355324243677733455743661062346263624365114342554527643649643753242436317746374336752384344362743337634361106437353644436086526464343591074474633224358145322432522237643579534344334435647548435566947644354764547464353117833232544543521144342432332435118644247433243234255435076236454434912744333336326434813657852423325343477642375443461282434553746443451364632652426254344664624443438643344574342775474524341674425443401144233542445433997624525634338126483543235334337764762854336114236246323343351273376643323643345655684333176563247743653542543322563335545553356662755334634331104823363346433096243354544329945453754243287654254643275645434326963445573343257853354843241462633564535543432321663433653733424242625432211663433653524321882342572432015632232432726326431912775565642586431894362362444317124354246335344316777443424315945724522643144843443132062333334574734462537431211628523447354311126444274362354310116544344533443910665668326443877344437437882533263436672326343586442454643474456224433665556343226743112425315644335238222444425227643546242244647362432524465425122433425554244224345243342501144354256662424915643454334246833424827473643453334375346342557363424721423354232422323423258424616422344343286233342452744282373765582554332642656642442042332664384423223443424386333243442421544354452656536442419425264354424014832343553354454239672563642381167454667586423710625248557642361774455534336653263423594232627554234742453624233154435322435654324232685265342311443324323352743423010425644526342291644353342523683534228136535552325443422717446342444525654334226124439427865574225126257255264434224226443744644434433443562422329444244234536263446228655544434222246523436236528656343536834221224438354545424225235532422022426223446343342236343242199653424644421822443626523447465636253642171146353856444421618444364355262324266421534655446532747354455542443437434364542143043235266535443332445545523236342133842454245446283337356255725346542325233421213433354354686242111966335336673662336844210154554344435323734291643233643525642624281943323295242445364334272262552433253553525554654261255335446426642519662423523944695268442410653523822242310664425444442213421124154124333344242434153194323343443353636266415217442233225243232624151134434346447364415032442953557642233445633236443234644149114543354274241481242325325524341472842325563745333424372524363344146116533643653241451843235543244536645441443044265353362626535522565446656341431744353324253223242414213442542343265241419454536552414026463342673442235244552626524139224323365642455564553353413812623762633683413719644254375356266755341361166235637264413511422363553634134174345544442546365341331382445443334434132444244131165244652446366283413019644676363855824455241291682673764266445544128146753453435454341271065449555574126116536646255441252565464252323255353632365364124118223833466341239827655445412220635424254637355427434121186533533244465552764120126537855362334119863534544411855655641171465356575358844411619623466662547542545741152567634325442443332644529344114236263465432543635363256241139535357363411219665357665542255263641111665542456344363524110158445274445525444191482362752535752418953338655241786273652541616849494354345334241517645455336346342664147623656541376455544412466254111240851785452324435437623408412623364545544408315825234525358564408225652443526344455255337526440816644356408012654662458544407996547733444078328545343344434425334422545244246440771466725435424325407689444645640751164444526434407417843443243223454324073764233324072665226240716687272407096452647554069106344275323406812522454345442406730664483252557257246242242242542406620834253275343255424324065148235526623324240642182464447265564755334440637645554440621264233232444440612062544533342573753344406013647628523564440591162544432562405813725638656765340571262544532468440562366235672233622554442752405512863445724325405447553405386737545440521053464784234051117446625655340501642384365358562454049136243445455254404812633242423853404719525354343338575527340461363526644545654045106353452545404412744243453428404322552834353623624234743240421566364322322555740411053863622334040234446566434232533534343240391263263466343240389645632344403723423533623436355544335854036107444235254403523453234445544343554442754034305422434542442433325322438324544033163223443424232653403276354333403114644435265433334030117335433234440292764363323525352432635265533240283944224242543552345523428534342476452243440271364425225433444026186524225424335445544025194238336835556552554402474466653402364674644022136433466856453402130324233374652634325525553375264402015662424524256545401966436544018154434282673626374017136442532433245401615663553344342623401516635524234254527440148833526464013144235346235554240121565366243544334440111342433786865454010157735265244465524091265245357237440816663388623364347440727644575555432445592744643565406105545533435405214347427777732452833544041362653553442524031464233252645554402666426540112397517823545544465325843974168344352557454356397320684546347563345345543972994446456339713483643435354944554353634746334435543970963434232539691562355488464445639682264244332432352382245243967176366669735564245339666823542396514827465342544443964784474523963118254556686239629432333244396111623552855453960149442456435537439591082483555233958128253222633423957972454224239561583334324235234239551662546623242542473954136226623227437395321662356442442626365522395215645322543544264395115723525752565257395011652443525523949226264422336433463252724394811825234525343947257622423473632273555225523394617735225343854684523945188234253476254644343944116426832573239431463462542543262394226745322433655534562325536543941185533535236535564633940844445452393910644373632239383695444256225623622346243252724668326439371262544322343339361532234434268444439351265455754444539348843436233933872524635393215844244264433343393177437342393045533392919626235472445853444339287553235539271175322632554392612652466662547392510623266525339241364258473635443923343223443422443343376424554355756434392220442543267432333744343921317553225525542664242526536244223392020744243752453523345533919105224564424391813742645555757539171244634377277639161764252443353523523391519672337376558224242739146425442391394343424323912583435391195254424323910224458445444632654555422399247454626655223456465544233983455235542524634324432334432453327243973164436437643243533346356434343623963664233252444452332474265672355432532539523662344426545365635456833941666426424364424423933344224242732225442443836264266653339210525455646339166642653888433473887583322388610923332462238857644434638844455338834845338824686338814753338804824338796633723387865335433877544453387610326326333338751572327443424252338746824653387346484387296254235543871932443833238708443433423869972663223238683634386744322386676663682386511664332343423864653533238636744258386210725353232638611152454333245386011643743524253859105443524533385845424385745483385646474385553373338547422263238535646233852455663851755645463850573534384963473333848872353675384757835538465546833845886466765384414435356343254433843107553446426384265453543841115474334245538406345523383974442563383847266383745429383684345452638351563342452423242338349424537644383368644353832117533325253438316686432383074353666382997475754743828137742529865542382716525545523563665338263163434434425524425543553552563523825934552332638243255337545322586553335572535355433382315625845434632332382223643643555335353254453523821776253433820664674638195422663818786536533817114352555623438168633433463815104232543543381474353322381377566345381287264335438116725523381010728636833238976634552388154632422222525453871063326524523861244326375245638584432546438410443844452638310434632526238265325523814527137182482363718138353718065352353717936453717843344371776844734371762893717536473717443344371734835337172393437171587644371704642637169484443716867245223716737533716638443716537443716465423333716356322337162474423716136353716048443371594534537158107454445446371575642753715644532371552643715446332371534636537152475433715157524337150663585237149564658371484338637147662343837146552447371454437737144663342437143582335371424435737141482453714057533237139483433713836473713746565371363752371354825337134465623713348343371324862337131484433713045234371294724637128484433712737563712657634437125584646371245535323712348353371224862537121484433712046434371194726637118386937117386937116482683711556527937114564344371131045547354473711258246737111486233711038443710937343710847246371073447371065663323710578443642371044722837103464543710228824326424323345536233323533437101345737100582222379966334343798588427379776266255379646355379546273379435473793474543792462323791663463437903636378934343788462443787483433786564345378566455323784544332378348523378237623781486233780484433779582334377847246377747256377656525737755853643774484433773585335377246464377157452437704663337694565437685646223767742553223766664746537654844537646632444376348473376266424343761486343760565332375967336633758363437576824345375656325337555642453754464233753774654443752483443751742334433750583355374935353748435663747764233423746383537455424543744383337433642374236353741453353740484433739664235337384666437375845323736655664737351084332333543734494433733576255373245339373167343533730105442525333372956622537286627445372758335537264852237254723237243746372376437432372276538556372176244533372065335263719762454253718465323717278371678465444371564333263714483443713462543712374237111243273522433837107446632337944445378942276536237754522537667566433757736368237435523732493722493712383683865325446368210522424434436811466335423568345368011634446523343679104333336462367811436423444343677114424426372436769635243553367576333582367476544327367366465443672665653836711263366433534436708835433253669124533222535633668764525533667106348373843366696468636433665116536567734536645643563663564443366286645443436615643733660144333762233254336594845836585422443657652454336567673428236557632555236541164235343426365310654245434236521384632362525253651106437224524365076533583364986365436236487642533736472444234254422555553453633436461164534423263364511655363253343644633634336439623343633364266242363641875265334364015632364535423552363976833566363886653364636379624634534363613624635434734536358646534273634106246642446363310643478653436326654323363111625462562433630128253426263423629862454342362813633623242436336277826323336268643235433625475433624544333362315634733236424425362286554422336217634622636201186323437424361996342534653618124438862336353617566353361667534453615156342326435334253614116536568556236138852654353612144427337525643336111244656645424436108626228553691262393533632636810637336725336786236352336676364245365366536436433633833362267361123545255634353443364425332535453354430553352382326433343652553375264354326644336443373363535543545283542195352454542464537357354119553342327254526844235403353458322343357282332525454325576235392453584343435843453352554235381064436834423537254283666423526443435464473353618424462443754243356353514445334524273543534114542534435635331344763252458343532216523448455554562756623531164564243354262465353084434276735291642557373767445523528174442752444465875335272237754336376527362442233526743455423525136878565253363352412443332365573352344332352216622533424427375335214634335204537335194765335183464455543676455444233334253533435333517554333351664446323515116525437454235141843536674382536626235132852624256524444442654526562543512286642753548494462343454433753351134443324234243424353334243652422425535102442544437665665544554543235917645352733365564453582563442554434254234344432343571344538656443553561365274444733723551565636663243254235411644442343633532264233266264342254465423521966342243433434254423512443234242524554544846843534541542254328336245434531044267322533452944273424634511044263352333450164433344634335422344984364343234487645432234471743233433423332622344624443334322327272643626542344514434467255352543444114245638327334433443332534554533326643352433325565443442186344545555334454263441136364652525365344010655684256434392083353326325524354322343896625762563437235723535436543234565737334361362544543543223435873376436343414626337334242633433346523525552766437662554282753285854343215642523527485853343132644485854533544378233435364425543430108343823532342976425337342812625446554373342712664223526552342611663554245423425963436362234241744223452442682622342322653454345623332333474334222642423325335238235624325552342121432342242374253525233342010825373553434191944353224286866734463418175654554653464545634178635353733416164324433557853577341520434427432454253624333414276625256522452464543434254543413196525452665757624226341227642452433344342435326373558341112463357524642341013625634424355434929433432262454253432662536323443481667627625232244353471643344253633525543461666435423244455543451143243576246344104453586555343324423433243523823534254843266255434218663443624344352324341176636253523822243533731555449834599109453372185533764672576837533371145433643363573433709546455542336917543453454466255423368854762544336787786534633661276455265264333658534524463364753483423363155463534354262553362126443332452433361666555733601953482237729362694233359225544535243825585672542335812556737249856335714553476245645523356146644554253584233553053233424674236375375373736254233541153334352452335370543342442662344523337744442858442625475434258385475344634334235462554233522553234454235535234233262323351355544622454636436324344343634245442433506255443445743725525283225825425542563566545553544435436466263542334923557783253362328285355423348125544355310833334785442338433466565436334586657354233448543446363343135945372785442334236463341854465542334017533447544462334323339135544345374665333822644343245243243432533233374864344443852383423844334523555542425444444644444333362455236433526342464335353333353055534395499699910109999999999982333414553427442624263333256753545444645656568453624333220644342456536262445423331145437555556344333301754334563556432542332914544834366644433328165576776644272542332713532344625875733261657655624726327553325165444684446265543332416553425423295684533231865352543254462548233221876353644645235783433211754456443344442333332023536245372672542573362763319355433474562553446653452445644665345433181453553538948442331724534432353434243424264222331615536245252526622331513643475232465433141453363665272543331326536252346265447734243245433312135364523626943331165678553310167567657434435262339225634452645746254465542338855845285337175646435583347725333629662336836231082442445757762945335285544652426445485286623434276334286434458547833747673342524432333655443533212563342324425331145534210833435423230574645322911623755425323228764253373227176477344255535434432261864532272562526233432251173547354232322410676536544632231474375242336454322213782344235334332219656636629322021624454534464626457554321912653464486553321886253353432171365344323423433216116745445726632151582344644353574432141464354673354536321316665246352453264332121663547664436582333211116432334537232101464522433452546329146258853442344232884325243232710327344324432666685433251753336332442536254324247443324232535243263683443231865424252453242266232288223326532113313427444243334334434372255563442313331656366632432452325342442464554231322244237435543545264463543131194435322526455245223313016652436425234243331292546343433426545265625442233128114442543535231272144424542444246542524331261065242682233125156262352466832643124744362563123156444253765453333122156544676343434433121216436734645242544263343120304433334425253654555238223342433119116474242542531181645232424523353433117186323252356248463323116254442433522822424423522432311529643763234245662863322322423633114176382425263343577631131544525423243553331121843433354543342655431111444282425346433311027432247362742243342552563483319866334346318864386552317164554523623736444316184435473444246352533158826423353149627366665313385331246643311133060106257324325305986254344430581963425564543226325543057982375542630562062465345334425385554305512654435284644305424663424543323233323232544305314637423427254333052116436443642430519642555464305019432336532535434443530491074254232533048288235242244524544643626556444304718835346528875344264304617664285565286642533045118323428655530449685334532304316654223234232554430421466332553375252304115655437544364263304022636632424272262625254430392282643642534343552532533038168264365336483623303715645322543544244303615623643453354554303510625353656230346647737303318654434363246442524303211553324655523031982636764630302262544553445255344455443029166233432433475542302827646446784357225274223262433302718663682653443525443302686226822330251664352453256642533024216453225352536255455533023146453224297665330221385322877683533021207453225454576623325330201173432425253301914655355425552443018864568253301766453463016116626657655430159642386554301457564430139686572333301258464430118642525443010138364552665532309326654743385763475734355255337526430822745525344536368432627430710626236625630611625444442433058663424443041284633325343230387532354230225430113296998343584662968178442443532443534329671564669525644534429666649737296516623435452644525429641565273653433663329632262623524653252536232642962144334225524354429611364466546832642960126636645424252959574455295817833467524452886562957765255322956975542555229551364255633526632954696437929531262349664357102952198255675668224564532295115645532254646354295016443543642324444629491483743555425422294813863643424243329471983743242532667664652946256244665554546455342536373294521624544577246264624423294410843225684329438836356742942126633242524422941196528464345846432653294028665474336255252565255462555429391365352984546662938168662577347234355293776527676293617652535564632455442935764434542934126536246333632933238246355343326434334542429321682463574343544232931156552633535775442930685362329292382324555234433662667665292814823235276453252927188362462477652665262926126623335343242925276233574554547326625464326442924206453225246526523443329231344365255645562922174332432336235274329218654254242920194323426644253375252291913443325254434429181366363352333632917276427754374362432652476432642916136423346465328291568387682914166376453334443464291311653737727772912187432727237666555542911697554729103184235454336323344554342445442532997828865629821643763633223225634776297126544974686562961082442555432951266334334443229410623727653229311875547525442921062346262542911328881965524343223323442332887168253334452344253288615855332436442433288519442236324324356434228841865237554373343373228831478535246256653288226842634542245524354456655552881179233432732233562628801683635433344555542879214233542333266653524342878288624345333226242424244433643287726832425263344435625336544452876297324242423254756226275443235228751765243342675553226287486456357428731366428377533532872216436464332733565432622871196456433273355543262287015655376252233243286976363244286814636456332642442867118242454432428667823575528656854574286413654265383675428631865524653865545525328628645635742861178273226646353446428601564534337665326328592066355336545424354333285817834535242747442632857256264424325444434452535426285613943424445242328551585254747363655428541267467753555528531564233424324554428528622426752851675535428502385424242344433376452823284913642554243255228482663366553244364442344552454284718825555554476435625284620754242524532446255332845186356544325335565652844138233543526533284316755455666232645428421092274463292841962745354828401085335428672839126254544526272838298254433444255352254323425425428371884235524342633434428361776245353332557454283515873576536455443283414624364365342542833962544432328322564545533275525453325442342831207233344243533544443328302082433422628626542454282927655242445444365345423545434282815442353534745433282729824326432434345335623554524332826116572327327428252685243235434434236532473476282415432353324434244282327436643425623675245523434334282211646233345442821108524235544282019822357275242347423428193382424352542342644362542343254242428181644342376744557252817985433532328161366232425443232815384333732334445424352484245237544524337428141084554664342813176264243264353233728121662337333525327462811106233225455281017825535242542542452891862345262362323355528813658652543552728722827453535342643462423728612652486545235285128747528533252841982336774456454523522839645643244282466432811327931163533956353279215823432355553643279117824253235463242442790136423525264733278911553234337322788186343324443623356642787186434323523822452442786156453225737553432785862353554278413645436366353327831163743432244278216627552652436553427811463742342725533278011643644364232779764334352778866355432277748544277612732447333632277510442366252327748636325332773106264533333277298433342322771764253372770963323354327699853375252276812763323273353276797475345542766144422422226255227651464634356822422276419642752424662635254327632063454245334643645263276216625424557554364327612162624245734534664553327602763224245623324352736235683327591263345553535227586834457275778276358275615744623265234433275511634263246652754865765325275355655727521164432253564275196673553352750762346462749147444525625757527481063526347242747136342436334265274613654846378232327451376244625543642744288236264432462433362535445533274312632444324425274214645257244453442741126252426453532740384333335453342573323346344442324362344327391644445242324342532738116623664542327371363449333259542736166742533453473634273588426555427341365454674536242733126464643534352732136345324265424273156635327308664346232729944343542427281164543255364272778232553272686522332427251463525682544363272417623625773443256662723114343226654327221444325232344434272194672725572720128232632224552719248526755435435454262452552718206236672765424453343327179636642574271619653323227545542456427151585243543554755427141185335546103627138433556642712196454553432332544235271111444334323232710208342332424353354444427976643342278148246535224245427716653552446443543227674432654275108262363355274106373476252273962736666527238532716456432262271975255652328546865532622656226526225763224232622437682622346755262225442342622168423622622046623262193826262184434426217466352621676343343262156825355262143865262139825344233262124852426211583353262104825326209463342620876334263262076652442262065652522620544726262042892620346327262025623472620176643262262005842642619966252552619858336326197973552333426196473342619534452619458254326193465232619248264261915663332619086633432226189104343353466261885634332618798232624552618698343533332618558234526184577546261839652537563261823885261816826355261801182334232463261793746261784443326177653433226176486532617556633326174866334322261736834457261723752261714825326170365726169563542261685726332616798263242352616611534272433262616548276261641182334232463261633746261624443326161753353322616048334261595663332615810663343226626157367726156743474632615595334334332615411823243533322615358234526152663526526151483632615037462614956562726148445452614735422614655522726145118233423246326144374626143444332614275345332261413844261405663332613910663343229626138373326137573332261369823225545261356434543261342552613335652613256354626131374626130465542612946557261285633362612711823342324632612637462612544433261247533533226123383426122566333261218663343222612047362261196752338261189823354645261175542232611699263242352611554433226114485332611376233362261126653433261115862552611037462610911823342324632610837462610744433261067533533226105483342610456633326103866334322261027825332326101344326100462332699483532698483622697644332526964743526953655269448247269377282432269266423342691376526903756268964443232688643342326874635326866723345268556342726846723425268369742222682853624245268145265268045344267946625267845354267768232352676387426755642732674664652526734528226725528232671663464526706625532266947354266856633326678663343222666376226655633472664372726631366324655424372662663323326618734537542660268265947394265834552657454292656365426553735265446652265356725526528646324372651118332743424326507743332526492169427666555473332325326483642264748345264636652645862424445264498435466662643754254332642683353326411283325336563426407825264526395742542638553664263744435263676725545263586555262426347453245326336852434263264524452631782322332630544443262989274453326289642637623262776544623262657634326255734332624964263682326235823532622873423544262111826432453452620672436326197824445526181044245544332617573442261678243555261577437633261466253342613853555345261266243232611453532610885324343269566333268866334322267114322462534426688252585326511635346232632641163743625432263666344426246643261132577125445364334222576566446257596446536552574135774387232466257310735524553625729546445626257195434454332570165544574465444323256985357362525682253343535343456334425262567115334636263625664664425651153624434466256456456625631255864453556525621354242434753432561115554456234525601356635635663342559175256535243263683425581355524544244352557145334232332462225565653732555145336453622432725541253454545234325531565564434433734325527552783325517542264325509535447564254910566536442525481353627533464432547115645655334325465545622545165455255334233323254415532283226266242254395445444252542175326436455246263225411154344437244254016552526645354634425397654725425388533646552537135587358855334253696875553552535955436645425341154525436365253386555346325321567525454643455425311165448243355253010663642226425291157745235253252875542552252712562552443634252695834464552525768476442524755635552523964732523625221064785428432521195456283432854465254252020534744567266743824632519155544434348363632518214465437646242423532652517166422556554326364251610643336624325151364347345323422514855655552251395546454542512965354425325118573377522510175257524432423324525995835725342581764362844432423442257165353444725646336256125533682444522559644437766254165453534663332554253225343463433763634624427252196532452423344368324251958543734524642243355374644424268223232463274462462427565475442455564622462394442437433454846565595283624333546555842461766563444464324636554625624536265227427426427427427427426426262633363336333633246023445337357364245455266282459194455344452563105473424585044563444335565453533546433726545432444562674595542245711655752655522456865676567245538826333342628453293545375256352108645543245423663633663526324553674622453176344264622663735724521082654464332451188266562556434383342450168252654426272363244976454333244811644355643442447159533324452685472446116434245646324453143234242444342553425434253242352444107553227544244338844344226422532442625524545524425442232442764468342441216345753225668222442232440333223424423532343335544234235332622439226455544444243336555756243814444245427524472437198635466665432335624243614764244454243422435484335574542544333352345453526642434575275464368342434137652452564564243348447324363663754263763544326445287436664246355258243217445424556276294772431786583543662525753653625526264382742262732732727527274262836536367432365366725832430156344234367725822429176352453446356245324282246353427633334373445232427196533453783635625542242616445363657878898824251164242745465242496537775432423134447625888552242226445344253874421096452645443242135445424444324326543578447543756255422420944436543524192062545762443552742552241874456345241796424562452416144536452342472524151644334832332878622414154435225762654352413148243685235645424121243364798272424112844244455252443332233624465522410944436543524998232543282481183356442645247982324442824617833564566353337562451144437332553244198264536346856522856243188334423362852534262422682576565642432446344542777241965544788423118783454232311718842333552252344233231161165223324546231158625547472311496442535232311387533245523112743525232311188245356323110864546351023109148347354465243323108563463231077644346423106854465445231058635545332310466435642310310642655673323102682674323101108355535234231001663346362443445442399862355333239856222523977852242323969534364254239577524234239468526322393662532223926636854239124534533553332433233332442239057557223895642372388146424434332542223875542372386865358222238556423723848642435322383127633232373532382884654445238167323522380106475635443237976552543237810625885344323771263234424553323768735837742375116725223267323748762762532373564374237298333354622371166523672436857443237010647552326223697623662223681076322525642367465282366967355454223657623456223648623775332363146323325432426223621262354465344323617633727523601064344742562359562526235856452623577644225223567622723523557532254723545336252353955332455723528644535332351124633577245422350115434393443623496656454234848268234776375656234675469553234584675546223441962456845756332245622343783532422342655526223418855485672340566433233955362323381272334435332223371083354663222336463552335964655334623347734545423332563536345333266296565542542332145443232462454723316545262233077335322232988346562323281585254353533336423273264552734543235552245645346754247232655362323251033273233222324267624526543355245333242555423231754432324632443464232246546232115655544623657233232097464532452319136555436424237231813724345274362723171065233535542316567342231556334223142184463472466566466465223136442462231273252754231166427552310382523957732623855692623777263453236106357422733235467262344662623356522623256622523138422278446464625865675357556533328527533252533725242722771265574776554222761064445363242275114442534825422749444242452227329863382466327356243255228335422272296455455423826556566554245654422711842833233362422432722701844332423266224424322699734473544226876344363226717634333452736255332266105726262643226527456425353326555246522334223226412653435238222226315444255536244223226217652436242523424332261154443526562544332260164442474322424433225974543658225818833434448525244266225784436765622561264286565435522551643462466334255432254216435544362527324355562253164438368362547425225227445544274245627443333424263225186557624622508445386562249944334542222481164625335425224714533433434443710224623624644742536423643552642245144454635353842522441143462864446224343474224295433543632241176546258665665262522403544425247543446645545543544623246265223910553435575322381344232425525422237208452347354465463644222362765374767456444543734345237622351567468623964433522342084634367525234375534223311653524335432232964254543322312144252425662265432633522302453872585423735332334543322298668675622228206674575252374243735722271442225424555524222616669844424225485322252544244633363645646744265522224964355253522232244763252457524486554422222126464622462642221442542220676222422191766323324345642754221837424424223433642552576776652382224422322172243234273544266789565522216942443547522152242452652634676245223322214174244275244865544222131065644243342212146623523422432422112567237634354632535333442532210965343443322915647363622442444228134433334425253227126224434324632261343234644424332257043226455564554433245543325525572462433427243554542242242242745232425422241164364452343223124525344252532222244446235545332453524632211043652455422111210523865542321111833534443211108625525432110913624254343635321108116434354344221107584373211066646322211051285552532625421104166335453353553643211031164453886562211029665223662211019645633452211007624344321999643624532219811634434326342197206323242325255552445621961063223654332195762484352194126245534382432193665255721928744535322191118368524655521901963654872754427426282189118344522342621888845427282187238233633322725442236325321866824629218578225368218416855244647222262821831084444334252182126343347262832181146334464535455821801064352734472179146465652654546821781466453342526276217712693354755527217612652572832425217568236282174166335474446275465217315636666573576548217286545652621718846453572170588427216987364432421687642675521679644326432216611534622432832165965243635221647844663621639652836423216277273445216186554325521607724635521598833733252158864535356215776523766215613824345468242321557823256521548442744332153563655215211634483255322151962432475421507626753421498662364552148875576454214720634354235334343745842146126335263424542145116236443664221441884726543445533755221431463236382526432214213643222627662221411382524564424642140106234837462213916623623562523554221387642533721378835632732136176264364444372553421351066465755322134108324542453213311632266753432132866236466213113654546342552621301864232526945682552421291384445442334332128156523533635363242127665367221268642646462125157333234434242632124226346262424323375244262212366343422122135352466434532212176252462212056275621191383628243682232118135354424663542211711632428442522116766366532115865736343211466335252113106583623762211276423554211110545754425321108645355632198874395722189653662473217146242537545346321686484254221514743474226255522141066366254332131565575333255666521211637344232622117642365520135115356528752220134195323255555446425833201331365224543246462013212685345256744201311853343766446252354320130204466454364543344623520129944543244520128175553227256256233420127125366354342452012684557644320125853346223201241247364523424320123184333443337434554532012264443622012115433453266574445201201442454342323745201196434424201187434432220117135528362332325201169353646843201151142334323354201141744234442327434546201131443425562365575201121143443438243201119432336464201101042635363242010912424623237425201081343436752326652010764344322010635462010574363628201041243525642634320103643525820102845855243201017473343620100847344342209913442633225243420981243232332445420972844272754344355252342426223532096164245763245262343209555243320942044373344243536422323209344653209284624252320919454364425209017478643254323253342089124333434543442088124445364244352087157458542655656252086275742353252555444533234543442085976424424320849524543523208364242532082952544335420811733444345435372524208015745665495282732207953345420788524266572077184344245253563243642076124244467524342075105736832543207413434424235332320731453552473735543207219663443324557252352520712655347542942767554733323253207085534546520691633643435452452242068663332420675444252066124452446645232065124234244234252064106254335257206313686752726742520625665582061155233574436254332060632445520598354363632058143533352555544820578425527632056644466420558446565742054955532276420531934262736254434453342052114333242335320515663332050932432444320495425332048105323625423204721542373245263734535356204674454523204510422542444420448425444252043533535204284243653420412582040354233324324556427454353233752352544220392243634462423574642772622038642336220375434442036642452320354533320342562033355220323426203134242030235202954252520282462027452452026342420255424232024533534202346625202211433325453352021766733432020543247201944253201813444343345542320175426332016105453422453201510433256446220141156473332434201354366420129366355333201154245420101835332445444365443220944443208867223324207754446432061253363523822220545536204659533620344353202556462201121998144342324323256319971034257256651996936358655219955473451994435631993104633682222199264426531991446421990936455368419894344319884464619879463423762198654438519856463743198473334543198393583863231982635787319818337443271980547425197993622442531978746342541977854647346197613445333893654519752545522286463624333626723221974955423256319731645538255553565441972844845542197195433363431970843426442196910463344226219688443829851967104233263744196683442247519651242427666368219641843333335363223435319639432624453196211544545344621961115433656343419601246356654432319591135477663524195829544645438548743325434272544551957345719568453356251955953347744419541145454337625195374546226195274765428195110454533462519509434366236194914454652543263741948144354333543253819471042333274431946134774237252353194512475624424332194410463727423219431445474225252332194216434343422423253219418453376251940866535333193912623423532637193811442583735341937114342554527619368643753431935165224543363242332193496344343431933934444433719326456374193111332777323661930846654333192910452324354619281243433443253219271144334255524192618554346435452444464192584445644419241044332535271923145443325246336719225452761921155443553733233431920114233634243419199452434343191884323743419171144355575526191610555262462519159344443345191464533741913644542619128457462421911115452557243419101344454343324231991442332533323343198144524356542432319713432242445535219684265224519513442235655273419414426334563533231935443421925543431911518110244364354634433435434533421810918454335423543655322181086445246181071047434865521810694557534631810514473343756455551810411464636625251810356962218102144846364256255518101114826424264518100548546189911485243245561898153334443334324331897842836273189619444534433637343363518951246544833342318942036542342435266527225189313466246236333318923442189164435341890154523423345543331889344218881345226643543241887134563332543233188625444244237224454432455433318852451884104322752243188394355272281882354442253425332468652355644344726746418819454345726188010567266546418791745243646255267573187812445226654433187724446323642454582557434337187613442427353252318759436232333187416443334445355433718731044263437231872843623333187115443355735724337187012432433263733186910424354326318688423223441867643623318661144352352423186512442752466245186494736332331863204525552737354463525318621243525364535418611145255646444186013442744342543318598576538541858195425243263453726264185730436353534636246353442445353343185618463574277556763843185519466273623495526253318541443474322563254185310545384558418521355638365565441851134743363368372185026483333426693324423536468431849284343552663535526336273368464184816534352337373333618471144538554644184613445333896647518452363234465555426627466335184494453243751843116334327323318422044425256353442344555184184263454218401545562655424523418391954333325332432344251838844433424183716442422424556352318361264453344563318351243423235434418341344434363643241833114764343537418321446649525755435183128656373467424573252457524343518301244234238655218292865636464683734486363363342431828304444552462336644453346674552451827156423374234244241826234424332423252468325344218258484445261824174325352334335442318237334345318223344453543443436264325747645647565718213255653553344655655824326324327565182013436352727562418193843537347544673365753445332455524435975181822446545552764664637436718173454233436343244233423636446352543541816195523552434535436310318151844353433655444265518141943434424268246526361813113755445543318129453472572181174452636181016452344424465363218910462575524218864552741871144473453253186114646226344518516436272444733223218464445551833436182154432865854254541811142436434435171112165423233524233442435317110225335353643673523652452171095575761710887433245717107184755434255526222521710696733536661710596537336761710414534633456744251710395338527251710216652545682354243317101196425352452735543454171001457474733456422179923538433243454234683442441798145484653467556317972756344645463737426333436343317961155633645532179514546256756523221794155444523552625331793265433235255543543624242324217921259542454364217911166754423242179010652343242617891453544322632554178819545335526345235563217879543423243178613552232246564417851453526333252528178411542345634221783125343464473641782135384385422625178195362644331780145642253473462317791265352325255317781463542555335563177711663352462231776135356244752953177512552322646373177495454336251773135744564642853177211544623432331771155636666543742431770176534387286428335417692252535225375255544362521768155352255424434271767185746435443522524441766145333427525344417659544552352176419537535872755555462717631064643443431762155357733533443631761134435353646843176025563637628754364653643224317592163743365646733237425317581866233557273373342317571863342575644743655517561363443634255521755155563373546823441754145573632263234417531654737254724246631752953526596317512554232237648335426286243421750552552174995484653461748958357253417471964362842423472273431746195734462344463624636174512657625445644174421553376245433234365824174365463661742135523736343322174110536376325417401154745825748173918654253442436234433173876334332173713464354234523317361663352765232232331735116533885435617341763526644342536363173322633524365536335343456317328545335631731135435266354763173012556335435432172913655526343634317281264336324645417279547485582172610643648362317251258346626234417241256372362444517232554437324336265453610436334172296653442421721116554733553417201263433342653317191265364353464317181866642524342425743217171355554433262631716146855346754425417152154363343533535235555217147545535417131365573254257531712236633763842475636536575617118574655741710955367625317916543286585424463217811584644362431772364283353686763344537662176115485695535217517644646434355573341741354655266273361739543332524172125426374376461712166236254646636624544516128862655242161271463322354353435161261283354262476316125229435223423242576873433161241773547355333753534161231282335734246216122983624462716121764356651612011822353533721611919455232733252655532216118156654733245255541611754444416116226254365254374443573363161152244433333432443374565341611413644244745453516113963666445416112246536544745542245664444441611115623423255253243161101845523266252326532216109782624321610811826866343551610713854243636675316106244444236463248554236325321610511826456255541610412444462456252161031644445464435464441610213854555532534216101176262434543453435416100962267536416991074455352331698867256644169718652559448434232532169615652555573433452169515642332434544463169419444442535763345476316931764374254234536433169232734273372464324234254766332545631691206244255453737636344616901665567725626864421689248554336646535256255322441688136536356442555168710652435543616861974556424357545765341685116234436553416841482355422532244168378782446168266645531681256555345574563466234533335168025336588737453957423446233516791864532243626226534316781565885344627426516771943234242254363368341676296433643252432555323334246544416752762623562533434436333426444316741062544273631673158346824342243271672216246697265472346623351671226474337423555535233535167020444243342354332572551669247443225436546244336722321668136453562525335166715644322454368653166617855433325236572331665166443225352536245166414645437435364631663174445537734423363516621765532326325746237166123834825344336442532654531660126636545376251659196233624233623232526165894354275341657762466371656126436573562371655664773716541065443443321653126544324342331652115455536822316511275432455624416507627524616491482394252382244164817633486255324323441647845434362164677236262164516623266253442755516441276532555476816431562425375453426316425744551641186524654628523242661640105224263454163911654556374351638186254434434244273571637146233324243534216362885337526743254325784625322541635326635335253432425363332425243265416341082523452571633226654453525343342862362163212643565465875163115744462437524834163020735365463265454445541629894546457162819643442332432566587516272183655255534645635673216262162326652553727445253216251552333475537357716249765444334162313103236352442321622118356762643516217646353516201063462432561619663524516181045426244531617764423441616462771615116557342552516142166428355484394437534316131364432266523331612156453225676675341611167443227238785234161013633443336244216910663345634416896225587761671445426336623375166764634441658656343581648442442731637635568316218633323625242342684161963668343315995653351598682334415977634434415968643442651595310631594682543515933653159236851591446551590493631589566333158815855543462523542158776772464158656623215851465556353636853158466524431583366715826556266158156466815805855341579546648157857653315775843221576346515755953221574842557666157336671572566345157166425531570582445156945346156866345231567487341566965542534615651463634537552454156447457156376353525156246343156158323415606834563155966733231558663363515575845331556873342433155578233565155486354239315537455342515529543356452155147326155056625315496663353154887423345215471083362262261546355715455542721544853433543154346743154211725235523521541563433154048453153910695236732315384753315374824315366633723153565336431534544453153311532525453231532982432252315317824235315304648415299625423554152812532524438333152776323266152685325275415257443623315247105441054152368454441522127243113627567152111543536533231520872435436151911532247547761518744655231517545228151678756254151587332744615149635624553151377333262151258425415118825342631510773242641597724553315896353538421578823296221569635434426155783532421548544342631537645686415276525534151645643314521374643248285431451106442423245145065655281449672658414481066369535431447116244244445314461263553354455314451473635335655526144426423232664555343354555663551443948554265614421373446484354531441864397244144094545364621439136532675323435143818623523243434342434143726657275452556746433234525341436154445334535255421435137424745342733143415457262445372226143397534665341432257345525534347225362568344143121433323423273737665562143012536362526636142946474142812635644455323142718424584463662665544142613423253255554414251275574544325414241562645454444332314231744644467524486555142244443823283436437326673286235252338743542533741421344232526548452532442354343338574536142055433314191444463256834223141822662333536243252557555314171644534234225654361416743254521415544249141410445333525914131686455526252865541412179744823755343533314112987444436623335242334453332534141033466643362653342543376235668424354149374473234263536726585643625265433525353148134443552346244147115525485344314626442443687763852262544654331452144353224565372442746414419663425424435453426314316442548442663667514214442845238222441411666434453725547431343156343645532535551342185436632424554525331341166435424572654344134013666457254352313398625542441338214334434425335636424641337193332422252457545475133625354424344244244273443667613351958555435457524734531334143242333666624313333932234436255553252525242372525364332342413321343462556424641331517424243435253255365543554442255445532623252426245231330284554233232276346455352323274132983434865513281165443446655132719424542342232344455513261643626636765435441325235346355274224327632436613247544535413231532256988623383413221954356777373767436561321136374642243256132077634455131915745442343244444131827644763352735552232228266585131742744452554244554744444342465246454566553624131645663324425565553526752276522334762642824268222131511767546822441314274238436233553453438242564421313196434273423575529555131296655455421311353242332334444472634242424327434326213101475652323353244139576854138156433537434242441371533443432344455513620653353553337523363710135256425567276555543345345443134276453225233554445455452583531332474532265455437237544524313226645564544442654535263483441311562544432445643412111236454326434545532754523312110198525334245552455633121092964553655255337526453254534263121081782334663353434532121071462346624425627121067633564312105116435568232512104108332232463121036743543121021463562533455523121012197557624368485275262212100476623434325447323252345262243335232553324425535412991454323645434354129896623336331297963363652512962062242433333554356324129566533551294126244343535441293126665333363661292118433445552312919733544355129023834243532354223443344451289106425552523128822944255534565464642545412872185343242343263542763212861362242543534431285128242443444551284134352564342445128318662353624344463423128211744646434651281186533533533425265361280378332442324354342523342553252636345384127913733465234244312781682435535432264251277245345524335342463222334251276334322442544423532453254444282443841275118445342325512746642535127312633525425355127212424432345445127156457512701574554324327375412691665353433344343541268306254463334553243324244325532541267289755433523242443652743262324126624442343644342327425534523126526433436555553734252553756541264178435353243633452312631772445455335255354126214655373856276741261674436512601063433326231259178345434352336375412589623646444125775655365125617834342744345525451255844355363125414445533445726541253154432332366524431252128342436423531251298344263444654324523334246252312502246326466326334364426541249116454333324212481563533525433324212471463535255344363124622655344643644364532564412451177633355344124487763355512432566425265426436443645333541242184352433763365332441241208345342555544356355212403262544553436333352523442748534262123910664237655212382662544545432332542332667536123726627356233433535723773747231236278243753544434535444536355341235113376423233212341066235343271233178245353444733352312321982764242474264364541231324333243233465654545545244365564412301844263352425565724412291082335832441228134525233322534122710823532253312261982353225325244427231225234424234542424535632545712241986238535435324332341223238423543344323575425224712229845546434122132625444345852752545452623557326441220982366534512191763455643423456755121818523854446342333536121719633353355634655352512164545612151762336847452627254121497334454351213136355525262733121287245434512111272443522252512101664273645264624431291464427533346246128154435244353355521277846423312625443267325353524454852636512516437724275354232312416626665334332543212316834233634635443312266555731215664331112316635334563545683411122373811121963736625311120178564325524255243411119156652463445533231111810763535433311117866455333111162666362555463535262544526235111157834243511114148437572525646411113176226243233565536311112124633533334361111110463373833311110184323554324453664541110920536743264336254342231110818534332368424653554111071543432332368424611106954435345411105105355334233111045543531110316534525336433432211102124442535333351110124536333333243254644365473111009544445523119997537443271198975457734411971055335375531196646746411951044354345231194186627655535356555341193204438423545263437363311921646332569425353231191195533745545443542425119094432452491189235433343233233423625723311883645545363627342362372434436324332632311872166434272422642425642511861155336423344118515652537563687533118427434544453876343232463235544118385822333511821254255766553411813055456262636334535245445233332511801143332332223117913425422523243511782743444253463425532376533464511771343344343345441176155345533323324721175544572117411332766572341173144435357444327511721344324444445241171955436855711701833363325445543263411691544323343557754411681254345423452311678662765541166186523253335356555341165115333455264711641844746343246334433311632353835242634363243326323116222446323564242733543242511612844324529495262432324632355441160173344345423744632711591244237454553411581444283535645534115721432332463543752527353115618643328323422534353115576225742115416634374433463634211531672334266335523251152186635336656445248331151146454334244623211501863424323246323453411491977253324336324655231148194435274333446354323114719823724432232522432311462482424332232534333423332311451584444342422433511441985446365454543453241143238245643234325423526334311422082334432424435732343114111453276434641140264333333543235552244464533311391044445452641138196344436233542342555113711645527367551136176535332234242333511351263446472266211341865426244323424246311331074332426431132148232535667232511313183336234444626554333435434543431130106462426233112923645545455533433424462331128206351055424632433263231127296523253335472535435434242555411261143454343622112594433434641124116447277678311231464255543786552112278262432112196524365551120246535852635624323335266251119116273484425511182383443435557543654435343111739625443243342235672243265554443346324334111616652545245362335511151462434753766432111416643233234444738411131864243272674345266211122743235434333234446242544234511111044535865531110134433736443564119114533724375411822825234463633526633645411731433325565327434444753444326834311616442297554335242311519644363524673338654311484323364311325434544534322443345645248311295433443631111044324255431010911833443544251010823553353523555534245254221010724663524224533443232433453101061682344343522432331010598253554331010427824257444443265434222425422101031083534565421010215924382524543373101011462326643682462101001462535544342433109915663545545224333109821338662544553433764445109786643326310968623453521095108254555253109422825332443426655463223310932473547354325537372834735410921476252533435556109178243434109027824732443323435533546575747108911625463875231088296643636357344526466274554344410871684674675474254371086585265108510854624643610841364265554232441083228345245362652334243533108278337444108117834242642524243541080105425433634107964436541078167433528456453765107711843345347431076104432552454107514646975536452521074228434432253753875344252107317853357557585233761072168242543342326363107134633523553228575444575533232532335410701365366626526241069962543652210682562243745252523822252644451067156453225737533421066256323436254325543523822323106510662535255310641565234652636626310634565510621062353246231061424423433243623523523243362553332634234332431060196264533342735436523105920643233426536323442621058106332857442105715854623542562542105656554210551662642432368223231054216236546437626522433231053117433342223101052136433525455532105111824342532331050128364525552621049228348353333343234335422104876425337104712623653634434104615623442667254354104520653455532586243623641044106654454242104311625354544251042116253445472510411563444364544235310401294424225242510391985335525346545623521038166424327264552662103722822332664345443252633310361763442442424233643103529633342342342343444442434272221034176452544252542722210331062455334341032116463435444510312754348543425552443854366262210301665243464355232451029107723265554102818654274568466542564102727642555552465542423237644756102616642555333643666510251164342563345102443746446323585245556453665433854354266274663410232664376526646354542445252364102241826327352644344542256436364435524336426421021226265244426233354324554102016924383543323444710191773454324458533533101829636652382423472437576352243271017148423632443534310161864424443263552432210153943434243342342452522422423353652535654410141063552525721013178544753857535266410122765283432352323354525255472410111867265254554694544310101482352644475646109156427524846865521086653565107156622638675652521061454568243375622105236464533432763755464534210428653454243566865555254334356410329647444432342254535243268344421022645328343333255454243362454101566433912915652354233244353912814449544244624539127216235643723252335345249126166236225233226444912512636534736254912418836755463544254524912317724274476265655429122226555358528544223547833912118652447333563535463912052834242432333432636455344253333625342763442727253743291199826455542911831662427532434242256554355433557491172744335324444323264265810534339116174332432335468324291151843342523435234443391142245723433324445523577339113206543423244538825653291121684459628878888889111376524264694254378723447744275338682542911015445642362444742910927854254322633336322364243634910823835725433423332633543329107247445635273264437837555669106124455446344569105166437854379654563910416662437552642426391031644533525337647229102174442542434454577691012244352576362635733772549100256534467544343544367689279999274442524734436643542556542739981644555573654242739971644553442463564379961485242434534636995186534473447475733579943064378543526545724523427225535799319623634472634639536499223625345247546232374235339912644542832635336252533633733990174445556455435728498913653467524434398814826736786356639871162363472634986188234645475275524549851663656236244487539841863665544333434333398325827337544373436236945344398286534575898127652334324262644278726444783980258542565553344335362362236979204444434753526728286597811644374442639771565452463633625797696362542549751282764253442597446433252337625546633426342646235362357365454525697312644755106454297224652344263424646752449843971244442475647666762686365999702666547433855104674543352535396932826762745555752563797976534355269681644446524643710943967198292644677267632510996616655544523273527296513846662543466496417624428262364542949631665345432364523639621265252365735696126443445645558554333232755559602244542564443963685997749591964336424745664524439581662345234453725259571163455262452956106364235457955176365662374447375395422633635336537554374425395312644445242462952227437724254623548433622951148744623432362295016537325526543544294915964356235324425948166343443362632663947179453656768536245294615826468434326663945147523675656257494414845787256565729431385552533423439422374456646725855447555432941156423344427876569404344562456554452554645442426425232545552443639391643235453547556639382943626643626765374426333325542937318542573334326432384846552352564936367242749348764635533546833442434436329351964267523776354325439342945644283656644267557872525542933148333536446544293215833432345843626931236362332547353437432687693023634632553785343675434659292963226536552436364326356356256928284442324246444335366633845542927124454233324429261884455452558453644292523652435554433672445524539243385425544375256425376656106888863229232082646373572686625542922843442446921104443563546920168264344784427755919248542543624425565336665569182382625443336465565324544917186253745663645628329162463455835343263465444625291511445423456359141163445767467913206425235833636657547391218653524547526532753911136465528656753910108263334262991365234525544569816676587333462563397237342393836636535443384396186235355244435782339526444265656753423786838756549422734253556457347228265393324555445347633334368244264353642592148443453474552691982653642587522433424424457546477325687418445338256464427756873134552436336556872454635565333565293733272327356365564644278775528711344545324536638702544535433454624426262325428691144424645535868104454534244867204456456365243424243286626825445634336654433442444348652762355524644336665432638354286498253445428632044353446342552252634862121054424436263861126623435355538603362553442326364825266432654332723685986245555385814832424355532548571065523452748561252332256245585510623554362285417653527794555265248531844437263336452243385217643427464555265248519653436433850136468668555233849184443435355236269428483664544342233443453375433452534247733384717463544265546256638461382427557736478451365547735355428441964446344562756272838432064433445296563552462842354543422254232563445472873446673674284133432357537353635542649864743332547840106463642753839164634363335544238838167333633223462552837188254265633465526458362164356624542104426765528351364366643536338342162647372753662534633383312836433447433832194552625554242332553831177633233542525654483016835457626275524382919652535745634452554282810434434874782712658774625542826196572656657265284427825136442744555246824216445534427635373855428231163663744433822106255443622821862355663820126535364655428192482434345443363333635538281868344348172144424438634442435447381620644642433336256345538151276345553554281465483648131364436453645538122342477375554255564383342811227256367345273625534662810184442432353627434438911682453374828878336544872384574324534633263494453861163536545428851178253542353841144643533825836674665821774466554464433584811864264753746737272772061163862823352720516823376525455423572048657286347203236454425332342442845452472027622427872011262467244355272001044356372647199782564527198126234666253637197106635824256719698536344427195266352752364323643236332354471941464231077443255271931264295472536371927663438371917634422771901263466452456471892982656354454245446455544532542718828645433254352854334323334542271873762544435424347436268242366233542646277186106726243442718522644455242333243368526471841144322327274718354423571828623297567181763553547180146526626553667471793082532285362443624436243642555471781082643734327177965775554371763075557555334524442545455345374371751372476466643547174566645717315833852443264462717226632337362535546376623323337171195532747243435345553717010834236776671694064553663264343622655436435335763366535247168146588833584452871671945465326362733563437166116453434224471651865345556525562524471641956435555626445243437163276536462624453762525255446277162176536245733434455471612085834457364345636333716043665463725247457656642324453755424724374645871598635534337158326577544556565423326832455443542271574382534457662565448544755734627868725664556657156306726665583246422453443634632357155418347355342542335322373375327322366484544671541565255363735423471531445523265252756715215845662442375652715111844527524237150398526372438695223344444754364285345434347149188263546235424562347148226665636234342445242435714713652352746575671463664675535644435625443362324344527552571452083676444533753227226714415823523785373423714341834436344443345344545535344523444233584347142238443542655444635349464771411844244368766385228371409835346443713910652532245271382463434334344253536335574771372965355432653733634446485585557713611646755429487135116236233545471342373372653434333334255534713313646964586775771321272333732254671312262644364333564533356647130106572475254712922635529542433523362326571281678524263527585437127216546775365527544532547126166645446345423343712557433571248682427667123196454772743233232553712236427121483457120366571194685671186652444711711624244324377116114461054554537115117342442342571145835337113118332532556471124443571117672554571107655262471099453253253710868524347107645244571061182323343323710518733542552434342234710498224352447103168533536553745252710297653327537101238434443253753856472435371001962363577422532555347991085343434377989633562535797963556253579618653854662556655323795186234876622643664527941365785533242637931663334353673324457921382555545235557916652767790127345634255547894283455454464343243444234423434452352424437278822634352626235642742855378719833544376262555453378624853376542748232442664363785386423347352637563856424624323246323554478488533545778378246358782137446275234433781116342632466478013823235276532577915852435357332445778665276777716823253542643256677686255385377523624335324527433854285537742565253447567562652633255277733544746343246334434246243232463235544772136537554635368771259243852343274852104342532377017823253564324445657692765447452633325527743342352776874434366767118224552332376614825452534255537651654432324632345347641444547557523686763136677433423527762116224253536676111822455233237609442534253759214345434323246324434637581764644434235345456757296564472227527345554335334644375615824442546735263755883235545754328245652356766556545352432683444275338652436524343532375233543423245464363627521064533365647511967533544366666545657502083642545325256255555749156435325654626567481484354425785755747138526245555744746186372542556736474477451067348442557442883442544353432533452522555557433664395426543434524633454356752422622674215642555534428656741108454534423740238456225335636534249755273914643663253337657384062433352455654764547335434452642523232637373765463634543254235856336266563244353437361164255549756735196235335435554373332734118348253433473329622436362422563446633432733427322664644735662552252864444322731168323637542364332730166474326864752635729166535266423676332728226224378424223556555554727316256853623262537775452643772332726206544233365565556233272576565543724123355524345637231282673423654472228434724465263585326657436445772158343872025825255236325624725424574571917826635353245534337181264464436644371715663373735363272716785367437154823371456336371313823545224345371217326326333352434237111682325364684272747101162554365264791167536556733789826743456776633456766875457751263352355263374106225568423731462564263425426721385253342334447114616521454643252275335455543616429734376432435335332433223344426163883445242616298236655226161168233573446433542616016623534373373373261591965362435432434655526158377372472423243274423434334342342862362615735653636265544453343544245344465432626156147723352736446261558656757446154176455543374435645261531755254523556377533615235652545454233744534426856443425363636151426525453434563334327636635276361042635432362615027653762675554344353334265732614986633754261483763434362373252255352534325363624326556147138524335424353614628746734522727423755653322555461453944333333432443423453263244235435342232261444085424234544435343445254285463823725535536143236424685463823725535525661421643337563453455736141318323635335434246477846667474443614020653424364526344755326139224435753343373575734226613826653746543626646642362345366137206355243355877738253561363162373333334333833846336585233366135198423552426443736322613477433622613318534263425276326254613296353353546131106645433223613028654636666635535495554353644261298653483456128364432432346653344564564528452824425646127106535343633612696465273446125286253544462454444423374452433612429653454346556434443423434253646123156373634775422556122246528344537243522442684346121207483983683444434236361201275365652654561193094232348653472353233344333633361181066424433356117119435232423261161863234362442552243361151166374254344611423825353243667656544345456113127229776255466112236355233355433545564335561112266444237524325666855436110136726332623875610921624346343642363637357610825653764325334434446432555361071355335563624336106138252332324424610586474864561041555336336434255261039663743752610216432337324233244461011843333245233324368461001553663454266453669944645422543436646785255552537334437324273624436981364652765326436971664652645237633436961266536664547469517644442555244644426942964243543544557433647263373574693498525434364354556665955282334423533343334324435343692227633267665352643445744691446524242634622656767544423464223233442524245369016843224462257435568917735435353437667556881665244635242244336879643810886368688354556868578226556684218456555755332555365266831444324254437754682116353547635568122642638365242256463624468025744323343423262434342834567912823356834443678186343323444333355346771875263523334333553467615732334333535424675982668573567414442543465357336732466385452435344524456834367286443666367139835652432255365255287545237345362243252670456534542435365544232434334323343342246665456536691255443262553366823852634376444263456265446675645336669553243424665276564343355462632252554236226641064232346426631782632635566452622662128435234643426611762355553334555363660226436264243536275256743659314423433355233634243642252362555658149456454282422265722833433352282422632433265621823334274224325542432655684864565427444542326443236434354376544653159544525426745456522582573255233262424667455436511755433423343626525650287476522342342333435434543422649865365756648156235335337638436471485342424445272646236226434264332634854326264598236555446442062447535333255525244643146527346346552564211757884233646411262632452554264015642544652445272639176435335432724275663822643232625273374435242363719626434234422323434663610642467656463528825353643347624252452637433363422832444643553652364234463314645847256463426321364553664336636312752336376345236254663345553263019643663535534343523362998336632266281675343643325523326271782545433526535233626116363633635362532763325548533362324346362463645256241065243635346231263245523632262212645736542564621148423632443534362013623655763767561937634543242422444227533276335644425432261876635363617174323345323243345361696544353426159434342432614248253423424324343684444426139663752323612256236553327338643332682232611108533625252610138252456442464699625747463681362254463344466716433325547652545366315452779524766567342252632526243651282525645355364116453442326363126256445382436214642444432325426114655526746834355120114323343683351192465335443446752443584334351181166343435562511729432345633744325545346226233325116456433422434224534323232422426343254753443424335115178245255443435634351142283473466434625544543435113158255622566442455112226424536255423624342932511113655457252935351106443332455485237343564357655454555552438876535525454526445443424325109156433332554554435108228542574673532625385243510726833373823857855527664653335106527333454342334252625763295585254252524335635533555542510520643756437322526555425104246346263464525564442363345103216275436554335353524325102963625235251012644544333643463533252625542510016657424664536652259911635245636325989444364426597274334352382244273866655656435962064446442435483565333595516245346333343445533264526444332452323564433556255425942444333536524576552448554259324835752652866523544865533592136663476376747591206436343267528754274459016658732388754554258945655344477537534553234526266242645775374726472588126244464545355871883242633432562554258676557656585148444675244534758416852462542535423358321827446425352463634254582268257643353555546666655553558115645467244365653580196263543263424556453579106524542725578176643343554373255357724642556324235634352526322576166625433342243272575256342634346645454232434362574844510436457325444555636234333235442553357234528356544335423534673264436242553357119634544542543255443657019665564234544577355356920623533545653289565525683185333563244245742543876333463225672585424252556434233244236425662462345634633526425438764356512641074665632356447832555264654647338757563244245743484253663642655631365245655289645621365245685274545611665345252365345645602764245257496444444243532362255921663324354354233626322558126235354763645572464246675265525456562554255611824335664435551363666655664545543844542543344634427834834754444424425542553156774547356565555522866252374232642445624647362545512385424244463365686625542550106444243585549337525364624445534442326277434435435485173437564378522745364337445342437434435547624335564754716826443423344373654626764724336433777243354356365453182644342325324347556666666524565444182644342354663655354644283810556573443476354315953332624347674542268342655434534434425553565654168446243623642432554422435433752353626632565254656553643845525275526425401943235435424683242435391444424443543233538134454254347787537124444723526265362444444273422735552232255253514655277474555425341344427562325535333444624623335252427642626255266475445324075233452285645546635536524234432373353325312682534663342552344535524544530982554342552913844552555424352816824436435327334352724724543735253625642534354526148533352636555352513854554434232352417653643545246234255232164274465745566446525352218644634636246442425521156873633434756325202382432265664325446325433519294323554534342526252433465263251830656368344254343334276327453865517424323542463683455234436424244243243624255335161864375537276364242451524453425242562543534652632514256534647338757253357553553513328342544453453443253356256566675451245642343333752449746444795666653434453446735434511248744464636562322544655425107655765659104453865543582763442466426633347365365554257196444246654226475447566265555744325544237774573536626243323324437443737777376763435542554382623433843553736683526552982932732655573355431644246443755354538672537332334753614443463524347355565355663525535348835333523533899924433745654525364424685373743862662523473854742466543735365345525542512442442355435423753475554241765043355234482365545333756533332253323433323342726428417515754743428285554417412545742552542417326534432353557985442767865544172185487626388334426624171545545238222324264344346563556344366444346443436352526324170245544682233633464256525424169115433444644341681257335432655241671155424425552416613554695544344341651555445334354476441641464444625324725416325556765558668737428336346341622654755659686942434436945283416114554877556343564160145442634555552541591455474432636323415885544444241573455345332232323375333453534443465364156656436741552253636543236624864567544154195646525235456358556415337564632676232562677444632445362554263541521755446635433635556415185587382541502253362745447543627556524149145434332525245241481455443235265432414711554465274424146185484348263575875534145115333526529241441856536278326862554241431652334435335323374142195346356556354634792414136583844373545827563548334335423333375414033542994425344426346337344453262533413914535355783268654138655339341372057335432472525252552413629552356558543324475334765555424135385633436253625634455243298263335665554241341455447644464432413312533446454632413210554523822441313254445238223363452652655545238224413011554442343634129225534366387526353636283412829563343663466364652643625524534127405234332636763721172733272665262543464262941261253344523822441251757455735433443443412416563566434232824341232053443223323442635383412221442433434467524478656412175453465412075375375411921563343247434378747898411886552644441171156353534252411620552354343332524242424115205545424843552423265341142654544563435352525323624232411333544344322576445326363535245464435411214556535232425434111115544435544341101355434624424434109195542273445366246542410821563445242262434273527410714553232426752534106755342474105155833443535564634104225544522426636566256253410320658346267846465476544102625583425575244232333254354578726255285837524556285478345563543441012354358255624262624545254410031554443433552643642434565234425349910544444243649812563482876210349727554664854333552835435658652496855445635495335483944643448378943784421054382852494405633427543324455446636536543637442535542493165524544445466543492605544424855323546435456532335464333323362343545463533335425334913256535783866655682346634225772656490365534335568383956433572826462565335534892853446383865344273646347536244882252334434325275365592334871754243332733823324486155323342524555544852253234443234543442345424842264435553324384434244254833053776543549554544634326525235448213573643323367448124554435456245443453425447480125573434436324791855455843425343425247836566255443222423645343236453542435665477485634337464243364654246432455544365346567643353234762053732767742756442755475315423544235566326465876211442723347421545442544253766554427473195454352455323642364472175432234423573634347111562475455424707554425346918554989725445267433468375946765442844662764344262543443526262662553346519674346252253463624346423554663749565243445342634631654623354562244554621676352565264357344611553594644423633446030555275262537382642434435465323459296533565642743532734556746554245825553422544266253545385264245720537554344675244786564562055342675576444637552455115543225232545418548767253424523562453105552452432452115233443455545120555245557866625553234501054245436344491456342442655323448205453543433325242424244729643455436273654232435535655424463853636454534475655435258364356576256552445955445484544414652776625553234434954342777457353662624332332443734534362635566255424421454635342655535441125532553224344401554424742335424243915534445375655255438185452733563563547664371555874245276576543632563232427436467566269864610426347435225534264465252542476443434405434255536387286667433566972643354336366433195323342667469833554432275333424247634773463352432634311255774435257243013543344545634342924533426634425423757625542428857444244427135462765554245426144455552537354442558445336345333628323664344563736866548325845872742388424452342442553427322745435664283736862442345447423629423545534232237363725765433562335662626866728768554587877544221754553332236263263421115645335437442017556843636663437534193554345462483885652382477346523325542418245536543653433355333765654172055445446426265654364416145534257643748741522534425736285345596275741413443454555643341318654467524456433443412884454244332344325253324535544322352543333235432535433333332253543235432435433333332273234411715534242543445286323443255423355553232332323355437545433244634238235724641013574626447565249155484755545252554813643638986463447196532323983347983346463755457755486533843362667375744536533774516643674853434775344145554332333476543286343742266343554623327726343421654337376366737754129553428274465555354453254455423200116546776554231993064424353554456236543543543632331982173433432446752443455331977644624431967625545231954363454325752449746675266276632542324434234373194147423735343625431932072673463545552756544319211528363542343191215446534246832864654653190117557576832231899432356834318820444626736236264365523187216245427646735765554333186246323366353653526552777263185236436633355524373655553231841267685423335331832864283468423522556635435342553182965343643331812264552486525644425534333180304635685473252732223424245365533179364346635564242544537433526434423844323178174444834473344555331771244444528565231762244462334344445245275533175116426737474431741543254573624425831731764456667352525335317215436465562327385317111834243442583170196235335236269424535316913643526442555331681664256272527268553167336345623286744552954256244266346563166986457536331652043234263222334652575316425443325376775546254328342331638634543523162136446424334544316121623423242732334332433316018874442642363343462315930934243544527374442754333334244315876445234315714633542632442543156374635545624345535255235252538656625542315521444244345247747534552315475644562266224773553546242255235233262522625335223252326824355662645454432542315325634562352365337626733536231524083325434845264256424525232652853357244543151198445762422563555425315068336423149136873655625542314810835644644631471985377452863445235333146218358353442635345343253145248644643344643355443424333144278464433535373732345423243433143126573523255443142138546544456252314168555463140248325545554653764435233623139964275635331386764543313713853375263523231361583446752454256531352363523534364379456525536313413835528597626531331174685442537313256574731315844563130136546665625542312916445425434523822431281265625423522331279686255245312617664323532673434433125156824546352766233124136824645263842312310654645445431221287446552473231211144565844243312021463424552663364535462311928644426525275444455437773754231183164263424643727324245725256255423117236644537653352434663262331161864255644273744255231159845633263311415826728626875656311314635444553632453112356643324874565537554246524424352355431111162276833362311023878434463335762686553343109116444523822431081184443546443310710642443655431061764366736655445443310514443675232866633104148266268753534531033465534444752433566763454254476354483102136535352455542310117643335535544545643100156736655256255423992063543554732442526322398136234545626322397258234333546252534434374543396108464453332395118233573743239411826332543533932464278527423243732374336239215424332635363462391246233443525345352434365523901472664247273552389114443733255338896236442463879669445265386188542576262673544433851382623343473433842962443342428544386687343543542383146554682243543538278263343381338244736544367382643445254263754333801364236768862633792864466437544322555427664524323782963543743223432276223627775643377274446373543463623425548446523769734355423375366354374725355354323442652254465226333748652542643733244542543522437262334243522533363372176547635534556325537111654774626323709654562632369136363537263253368138355654658542367148233553473673236620625453233463323465423651664423875372626323643264665343264543424343436544366322363694435336215663434332345332361258344552777787363524232343360782333243591552232424344343235876662453357118325678655435613623376255755435531734455632733553655552636634243235468354463539827675344352206455445393436235443435186437534235019746424653433572333634945642343226263637446576544453555523434245237336348588766347235224543342444336332432434678355255345218376254346435542428423442072533444752533455523343882664542342138437564242843341208645354345543433242334017424443475534243233392082565425555427244386338156434442222335353373544424424322432342345375534564573547336246727264464754434546324643351866333554222432554233474453254333118353735354233211832435374623311444563546845422330267454475455223324353242323332922432355238225455262252232827644447445233242434383268842327214442542555245526562543262543233544244244355425454523251562342325332473432415652525753552553323206344525544356255532332211623376274553211845652665724774565232026745645536363786553533453533192664434543545523236555374352318186623326555923323433176811999831611544635444653152474542656467524443554247231424534566436876652897627253313297553224254553665544253652333231296443775523111464574675526524310165426442737442552391374242332454343815633442336236324374674343432224652943643676635273625484622643644423613662332437264235116235234424234186245443455527553323311875433556433276423324311322864985376373534234226345253534543462527246264235344422285276546656423342558532932443632284284323542543542752622535238223228332463543463763345654545336555333432282129433547463446343443737734545855423735754344435256263423733675732725384552362696462326225254443343433454446644342433645674334735542228115623423242433646228014642336353542332279176362744436424662322781464252325455542227719623533435365678655222761144232575544227545642556334353236325435454453545534276443362565227417623533435473767652273304243326365627662666524824426572272286255332634363638326342444543227120463572453337763257522270155283543325242632269167434354436334264226813445535558755722673043427362365636635236452526554222663575634447335754356722427524642324254226527463534523554465346274567654226439854255333624546445455654354445657625542226311435364236532262246235334353333626224427652261244454355345225353444276532260394442546524432342455253346433443643427332259674323424324446263635537535526535344233324434234234465343433635343252225843854253446233626443735433544373254423273432322572464255573528785653726553422562444536267635584342542525222555065365368533334246353632453444225238222333526423324225422829533333234232736554222535242444724333253257476232525524335477434655443243355532252983454644322512783324455455435435754555444722501585377445445665422496082544534532245455366534253562544533644523345233433347423753422483064234322855342335425376243253422474344542445652455642352333363455243545332425342246549454535653486263442533357365325234425434345243273253232245166554556274444422224494442744272243286254453334262543453436255323224276553444224167338492240274455262422543435353584664662239156622534754626432238863667736223735463425553645364444252352453536232832236258338546446375362622652542223547444277622442746436463646233824944362626422545432234254635862445435445457666466223364463427468525354378253643654255333645253654253342875274732436575922323362545534456544322438563752735565422314543342746257625435447444634333437573662685565422303064644444523272643534443322335322294682644437344325464344534344535234836233365266562228404454578543466232538565422724325233345769222774443653222613444353454625522251444564374726472222414445537652844632223168464746764355336222227948342453265453736268322628222139755555853455355634234563863735235543863222026444274336264588333527287622219267563444526486247564352752722181644544554427665522217576425567627464344245382526396352474343466724442343423465272216256254532345243334624333653221522424332636498993262264722143044323433356643777552453545625222134964342455423735544547623255335337453556457674453532212204442457355655276655322112064435232444343272732221017644454962324623622209124442776232532208164333756345265542220711745456442532206126545655432342205146325655455234422041763342234566245253220325644746434334343352437424722028645534352201145444634624442522002442622362444253432664775421991244424954326221982673424353766347525442462453219730742665337453263424343334433744219673644274666543233543535424553235263437435432424254232254334543663526363374621951483427737534427219422724274655244755348666521931583353633554423821926444363219125844873383663835237732883821901383242639544272189276546726542446265344556226272188176565525763367576321876555554447344372658353652526526535375343277544546744433453426356433218617652821043544443544218544665234858534353443424332533654338526536344532184326423363233443544754342433254337521831555525333653554221821644424335542432332181134442753454543218016733898643255335321799557424624217838443335354253645863422337766546265355422177517265555477296368646563964986333548795653244763652432176144436275356343321751153638767655217429444637346353626255427624426522173254442433333343442337456534217215644237725245542217118623332543423444554217022634626346462425442633421691162243638664216817433375634552345422167235272355745436346332265421661273665652654221653164435352642553333356437643242532164436456636766422435352532624435435244675768322216396623324362162962364424621611366944554365522160116645466755321592087465625523267262652215824444344344244352523452752215798265425552156106443355735215512848772465249215413624525442436321531182427685542215266327682151176622776776544546321503166555763455335544465424663434332149176354332446634343321481943234254336237862442147782533242146146347453763767521453283335242327543455365335523365544214434635434243765534654246634364862443221434545642754334353364353536425353465355655357437521422164342476325546252527521411565363524423323321403063543424533434245252458668726221391462474745434292213810624442434421371966349422553632524532136316244334242743544386687343543545213515823357322652456213415653635244233233213327624546875444542625325532542213217653535354232647342131983534323221301883624628443237324321291666337767554454542128176633537525363267421271466333448527743212630645435256333565432724544342733212522669844287364742755555321241984423533555336637532123186235633443432342462122128364554567322121158262432656266752120314332422252443754524322543736343211910652436557321182464642665352534362464625421171152245434684211614622682222644462115124442433567642114304462436236372332562444424533432113317354735455362534653336475337465211217623533334343344232111186427527352432354262110174634243532763656721093343234254437643423263245732726324221081864238553324336626221071743324323368324243210619432342435244352324221052565254264542325428363255322104134497665625542210312652343266543210274652624254262226354635284433226235532625843434533263655734355658463363384272101226256444655243434432454210010626244446629910833435446429812834366583432297188544335444344643222962563454262723334253653435482959945643463294176425653254365342229327642726526562765574724556753292116542562845429130642324663243543537543454435334290274493346524234244244436262652892683452552545538326434432454288106266452366287286656864234565477434664266454286136236443766655285496354363357466233434243476487543756386576245766542284156562626636627532832965453626567456986361043627355328210642555865628113642556626432328023622436244434436265355262792463346433454274323627665427811532353662552779635244264276236443285433953353445554427519635232724464433362827437635434424343535434373537234328333263227311655664446652721064245484532712465375345432554354424443327017743245552223433352691883545444335234333526823627334334244433223433352672082425434754626425433266976535335826512645355246554264138256543533262263155532747245567532622462353343545456532985655226160664334477456553424685555233463254249366675254334334443424243260286525343274642324453755455463259186536245537334345542582086734364574434563643257186654637252474576562567655327225515657744332424243254276623546333467636586543254332537658645325286533245225112654256246463250106552795353249184424436876638522732481962334435443432342462471283645545673224686454545524588336576924410646556655724378276567242865477463241186554663243634355362401475635655456732239106425557656238176235334333374546423711662344532352361933555243456534384772351982663535344455343252341382473536468432332364352568343333386486323232126633623332652311564256748352473423028622433255446544245555243833322919433363663525522334222813642626276556322720825527422432763243652263983233525523444447554424375545352442624222534643554472532543544245475244328655422413848564566362322320642432764255535332432222365636334722536254755334221125552654465422202543234286443355443434474542191994553726276445362422186623332217176252664342544644521611653743676552157672636421416834435834445554421319624724373355533533421276248243211116345526233421012653444446362291063636356472811723575442532712444574546343261162622854552258826423352412628424344366238674676652277333263211317973573555416386515465441435341326612482351146643”

4.2.2.1.4 Fact: Rewriting the full text of Quran at general verse index level by replacing the number of letters of the word with the words

In Fact 4.2.2.1.3, we will literally replaced each word with the number of letters of each word and rewrote the text of Quran. That further reassures the rewriting of code 4.2.2.1 and showed that not only the total number of letters per verse but also the order of each word in a verse pattern has 19 the similar 19 based coding. That coding as a fact answers any potential objections such that “why is there no coding that shows the order of the word are also under 19 based design?”. That fact, Fact 4.2.2.1.3, answers that question by proving that there is also a coding at the number of letters per word resolution and we can rewrite Quran also with the same pattern of code 4.2.2.1 but now with the information of the order of words per verse in the 6236 numbered verses text type of Quran.

In the coding of this chapter, I will show that, the exact same coding pattern of Fact 4.2.2.1.3, if we use general verse indexes from 1 to 6236 instead of the special verse indexes, then the coding again results a big representation number of the full text of Quran, which is multiple of 19. This shows that the same rewriting coding pattern exist with both of the verse indexing types, the primarily used special verse indexes, which show the index of a verse in each chapter and also the secondary verse indexing type, which is the general verse indexes from 1 to 6236.

Here is the proof of this fact:

x <- nQuran
tmpwr <- c()
for(i in 1:nrow(x)){
  word<-unlist(str_split(x$text[i]," "))
  tmpwr <- c(tmpwr,paste0( rev(sapply(word, nchar) ), collapse = "") )
}

cat("Tail of the representation numbers of each verse with number of letters per its words: ", tail(tmpwr))
## Tail of the representation numbers of each verse with number of letters per its words:  5342 53 53 6722 54254 652
cat("Head of the representation numbers of each verse with number of letters per its words: ", head(tmpwr))
## Head of the representation numbers of each verse with number of letters per its words:  6643 8235 66 534 6544 865
tmp <- paste0(x$VerseI,x$chapter,x$vwords,tmpwr)
cat("Tail of this big number at verse level: ", tail(tmp))
## Tail of this big number at verse level:  623111445342 6232114253 6233114253 623411446722 6235114554254 62361143652
cat("Head of this big number at verse level: ", head(tmp))
## Head of this big number at verse level:  1146643 2148235 31266 413534 5146544 613865
tmpr <- paste0(rev(tmp), collapse = '')
as.bigz(tmpr) %% 19
## Big Integer ('bigz') :
## [1] 0
cat("The number of digits on this big number is", nchar(tmpr))
## The number of digits on this big number is 122464

Also, here is the “122464” digits length big number:

“6236114365262351145542546234114467226233114253623211425362311144534262301135334236229113552823622811353342362271134322262261134534262251125342336224112443326223112254622211243422622111153235262201113557621911143345621811163343426217111533333621611075338344621511076432655621411056433362131094335362121095426436211109552433621010954264362091094624262081094842262071084625262061083543620510836736204107277620310736256202107556225620110727462001075743336199107463446198107464456197106732632646196106453286195106466476194106246619310535466192105442666191105464556190105552543618910575633323618810435326187104355461861044734461851043743618410446253618310446263618210445424618110445434618010444433617910396757865536178103433726177103166176102562562617510246372617410226561731025636236172102463326171102363361701023743616910227661681012536167101432536166101254616510147324616410145423616310147424616210147665616110157754361601014725361591012726158101176157100555342615610046224615510076224344615410045534615310045334615210045472615110034256150100342561491002496148100249614710024961469963335436145996343543614499675654561439943433614299374561419943274614099375661399947553613898213333354434467524344366137989632586552613698166225464329632552613598166346667552647353613498116623236554361339834346132986544424613198126636963255326130975543246129979322444684612897633235461279755425361269755427361259656542361249628461239625561229635556121966864233612096534343611996453256118963732611796553325611696333461159634456114964633261139636326112964572361119654227361109636346109963644610896432736107965343446106954854461059546353610495953348655361039546462610295654275361019536546100952546099952866098943534609794354460969444522609594445236094943426609394344460929434366091944424360909344354608993443646088934436460879335556086933445608593445436084934535560839356223760829353334260819333366080931660799224560789256336360779264424436076924544460759226860749235346073924636260729234486071924763360709235526069926434343606892267606792274606692473246065922676064922746063924542460629234526061924753360609234376059923436605891364360579176645576605691774444346055913652605491374460539145233605291452426051913767605091353460499135366048913537604791363660469135376045913536604491266604390353560429067527566041903755604090987675523260399045262603890352560379065232526036902426035904625360349036536033902776032902666031904524360309053322560299044454602890634422560279053275360269033356025904542460249045442602389246602289352660218955533560208948552601989435436018895354266017895645246016899624755554601589533634601489633533360138943356601289434676011895743636010895662236009891053544462346008891153556362374600789393260068954335360058936476004894624560038937266002895655556001896625424600089363359998964333235998896333322599789333659968926659958923559948916599388465225992883652599188466465990884442359898836535988884434459878844354598688443645985884436459848864353645983882665982882665981882665980883634597988353459788845442597788353259768825659758835545974886324342597388642343359728844324597188354459708825559698835545968884744259678735735966875653325965873537596487466625963874433459628744242596187643442259608746544595987268595887342559578746424595687266595587943543432359548734365953873445595287364559518734355950873434594987463335948864568459478624559468634645945863623594486334359438635365942863537594186643322359408637435939864543359388658532459378644323593686432765935866453322593486265593386462535932862775931853532593085444225929854462559288555255259278525559268546442592585343459248536525923853663592285454235921854533259208514653752443865525919851464444462298552591885104323568324591785966562345359168564962335915854452259148536355913853753591285265591185276591085363759098495333865535908843456590784453455906844655259058466265345904844623359038443246590284343659018433365900843643589984652332358988454222358978456423358968425558958435445894846445424589384464365892844555458918456542458908497433437425889843455588884454255887843354588684345558858435635884836652632588383367358828366625565881834656358808366525545879836575374587883483445877838655256525876834834458758335265874836108333558738345425587283564624587183367358708344372586983285586883254586783452535866836537423586583762443425864834654258638368542435862838652633235861837763644358608374423243585983454655858833853585783254585683442535855836436423585483583543585383244585283574533585183566264585083675373558498328358488293564434235847826532522584682553253584582474235844823537584382443635842824437258418236265840822655839823753583882466235837826432422583682455445835827643274258348255423458338235645832823464583182367458308236635829818824423635828815624335827815833225826812645825815454235824815553235823814663458228136635821813424582081645233258198144443581881343658178134365816812565815813643581481452345813813554581281346458118134645810813454580981343358088134845807813464580681346458058134645804813464580381346458028136645801813453580080466255799802465798804455557978027557968035545795806535443579480257579380254579280542533579180364457908039355789802465788802465787802575786802555785803347578480435525783804355357828045376578180542333578080453325779803652577880346257778045442577680443225775804527357748024457738024557728025657718035325770803433576980354357688034345767802435766804442457658044343576480342457638036235762804664257618044453576080364257598025357587995243626355757795624345756793733575579462335754795646275753794625357527995254343245751794626357507936645749793324574879433655747795327535746794664457457939355744792675743794754457427945336574179455555740793653573979656243557387964353225737795764455736794643457357925457347934425733792445732793655573179453365730796423223572979533534572879636635257277944442572679382457257945425572479553335572379445345722795728465721792575720793554571979276571879374357177924957167924957157924957147924957137924957127816535265442543558357117894334334535710781454623237239543570978105362663682570878554324570778653446257067825557057826657047827557037835725702785536365701784573357007835765699785552545698782545697783653569678653446256957836465694782475693784644256927845565569178465655690786665243568978563532568878265568778463255686785538275685783556568478454565683783566568278355656817835565680782685679782675678784554356777837325676782735675784732456747836525673782825672774644456717738535670776626334566977385356687756457456677738535666774844356657766435745664773636566377554272566277385356617756333356607758753356597738535658774834356577746233565677385356557733545654774644456537765243425652776342237565177662423756507738535649777539654656487727556477745543564677385356457738465644773533564377444275642775432635641773853564077394456397737625638773743563777385356367755325356357725456347734335633773454563277346456317734645630773464562977356456287734245627772495626772495625772495624772495623772495622761055339524245621761155342442363562076953343353256197696754456735618768546675525617767545255356167656433556157695244333455614766664533561376865443332561276135546325573446561176755542445610769656636555560976474445608766763446560776566326560676874632555560576666565656047610734442734656037656353656027686465324656017677544243560076105344424464559976766633675598767733476555977676844344559676866332672559576667586355947675453663559376105576542753559276116432523733255917576423534559075575734558975544432558875643242355877553427555867545242558575352455847555433255837535345582754333355817546533558075365655797536335578753324557775474335576755534235575753555557475354355737535545572752665571754752355707545522556975455645568754645255677562552425566753743556575554372556475643357455637547533556275332355617555357455607536545559752545558753534555775473445556755557425555756542363555475554375555375476435552754744255517411746324423635550743433554974353355487456622355477495442442425546743523554574373555447456723355437448563554274365355417445444554074482445539744742355387457222555377443252553674282553574384255347436535533745543325532747525243355317425555307435545529743436552874342655277426355267457543232334434254243444444936256965553655665575543553635553552574334555247425555237443342552274432535521742365520745533325519746433324551874374255177434325516742325515744333255147433345513743433551274256551174557333551074442425509743625550874255550774464255506744543455057444383550474443545503744723455027425555017436435500742565499742465498742445497742525496743642549573784442494542435327634447656734274427643265266445236242754522375453526555424434325494739533433532549373664325654927384744525454917365476545490731155363555563548973855657543548873556326548773466525486736566495548573754762355484739562332762548373664533554827365462225481738454325525480735544535479736664422547873553424547773453525476733642547572134325535466225547472134434324442523547372744343545472721143242625422547172114454286243354707216446432364338425354697212642333426232546872843334232546772842433442546672104465543334546572844253373546472104553324337546372843973823546272545684546172104564384834546072144344344324553454597211453524422445458729453334834545772134434252343424545672134523453554434545572855448654545472944422534554537211474256524345452721044355422445451727443643454507294354242545449729454325534544872134553642353342544771155383399543472425446711055353555235445711058253322345444711264323534768354437185383355354427113554353343642654417135465440711353544227542335439714544754387155533554377156746254367155526554357175544454543471856343343543371365354327165352325431719635435567543071465645429716533484542871763635325427714563254267114896686275356445425715535535424717644432354237118642423343243376234542271576462542171744333235420711444623244243463541970965453367554187096335572635417708645637655416708833444235415707738734354147056373354137084342442554127054636254117056455454107046425540970576326540870469265407705569265406707726345354057010635742273354047046726540370553442540270664422654017045466540070286539970552726539870566325539770273539670455345395704543353947045372539370254539270454245391702555390703343538970652552353887035475387702575386709554252638538570454435384703665538370466435382702555381703554538070354553797011335633246845378704724253777044238537670445435375694634453746936345373694835453726956425453716937645370696633243536969463625368693736536769583543536669482255365696625443536469762544235363694444353626936235361694634353606948352535969552343535869545524535769574333535669665423353556977555522535469346253536925453526937335351694534253506947452534969462335348691163252565424534769876263574534669256534569353253446945423534369564343534269966456542453416965442655340699655335736533969555366533869374653376965357555336696545234533569653653753346977275333533369654644553326968104354533169552333533069155355445454743555329696544734532869487445327694844453266946253532569262532469165323685833235322681263755388554353216858253753206810537432462453196811534255333455318685635525317687642346253166854423553156810623296443553146811636355336755313689836363243531268865287532531168444445310681263327335553253096856333253086856343253076846332530668398653056866443725304688652466645303681064334462435302686533525530168583355530068663345552996876433363529868373252976856355452966846335529568655572252946838385293687642535252926826752916827652906876332454528968273528868106862555373528768373552866877636443528568553232528468443335283684445452826835445281685442335280684742452796838335278681194352234232527768276527668276527568443445274685535235273685635325272684636152716710446345426252706713442228652462252696715442843523346262526867135244345544444526767944354354252666776425337526567865525422526467126258853464225263671264344344344452626712532424426433526167154238263263324335260671543336362655534452596784345253452586712438554262252525767114245342622652566714654257265533425255677663324352546796443262565253679445364552525267566568525167116523242432652506718442342324325645235524967134536534445244524867843535453524767764445565246671264378587664452456710435545554252446718423255526323256334524367116634447753452426794323354455241661782554655236554545524066248525552552442324255554445239662782554442553966253536355544352386612644755106454252376646432333553446963453565442375244774424354435554252366612642545725542523566236275245244658564763554252346617756666664465252335233662143398565243463733435252326629665335242543254344624456335335231661166365743432523066154456552432425425229652543342434323427555553633445228653442442446752445555435372865556445455227651745442557424655343522665745545455225651445855954323425522465254334552344424436443342325522365324267365766353543573523577352532752226514425634433554335221652844224433542576427456626262475220652143343244424343535232652196530524433565432244377433767268544521865424334434243344434445652353627244656676535425217645668545216641244535364446252156416826423374777724652146484345487452136419444377538348722554252126498744233245211641166635636747521064164335435434435242520964116446555765652086427653446752446634555437335463520764104635646656520664184434536264326225535205641643547667468564435204641344454632553535203641464456352568224520264965556568352016411463545455425200641743233535252382234519963116345533444351986321824543364255542327227519763188263434327375255425196631762949754545673536519563206294685463443236265251946318854242344236223754519363148357644436633451926322634675254265356463756451916311623634525535190631265234442537651896317792456345453459435188622183573523432256564254451876215655474327528644518662226423345543366326435542518562186437854352743545225184629945643473518362186425653236452554225182622385425455553364647227553518162106525425433518062866336346517962214433253767755445723425178621266655238223451776136675355655732554539343629434334555542517661984444237551756117653342467524476345174611564233478442865651736112442653525542517261148333536446544251716111833435843765170611685425734354353435169613243358544442456723335544373243433516861248542564454544363723254335167611155535275342516661962262434351656196226255425164611166352382233516360206526336252543462554251626039444243775263763765375353534552237843542516160216244466237455763723535160605644554434628627746368372543626352332226373683844978535542515960218266362737628527524645158602183425762627352825246251576015445454465454243515660196524343564433444333515560136633435554624515460526555644324224328573345634876543543264443652367244342515360134635547373762515260136256865753672515160496423453636344755675255424562666425353755664625542515059176636822246726664251495919634576676665233244251485913662854233244251475918755674442656336362514659108255565552514559108256744663514459186344246342364555425143591084446525845142591782443343334473274514159114445455525451405923623533756455342253235925139591262353426243551385916622756482644626351375928744586344443466363255866532351365923443455362438659344652565135593182642335333637534625354255285665134591882564774246862659751335937644246735356534834422649864745325344251325925432354234444433246345344351315913864563582425251305912644344364553512959145462462665432551285941742885766562472324642674562525462632554425127591166352382233512658518243234353544346752447346762357272726536432656564325125589434253643512458872564652512358158273237354377565122581782433347363275463512158156425554427374425120581044444253765119581065234553435118581963537434225434553235117582463456476567544623563362751165823444352353334633666355425115583146355556455447634344772633355425114581787444434645557264511358206444675766867373554251125838647454346462742423454668683436262453235111584743342735362523423433243623436235424252382244223511058154323554553754635109581844954635253356465251085826449444657364652362328553235107582146352646232465362627651065823444355257566372722624755105581844428454365264343251045722652542543534323363634451035722445352543552556645554251025739645545567253456357288546542677435666352510157146454576726846451005728434265524656433676558647856350995712652434365765509857154523255363523555097572144332623242362352524250965725652542543355554664544253650955739643663642644635425542564348726565436646509457206557656653438825555650935712434354447982509257136563425354426509157286456455432656634233446425533509057156462565523444265089572065543337677656354338508857276426635324544866352575510943508757226523467524456963549833508657124332744444225085573746356434732652445553242452685444263335084571745343537275443442508357156427335767562335082571543374563853765550815712644352656254508057864446832507957364635423434436243443523245352432683425078579433377652507757114323354683250765796636822335075564634450745656233250735624650725634245071566782324507056565225506956665232450685644464506756582324506656464285065565634255064567624444450635636555062564743550615646457506056464665059564822550585648342505756354250565634535055565462445054564664350535646344505256576573505156683266550505645457504956665564250485678325285504756464575046563732504556273504456665574250435658327550425636275041566656654504056962227742350395678335553503856583275503756352750365646573503556453535034563537503356462475032563647503156542326503056587442502956553538502856487225027562785026569846544466502556565356502456563354502356443425022563523502156354250205656526650195637245018563723501756266501656264501556268501456358350135626450125646362501156256501056254500956253500856254500756353250065656526650055645543500456663446250035646534500256376650015623450005646334499956373649985656346249975654247649965646554499556385649945636334993563725499256372349915636424990562854989562894988565752764987565752764986563565498556354549845633644983564353349825625549815635734980563743497955686233549785546544497755646343649765546544497555633536249745546544497355462734972554654449715534544970554654449695545455496855465444967553755496655465444965551849645546544496355356349625546544496155573742496055465444959553875495855465444957559335362564495655465444955559374627336495455465444953555552254952554654449515536554950554654449495525549485546544494755553434494655465444945555244564944556834443494355465444942556885784494155465444940558333424264939554654449385567456544937554654449365587353246449355546544493455176362768526272644249335546544493255473354931554654449305510322326822549295546544492855686233549275543522492655465444925556852763492455465444923554865449225546544492155462464920553773491955465444918554838249175546544491655632425449155557527349145546544491355485254912555736544911553656491055676365749095547253490855474574907553666490655366549055526449045527349035526349025516490154654334249005454427248995445543489854552533489754642376448965466453534895545463234894549325635263489354544282489254644766248915445655489054554362488954952532623748885475438475488754555234488654742356544885543456488454554454488354945666426448825456766448815473244524488054947323556348795446334487854742356544877548756545634876544453448755444666487454853254526487354768346534872545562374871549342252455487054104433355356486954364448685474235654486754445344866546535554486554953325456348645464534344863547423565448625444534486154642337448605463334744859545453374858549323356556485754554656485654565334485554965656335448545483338453648535485457267448525483335334448515455335448505475327254484954653377648485475376343484754455664846533737484553265484453353748435346634484253654323348415326448405356524348395346344483853332648375324948365395425432344835533435483453464444833534622448325345424483153466434830534434248295357573448285345424482753454244826534733348255346652482453433434823536323733482253543533482153334848205374323422481953533535481853355548175334464816533143426537424435262342743253855754815531676555365552382244814531653435223423252634813531166333524225481253164424243436232233481153965867625248105318543442323474282323480953376448085344272480753255425464343625234427485322480653444334805534635448045336754803533657480253663423348015353353248005354264247995336354798533743479753444344796534323947955353263247945354243547935354253447925335324791533663479053363247895335444788535433224787534524347865353362247855333364784525665534783521043344743454782521062643355534781529623454423478052763456354779529546562443477852963454333247775278256462477652563552477552764234624774525646224773529467537332477252792235524771527622685247705288223325247695266524574768526622562476752853224762476652692446247655276325462476452853535334476352964235323347625266465434761527652333547605258335547595275453555475852853432448475752563469475652194334232527363666856475552734863364754526643574475352864464536475252554272475152126425454622764750526624235474952663445347485263433534747525632254746523854474552346547445244643474352442224742524534247415227647405227647395227647385235224737522554736521647355176452554473451983743555347335176526242473251962433244247315167364434730515846344729515533444728516532227472751135245342525324472651114433334426347255184433343547245176555323472351484764722515744774721518645432344720517753428347195186377432547185183363324347175197534332324716517655623347155174342867471451652445547135184653724347125176665346471151782334534710516824327470951483354708515325554707516633635470651584533470551866233345470451944554326647035194563254454702515633554701516444434470051963435645246995168734424698519642333664469751563563469651464634695514845346945158627346935138294692516625255469151963354452546905155427246895178244365468851565323468751453464686515542254685512834684514323446835145334468251353746815135534680513564467951249467851249467751249467651249467550134427455336343467450945335454346735066654334672507633566346715074426436467050566553466950126454334462354668501342434326368544667501343542323353224666501542262644323256346655064646234664505633574663507444663246625064436234661505437564660509422562543465950865333542465850875433723465750104423462453465650106627344234465550444544654506442425465350643235446525012455536324233465150654432546505066335244649509433235545464850844433242464750846362952464650146324444252575446455010432322256746445094353234664643504366446425075463354464150864442764464050543366463950106342763626463850543355463750114322475477646365012423377356364463550943235355246345094464542524633507433544446325011433844452524631503671463049106345683442462949196427525342735226245462849164335523822456472462749188254427877226555844626492744424725264636274465462247446254921444264362865853273542462449324442468443425445436334324257554246234940826323736538736634432342434462332342554246224910654663748446214930834276674343343447637336778273462049744554244619492882587554625753445524262444274618491865237646274452554246174912445344543543461649962674275246154917445366455544375524614492362574245462635337625542461349164442466433625542461248545554865543635644367544472672536326267424644555635364444611481455435364465442461048285433246224627665432666565433460948285334463366478453645846625532460848405545566242524534447627265645442666626552460748195634456232344746243460648126443332324434605481253452275556346044814532344344256254603481875783645433348554546024875544856460148195475756224638282433460048275554375244564333633363336334599482855632636344456362943433672824598483153625282832435722446266585373854597481455444254346834459648958646542345954820445526623446396522524594483756343243423342442343262328637776728254593482554744434343453363424748524592488647776574591485665734590488554468444589482155434654455552579910954588481954433474546752449854587481955446844726884274424586484544645854815756454434242425458448554253458347307622546637555424543425442755424582476756692458147137636566343664458047127534575536534579471534434352442555245784711763674655424577472176445253423266442555245764787594943945754712745532978943457447117442236253245734710756644265345724778668634457147157455327432555534570471635337534232736524569477743267445684777564555456747107752626253456647123444535345444565472735524634636254644545444455545644714774599574332354563471566334733462636345624766635664561472477634355434555542533452545604744745355242342672244432683326452326333254734534559471377432333243344558471434386452332425455747223467437756752448655442455647113428355443345554716795435255337526445544787544255345534767435564552471075646255424551474355745504735574549473873344256455446443375334433465933645554454847187544442465536655334547471855743424343336865645464787344255545454627853434424362624353635254335454446186436635355345355444543462243233364235633683442444542461844256422452544432345414615442662342644652454046206444344335432455352545394618653434655467424453453846176535444246432655545374610656652526445364632825234456523273735443674363624644535461485447332744324453446184443282226435765444533461364552527435434532461282325356276545314625434543436343432533844233545304627644445284354563966276535544452946962378535445284617654642523232552554527462876332524323448442633428427354526461865453552727524455545254645824433522555435435454262336443334665464356776452446965344655545234613623533824455245224616855555544455444345214619433826234624325555445204624854242944373244264323262451946244433334234233242435243224518462566364523363424422637226624517461443353455356544451646968653553445154618662373326224324333451446296423252332568233252545432526245134615663564453636852451246666426545114612451045866368283450945882538254450845168234626666444654450745146233573545365445064511825234525344505452293333326242443272432344504451264595453455445034513652352478655445024511642633554634501451464255634325324450045108456446834449945186254433273362626424498451664275523532565444497452153223243353635466322644964524644325354345434334544426449545136234332656844449445176237648656627753244934576454553449245157353658344235244491451362554375253624490452473547354325455232373525844894513838728766735444884511643264365324487451465345445256552448645167453223552382234448545146642853555334444844511432434556334483451944464326234524434624482451144354646234448145144556237324444444804544433447945126643445464434478452064466535253262443757447745964442335344764568568224475456664265447445124473443746447244575665447144765233244470441064666354624469445553454468444348444674458742644664435424465445442724464446624232446344566332446244764243424461445643744460442644459444624644584426444574436424456448662343234455441062344244234454445675324453448626453824452447663685344514412654852633233445044564275444944873366322444844375244474474432628444644683338444454478253352444444766273544443448653665334442444549444414446455444044345544394455425244384466344554437445644644436446635234443544582623443444662543444334494653435234432449443344342443144844653544443044673664344294466456534428446546352442744744536334426446636344442544544354442444645643644234456222244224410763454233244214486426368244204476623324441944663352444184454324444174486336427344164426744154412441443664434544134386235222544124386446526444114313635323742554344104313656356368324644094311663353362434408438645637654407438535268254406438834363224405431165637442362440443564462440343764645634402439643354426440143682547344004366334424399436644282439843664554343974376439454439643156456466256325544395435684564394435667554393439643553242439243773345574391431062346263624390431143425545276438943964375324243884317746374336752384344387437433376343864310643735364443854386526464343844310744746332243834314532243252223764382439534344334438143475484380436694764437943764547464378431178332325445437743114434243233243764318644247433243234255437543762364544374431274433333632643734313657852423325343724376423754437143128243455374644370431364632652426254369436646244436843864334457436743775474524366436744254436543114423354244543644397624525634363431264835432353343624376476285436143114236246323343604312733766433236435943565568435843176563247743653542543574325633355455533566627553346343564310482336334643554396243354544354439454537542435343765425464352435645434351439634455733435043785335484349431462633564535543434843216634336537334242426254347431166343365352434643882342572434543156322324327263264344431277556564258643434394362362444342431243542463353443414377744342434043945724522643394348434433843206233333457473446253743374311628523447354336431264442743623543354311654434453344334431066566832644333437734443743324388253326343314367232634330438644245464329437445622443284366555634327432674326431243254215644335238222444432442276435462422446473624325244654323422243342555424422434524334322421144354256662432142156434543342468334320422747364345333437534634255736343194221423354232422323423258431842164223443432862333431742274428237376558255433264265664316422042332664384423223443431542863332434431442154435445265653644313429425264354431242148323435533544543114267256364310421167454667586430942106252485576430842177445553433665326343074294232627554306427424536243054215443532243565432430442685265343034214433243233527434302421042564452634301421644353342523683534300421365355523254434299421744634244452565433429842124439427865574297421262572552644342964222644374464443443344356242954229444244234536263446228655544434294422465234362365286563435368342934222443835454542422523553242924222426223446343342236343242914296534246444290422244362652344746563625364289421146353856444428842184443643552623242664287423465544653274735445554244343743436454286423043235266535443332445545523236342854238424542454462833373562557253465423252334284421343335435468624283421966335336673662336844282421545543444353237342814216432336435256426242804219433232952424453643342794222625524332535535255546542784212553354464266427742196624235239446952684427642106535238222427542106644254444427442134273421242724112433334424243427141194323343443353636266427041174422332252432326242694113443434644736442684132442953557642233445633236443234644267411145433542742426641124232532552434265412842325563745333424372524363344264411165336436532426341184323554324453664544262413044265353362626535522565446656342614117443533242532232424260411344254234326524259419454536552425841264633426734422352445526265242574122432336564245556455335342564112623762633683425541196442543753562667553425441116623563726442534111422363553634252411743455444425463653425141138244544333443425041444244249411652446524463662834248411964467636385582445524247411682673764266445544246411467534534354543424541106544955557424441116536646255442434125654642523232553536323653642424111822383346634241419827655445424041206354242546373554274342394118653353324446555276423841126537855362334237418635345444236415565564235411465356575358844423441196234666625475425457423341256763432544244333264452934423241236263465432543635363256242314195353573634230411966535766554225526364229411665542456344363524228411584452744455254442274114823627525357524226419533386552422541862736525422441168494943543453342422341176454553363463426642224176236565422141764555444220414662542194112421840178545232443543762342174012623364545544421640158252345253585644215402565244352634445525533752644214406644356421340126546624585444212409654773344421140328545343344434425334422545244246442104014667254354243254209408944464564208401164444526434420740178434432432234543242064076423332420540665226242044066872724203409645264755420240106344275323420140125224543454424200403066448325255725724624224224254241994020834253275343255424324198401482355266233242419740218246444726556475533444196407645554441954012642332324444419440206254453334257375334441934013647628523564441924011625444325624191401372563865676534190401262544532468441894023662356722336225544427524188401286344572432541874047553418640867375454418540105346478423418440117446625655341834016423843653585624541824013624344545525441814012633242423853418040195253543433385755273417940136352664454565417840106353452545417740127442434534284176402255283435362362423474324175401566364322322555741744010538636223341734023444656643423253353434324172401263263466343241714096456323444170402342353362343635554433585416940107444235254416840234532344455443435544427541674030542243454244243332532243832454416640163223443424232653416540763543334164401464443526543333416340117335433234441624027643633235253524326352655332416140394422424254355234552342853434247645224344160401364425225433444159401865242254243354455441584019423833683555655255441574074466653415640646746441554013643346685645341544030324233374652634325525553375264415340156624245242565454152406643654415140154434282673626374150401364425324332454149401566355334434262341484016635524234254527441474088335264641464014423534623555424145401565366243544334441444013424337868654541434015773526524446552414240126524535723744141401666338862336434744140402764457555543244559274464356541394010554553343541384021434742777773245283354413740136265355344252413640146423325264555441354066642654134401241333917823545544465325844132391683443525574543564131392068454634756334534554413039994446456341293934836434353549445543536347463344355441283996343423254127391562355488464445641263922642443324323523822452441253917636666973556424534124396823542412339148274653425444441223978447452412139118254556686241203994323332444119391162355285545411839149442456435537441173910824835552341163912825322263342411539972454224241143915833343242352342411339166254662324254247411239136226623227437411139216623564424426263655224110391564532254354426441093915723525752565257410839116524435255241073922626442233643346325272441063911825234525344105392576224234736322735552255234104391773522534385468452410339188234253476254644344102391164268325732410139146346254254326241003926745322433655534562325536544099391855335352365355646340983984444545240973910644373632240963936954442562256236223462432527246683264409539126254432234334094391532234434268444440933912654557544445409239884343623409139872524635409039158442442644333434089397743734240883945533408739196262354724458534443408639755323554085391175322632554408439126524666625474083391062326652534082391364258473635444081393432234434224433433764245543557564344080392044254326743233374434407939317553225525542664242526536244223407839207442437524535233455340773910522456442440763913742645555757540753912446343772776407439176425244335352352340733919672337376558224242740723964254424071399434342432407039583435406939952544243240683922445844544463265455542240673924745462665522345646554423406639345523554252463432443233443245332724406539316443643764324353334635643434362406439366423325244445233247426567235543253254063392366234442654536563545683406239166642642436442442406139334422424273222544244383626426665334060391052545564634059396664265405838433474057385833224056381092333246224055387644434640543844553405338484534052384686340513847533405038482434049386633723404838653354340473854445340463810326326333340453815723274434242523404438682465340433846484404238962542355440413893244383324040388443433424039389726632232403838363440373844322403638766636824035381166433234342403438653533240333867442584032381072535323264031381152454333245403038116437435242540293810544352453340283845424402738454834026384647440253853373340243874222632402338564623402238455664021387556454640203857353440193863473334018388723536754017385783554016385546834015388864667654014381443535634325443401338107553446426401238654535440113811547433424554010386345523400938744425634008384726640073845429400638843454526400538156334245242324234004389424537644400338686443540023811753332525344001386686432400038743536663999389747575474399838137742529865542399738165255455235636653399638316343443442552442554355355256352399538934552332639943832553375453225865533355725353554333993381562584543463233239923823643643555335353254453523991387762534339903866467463989385422663988387865365339873811435255562343986388633433463985381042325435433984387435332239833877566345398238872643354398138672552339803810728636833239793876634552397838154632422222525453977381063326524523976381244326375245639753884432546439743810443844452639733810434632526239723865325523971384527139703748236396937383539683765352353967373645396637433443965376844734396437289396337364739623743344396137483533960373934395937587644395837464263957374844439563767245223955373753395437384439533737443952376542333395137563223395037474423949373635394837484433947374534539463710745444544639453756427539443744532394337264394237463323941374636539403747543393937575243393837663585239373756465839363743386393537662343839343755244739333744377393237663342439313758233539303744357392937482453928375753323927374834339263736473925374656539243737523923374825339223746562392137483433920374862339193748443391837452343917374724639163748443391537375639143757634439133758464639123755353239113748353391037486253909374844339083746434390737472663906373869390537386939043748268390337565279390237564344390137104554735447390037582467389937486233898373844389737373438963747246389537344738943756633238933778443642389237472283891374645438903728824326424323345536233323533438893734573888375822223887376633434388637588427388537762662553884374635538833746273388237354738813747454388037462323879376634634387837363638773734343876374624438753748343387437564345387337664553238723754433238713748523387037376238693748623386837484433867375823343866374724638653747256386437565257386337585364386237484433861375853353860374646438593757452438583746633385737456543856375646223855377425532238543766474653853374844538523766324443851374847338503766424343849374863438483756533238473767336633846373634384537682434538443756325338433756424538423746423384137774654443840374834438393774233443383837583355383737353538363743566383537764233423834373835383337542454383237383338313736423830373635382937453353828374844338273766423533826374666438253758453238243765566473823371084332333543822374944338213757625538203745339381937673435338183710544252533338173756622538163766274453815375833553814374852238133747232381237374638113776437432381037765385563809377624453338083765335263807377624542538063746532380537278380437784654443803376433326380237483443801374625438003737423799371243273522433837983774466323379737444453796379422765362379537545225379437675664337933777363682379237355237913724937903724937893723837883686532544637873610522424434437863614663354235683453785361163444652334378436104333336462378336114364234443437823611442442637243781369635243553378036763335823779367654432737783666465443777366656538377636126336643353443775368835433253774361245332225356337733676452553377236106348373843377136964686364337703611653656773453769365643563768365644433767368664544343766365643733765361443337622332543376436484583763365422443762366524543376136767342823760367632555237593611642353434263758361065424543423757361384632362525253756361064372245243755367653358337543686365436237533676425337375236244423425442255555345363343751361164534423263375036116553632533437493663363433748369623343633374736662423637463687526533437453615632364535423552374436768335663743368665336463742369624634534374136136246354347345374036864653427373936106246642446373836106434786534373736665432337363611625462562433735361282534262634237343686245434237333613633623242436337323678263233373136864323543373036475433729365443333728361563473323642442537273686554422337263676346226372536118632343742437243696342534653723361244388623363537223656635337213667534453720361563423264353342537193611653656855623718368852654353717361444273375256433371636124465664542443715368626228553714361262393533632637133610637336725337123686236352337113676364245371036366537093636433708363833370736267370636123705352556343534433644253325354533704353055335238232643334365255337526437033526644336443373363535543545283702351953524545424645373573701351955334232725452684423700353353458322343357282332525454325576236993524535843434358434533525542369835106443683442369735254283666423526443435464473369635184244624437542433563695351444533452427354369435114542534435636933513447632524583436923521652344845555456275662369135164564243354262465369035844342767368935164255737376744552368835174442752444465875336873522377543363765273624422336863574345542368535136878565253363368435124433323655733683354433236823516622533424427375336813546343368035453733679354765336783534644555436764554442333342535334353336773555433336763564446323675351165254374542367435184353667438253662623673352852624256524444442654526562543672352866427535484944623434544337533671353444332423424342435333424365242242553670352442544437665665544554543236693517645352733365564453668352563442554434254234344432343667351344538656443553666351365274444733723665351565636663243254236643511644442343633663352264233266264342254465423662351966342243433434254423661352443234242524554544846843536603415422543283362454365934104426732253365834944273424636573410442633523336563416443334463433542236553484364343236543476454322365334174323343342333262236523424443334322327272643626542365134144344672553525436503411424563832733649343443332534554533326643352433325565443648341863445455553344542636473413636465252536536463410655684256436453420833533263255243543223644349662576256364334235723535436543234565737336423413625445435432236413487337643636403414626337334242633639343465235255527664376625542827532858543638341564252352748585336373432644485854533544378233435364425543636341083438235323635347642533736343412625446554373363334126642235265523632341166355424542363134963436362236303417442234524426826223629342265345434562333233347433628342642423325335238235624325552362734214323422423742535252333626341082537355343625341944353224286866734463624341756545546534645456362334863535373362234164324433557853577362134204344274324542536243336203427662525652245246454343425454361934196525452665757624226361834276424524333443424353263735583617341246335752464236163413625634424355436153429433432262454253432662536323443614341667627625232244353613341643344253633525543612341666435423244455543611341143243576246361034104453586555360934324423433243523823534254843266255436083418663443624344352324360734176636253523822243536063315554498345991094536053318553376467257683753360433145433643363573436033395464555423602331754345345446625542360133854762544360033877865346359933127645526526433598338534524463597337534834235963315546353435426255359533126443332452433594336665557359333195348223772936269423359233225544535243825585672542359133125567372498563590331455347624564552358933146644554253584235883330532334246742363753753737362542358733115333435245235863370543342442662344523337744442858442625475434258385475344634334235462554235853325532344542355352342332623235843335554462245463643632434434363424544243583336255443445743725525283225825425542563566545553544435436466263542358233235577832533623282853554235813312554435531083335803385442338435793365654363578338665735423577338543446363576331359453727854423575333646357433854465542357333175334475444623343235723313554434537466535713322644343245243243432533235703348643444438523834238443345235555424254444446444443356933245523643352634246433535333568333055534395499699910109999999999982356733145534274426242635663325675354544464565656845362435653320644342456536262445423564331454375555563443356333175433456355643254235623314544834366644433561331655767766442725423560331353234462587573559331657655624726327553558331654446844462655433557331655342542329568453556331865352543254462548235553318763536446452357834355433175445644334444233335533323536245372672542573362763552333554334745625534466534524456446653454355133145355353894844235503324534432353434243424264222354933155362452525266223548331364347523246543547331453363665272543354633265362523462654477342432454335453313536452362694335443365678553543331675676574344352623542332256344526457462544655423541338558452853540331756464355833477253353933296623368362310824424457577629453538332855446524264454852866234342763537332864344585478337476733425244323536336554435353533125633423244253534331455342108334354235333257464535323211623755425323531327642533735303217647734425553543443529321864532272562526233435283211735473542323527321067653654463526321474375242336454352532137823442353343352432965663662935233221624454534464626457554352232126534644865533521328625335343520321365344323423433519321167454457266351832158234464435357443517321464354673354536351632166652463524532643351532166354766443658233351432116432334537235133214645224334525463512321462588534423442351132843252432351032103273443244350932666854335083217533363324425362543507322474433242325352432636834435063218654242524532422662350532882233265350432133503312744424333433443437225556344235023131656366632432452325342442464554235013122442374355435452644635435003119443532252645524522334993116652436425234243334983125463434334265452656254422334973111444254353523496312144424542444246542524334953110652426822334943115626235246683264349331744362563492311564442537654533334913115654467634343443349031216436734645242544263343489313044333344252536545552382233424334883111647424254253487311645232424523353433486311863232523562484633234853125444243352282242442352243234843129643763234245662863322322423633483311763824252633435776348231154452542324355333481311843433354543342655434803114442824253464333479312743224736274224334255256348334783186633434634773186438655234763116455452362373644434753118443547344424635253347431882642335347331962736666534723138533471314664334703113346930106257324325346830862543444346730196342556454322632554346630982375542634653020624653453344253855543464301265443528464434633024663424543323233323232544346230146374234272543334613011643644364243460309642555464345930194323365325354344435345830107425423253345730288235242244524544643626556444345630188353465288753442643455301766428556528664253345430118323428655534533096853345323452301665422323423255443451301466332553375252345030156554375443642633449302263663242427226262525443448302282643642534343552532533447301682643653364836233446301564532254354424434453015623643453354554344430106253536562344330664773734423018654434363246442524344130115533246555234403098263676463439302262544553445255344455443438301662334324334755423437302764644678435722527422326243334363018663682653443525443343530862268223343430166435245325664253343330216453225352536255455533432301464532242976653343130138532287768353343030207453225454576623325334293011734324252533428301465535542555244342730864568253342630664534634253011662665765543424309642386554342330575644342230968657233334213058464434203086425254434193013836455266553234183032665474338576347573435525533752643417302274552534453636843262743416301062623662563415301162544444243341430866342444341330128463332534323412308753235423411302543410301334092998343584663408291784424435324435343340729156466952564453443406296649737340529166234354526445254340429156527365343366333403292262623524653252536232643402291443342255243544340129136446654683264340029126636645424253399295744553398291783346752445288656339729765255323396299755425552339529136425563352663339429696437933932912623496643571033922919825567566822456453233912915645532254646354339029164435436423244446338929148374355542542233882913863643424243333872919837432425326676646533862925624466555454645534253637333852921624544577246264624423338429108432256843338329883635674338229126633242524423381291965284643458464326533380292866547433625525256525546255543379291365352984546663378291686625773472343553377297652767633762917652535564632455443375297644345433742912653624633363337329238246355343326434334542433722916824635743435442333712915655263353577544337029685362333692923823245552344336626676653368291482323527645325336729188362462477652665263366291266233353432433652927623357455454732662546432644336429206453225246526523443333632913443652556455633622917433243233623527433361298654254243360291943234266442533752523359291344332525443443358291366363352333633357292764277543743624326524764326433562913642334646532833552968387683354291663764533344434643353291165373772777335229187432727237666555543351296975547335029318423545433632334455434244544253334929782886563348292164376363322322563477633472912654497468656334629108244255543334529126633433444323344291062372765323343291187554752544334229106234626254334129133340281965524343223323442333339281682533344523442533338281585533243644243333372819442236324324356434233362818652375543733433732333528147853524625665333342826842634542245524354456655553333281792334327322335626333228168363543334455554333128214233542333266653524343330282886243453332262424242444336433329282683242526334443562533654445332828297324242423254756226275443235233272817652433426755532263326288645635743325281366428377533533324282164364643327335654326233232819645643327335554326233222815655376252233243332128763632443320281463645633264244331928118242454432433182878235755331728685457433162813654265383675433152818655246538655455253331428864563574331328178273226646353446433122815645343376653263331128206635533654542435433333102817834535242747442633309282562644243254444344525354263308281394342444524233307281585254747363655433062812674677535555330528156423342432455443304288622426753303286755354330228238542424234443337645282333012813642554243255233002826633665532443644423445524543299281882555555447643562532982820754242524532446255333297281863565443253355656532962813823354352653332952816755455666232645432942810922744632932932896274535483292281085335428673291281262545445262732902829825443344425535225432342542543289281884235524342633434432882817762453533325574543287281587357653645544332862814624364365342543285289625444323328428256454553327552545332544234328328207233344243533544443332822820824334226286265424543281282765524244544436534542354543432802815442353534745433327928298243264324343453356235545243332782811657232732743277282685243235434434236532473476327628154323533244342443275282743664342562367524552343433432742811646233345443273281085242355443272281982235727524234742343271283382424352542342644362542343254242432702816443423767445572532692898543353233268281366232425443233267283843337323344454243524842452375445243374326628108455466434326528176264243264353233732642816623373335253274632632810623322545532622817825535242542542453261281862345262362323355532602813658652543552732592822827453535342643462423732582812652486545235325728128747528533253256281982336774456454523523255289645643244325428466433253281332522711635339563533251271582343235555364332502717824253235463242443249271364235252647333248271155323433732324727186343324443623356643246271864343235238224524432452715645322573755343324427862353554324327136454363663533324227116374343224432412716627552652436553432402714637423427255333239271164364436423323827764334353237278663554323236274854432352712732447333632323427104423662523323327863632533323227106264533333323127984333423232302776425337322927963323354332282798533752523227271276332327335332262797475345543225271444224222262552322427146463435682242232232719642752424662635254332222720634542453346436452633221271662542455755436433220272162624245734534664553332192727632242456233243527362356833321827126334555353523217276834457321627782763583215271574462326523443332142711634263246653213278657653253212275565573211271164432253564321027966735533532092776234646320827147444525625757532072710635263472432062713634243633426532052713654846378232332042713762446255436432032728823626443246243336253544553332022712632444324425320127146452572444534432002712625242645353319927384333335453342573323346344442324362344331982716444452423243425331972711662366454233196271363449333259543195271667425334534736343194278842655543193271365454674536243192271264646435343531912713634532426542431902756635331892786643462331882794434354243187271164543255364318627782325533185278652233243184271463525682544363318327176236257734432566631822711434322665433181271444325232344434318027946727255731792712823263222455317827248526755435435454262452553177272062366727654244533433317627963664257431752719653323227545542456431742715852435435547554317327118533554610363172278433556643171271964545534323325442353170271144433432323316927208342332424353354444431682776643342316727148246535224245431662716653552446443543231652774432654316427108262363355316327106373476252316227962736666531612738533160276456432315926197525565232854686553315826562265315726763224233156263768315526467553154265442343153266842362315226466233151263826315026443443149264663531482676343343314726682535531462638653145269825344233314426485243143265833533142264825331412646334314026763342633139266652442313826565252313726447263136262893135264632731342656234731332676643262313226584264313126662525531302658336331292697355233343128264733431272634453126265825433125264652331242648264312326566333312226866334322312126104343353466312026563433311926982326245531182698343533333117265823453116265775463115269652537563311426388531132668263553112261182334232463311126374631102644433310926653433231082648653310726566333310626866334322310526683445731042637523103264825331022636573101265635423100265726333099269826324235309826115342724332630972648276309626118233423246330952637463094264443330932675335332309226483343091265663333090261066334322663089263677308826743474633087269533433433308626118232435333230852658234530842666352653083264836330822637463081265656273080264454530792635423078265552273077261182334232463307626374630752644433307426753453323073263844307226566333307126106633432296307026373330692657333230682698232255453067266434543306626255306526356530642656354630632637463062264655430612646557306026563336305926118233423246330582637463057264443330562675335332305526383430542656633330532686633432230522647362305126675233830502698233546453049265542233048269926324235304726544332304626485333045267623336230442666534333043265862553042263746304126118233423246330402637463039264443330382675335332303726483343036265663333035268663343223034267825332330332634433032264623330312648353303026483623029266443325302826474353027263655302626482473025267728243230242666423343023263765302226375630212664443233020266433423301926463533018266723345301726563427301626672342530152669742223014268536242453013264526530122645344301126466253010264535430092668232353008263874300726564273300626664652530052645282300426552823300326663464530022666255323001264735430002656633329992686633432229982637622997265633472996263727299526136632465542437299426663323329932687345375429922626829912647394299026345529892645429298826365429872637352986264665229852656725529842686463243729832611833274342432982267743332529812621694276665554733323253298026364229792648345297826366529772686242444529762698435466662975267542543329742668335332973261283325336563429722678252645297126574254297026553664296926444352968267672554529672686555262429662674532453296526685243429642664524452963267823223329622654444329612689274453329602696426376232959267654462329582657634329572657343329562696426368232955265823532954268734235442953261182643245345295226672436329512678244455295026104424554433294926573442294826782435552947267743763329462666253342945268535553452944266624323294326453532942268853243432941265663332940268663343222939261143224625344293826882525853293726116353462326329362611637436254322935266663444293426466432933261329322512544536433422293125566446293025964465365529292513577438723246629282510735524553629272595464456262926259543445433292525165544574465444323292425853573625292325225334353534345633442526292225115334636263629212546644292025115362443446629192556456629182512558644535565291725135424243475343291625115554456234529152513566356356633429142517525653524326368342913251355524544244352912251453342323324622291125565373291025145336453622432729092512534545452343290825156556443443373432907257552783329062575422643290525953544756429042510566536442529032513536275334644329022511564565533432901255545622900251654552553342333232899251553228322626624228982595445444252897251753264364552462632289625115434443724428952516552526645354634428942576547254289325853364655289225135587358855334289125968755535528902595543664542889251154525436365288825865553463288725156752545464345542886251165448243355288525106636422264288425115774523525328832575542552288225125625524436342881259583446455288025768476442879257556355528782596473252362877251064785428432876251954562834328544652542875252053474456726674382463287425155544434348363632873252144654376462424235326528722516642255655432636428712510643336624328702513643473453234228692585565555228682595546454542867259653544253286625857337752286525175257524432423324528642595835725342863251764362844432423442286225165353444725646336286125125533682444522860259644437766285925165453534663332554285825225343463433763634624427285725196532452423344368324285625958543734528552422433553746444242682232328542427446246242756547544245556462285324394442437433454846565595283624333546555842852247665634444643246365546256245362652274274264274274274274264262626333633363336332851242344533735736424545526628285024194455344452563105473428492450445634443355654535335464337265454324445626745955422848241165575265552284724865676567284624388263333426284532935453752563521086455432845242366363366352632455367462284424176344264622663735728432410826544643328422418826656255643438334284124168252654426272363284024764543332839241164435564344283824159533324452685472837241164342456463283624314323424244434255342543425324235283524107553227544283424388443442264225324426255245455244254422328332476446834283224216345753225668222442232831243332234244235323433355442342353326228302422645554444424333655575628292414444245427524472828241986354666654323356242827241476424445424342282624484335574542544333352345453526642434575275464368342825241376524525645642824244844732436366375426376354432644528743666424635525828232417445424556276294772822247865835436625257536536255262643827422627327327275272742628365363674323653667258328212415634423436772582282024176352453446356245328192422463534276333343734452328182419653345378363562554228172416445363657878898828162411642427454652815249653777543281424134447625888552281324264453442538744210964526454432812243544542444432432654357844754375625542281124944436543528102420625457624435527425522809247445634528082496424562452807241445364523424725280624164433483233287862280524154435225762654352804241482436852356454280324124336479827242802242844244455252443332233624465522801249444365435280024982325432827992411833564426452798249823244428279724178335645663533375627962411444373325532795241982645363468565228562794241883344233628525342627932426825765656424324463445427772792249655447884279123783454232790231884233355225234423327892311652233245462788238625547472787239644253523278623875332455278523743525232784238824535632783238645463510278223148347354465243327812356346327802376443464277923854465445277823863554533277723664356427762310642655673327752368267432774231083555352342773231663346362443445442772238623553332771235622252770237852242327692395343642542768237752423427672368526322766236625322276523663685427642324534533553332433233332442276323575572276223564237276123146424434332542227602355423727592386535822227582356423727572386424353227562312763323237353275523884654445275423673235227532310647563544327522376552543275123106258853443275023126323442455332749238735837742748231167252232673274723876276253274623564374274523983333546227442316652367243685744327432310647552326227422376236622274123107632252564274023465282739239673554542273823762345622737238623775332736231463233254324262273523126235446534432734237633727527332310643447425627322356252627312356452627302376442252272923762272352728237532254727272353362527262395533245572725238644535332724231246335772454227232311543439344362722236656454272123482682720237637565627192375469553271823846755462271723196245684575633224562271623783532422715236555262271423885548567271323566433271223553623271123127233443533222710231083354663222709234635527082396465533462707237734545427062325635363453332662965655425427052314544323246245472704236545262270323773353222702238834656232701231585254353533336427002332645527345432355522456453467542472699235536232698231033273233222697232676245265433552453332425554269623175443232463244346426952346546269423156555446236572332693239746453245269223136555436424237269123137243452743627269023106523353554268923567342268823563342268723218446347246656646646522686236442462268523732527542684236642755268323382526822357732626812355692626802377263453267923106357422733267823467262677234662626762356522626752356622526742338422673224464646258656753575565333285275332525337252427267222126557477655422671221064445363242670221144425348254266922944424245226682229863382466327356243255228335422667222964554554238265565665542456544266622184283323336242243272665221844332423266224424326642297344735442663227634436326622217634333452736255332661221057262626432660222745642535332655524652233422326592212653435238222265822154442555362442232657221765243624252342433265622154443526562544332655221644424743224244332654227454365826532218833434448525244266265222844367656265122126428656543552650221643462466334255432649222164355443625273243555626482216443836836254742526472227445544274245627443333424263264622865576246264522844538656264422944334542226432211646253354252642221453343343444371026412223624644742536423643552642640221444546353538425263922114346286444626382243474263722954335436326362217654625866566526252635223544425247543446645545543544623246265263422105534355753263322134423242552542263222208452347354465463644226312227653747674564445437343452376263022156746862396443352629222084634367525234375534262822116535243354326272296425454332626222144252425662265432633526252224538725854237353323345433262422866867562262322206674575252374243735726222214422254245555242621221666984442422548532620222544244633363645646744265522619229643552535261822224476325245752448655442261722126464622462642616224425426152267622242614221766323324345642754261322374244242234336425525767766523822244223261222224323427354426678956552261122942443547526102222424526526346762452233226092217424427524486554422608221065644243342607221466235234224324260622256723763435463253533344253260522965343443326042215647363622442444260322134433334425253260222126224434324632601221343234644424332600227043226455564554433245543325525572462433427243554542242242242745232425422599221164364452343259822124525344252532597222244446235545332453524632596221043652455422595211052386554232594218335344432593218625525432592211362425434363532591211164343543442259021584373258921664632225882112855525326254258721166335453353553643258621116445388656225852196652236622584219645633452258321762434432582219643624532258121116344343263425802120632324232525555244562579211063223654332578217624843525772112624553438243257621665255725752187445353225742111836852465552573211963654872754427426282572211183445223426257121884542728257021238233633322725442236325325692168246292568217822536825672116855244647222262825662110844443342525652112634334726283256421146334464535455825632110643527344725622114646565265454682561211466453342526276256021126933547555272559211265257283242525582168236282557211663354744462754652556211563666657357654825552186545652625542188464535725532158842725522187364432425512176426755255021964432643225492111534622432832548219652436352254721784466362546219652836423254521772734452544218655432552543217724635525422188337332525412186453535625402176523766253921138243454682423253821782325652537218442744332536215636552535211163448325532253421962432475425332176267534253221866236455253121875576454253021206343542353343437458425292112633526342454252821116236443664225272118847265434455337552252621146323638252643225252113643222627662225242113825245644246425232110623483746225222116623623562523554225212176425337252021883563273251921176264364444372553425182110664657553225172110832454245325162111632266753432515218662364662514211365454634255262513211864232526945682552425122113844454423343325112115652353363536324251021665367225092186426464625082115733323443424263250721226346262424323375244262250621663434225052113535246643453225042176252462250321562756250221138362824368223250121135354424663542250021116324284425224992176636653249821865736343249721663352524962110658362376224952176423554249421105457544253249321864535563249221887439572249121965366247324902114624253754534632489218648425422488211474347422625552248721106636625433248621156557533325566652485211163734423262248421764236552483201153565287522248220195323255555446425833248120136522454324646248020126853452567442479201853343766446252354324782020446645436454334462352477209445432445247620175553227256256233424752012536635434245247420845576443247320853346223247220124736452342432471201843334433374345545324702064443622469201543345326657444524682014424543423237452467206434424246620743443222465201355283623323252464209353646843246320114233432335424622017442344423274345462461201443425562365575246020114344343824324592094323364642458201042635363242457201242462323742524562013434367523266524552064344322454203546245320743636282452201243525642634324512064352582450208458552432449207473343624482084734434224472013442633225243424462012432323324454244520284427275434435525234242622353244420164245763245262343244320552433244220204437334424353642232324412044653244020846242523243920945436442524382017478643254323253342437201243334345434424362012444536424435243520157458542655656252434202757423532525554445332345434424332097642442432432209524543523243120642425324302095254433542429201733444345435372524242820157456654952827322427205334542426208524266572425201843442452535632436424242012424446752434242320105736832543242220134344242353323242120145355247373554324202019663443324557252352524192026553475429427675547333232532418208553454652417201633643435452452242416206633324241520544425241420124452446645232413201242342442342524122010625433525724112013686752726742524102056655824092015523357443625433240820632445524072083543636324062014353335255554482405208425527632404206444664240320844656574240220955532276424012019342627362544344533424002011433324233532399205663332398209324324443239720542533239620105323625423239520215423732452637345353562394207445452323932010422542444423922084254442523912053353523902084243653423892025823882035423332432455642745435323375235254422387202243634462423574642772622386206423362238520543444238420642452323832045333238220256238120355223802034262379203424237820235237720542525237620246237520452452374203424237320542423237220533534237120466252370201143332545335236920766733432368205432472367204425323662013444343345542323652054263323642010545342245323632010433256446223622011564733324342361205436642360209366355333235920542454235820183533244544436544322357204444323562086722332423552075444643235420125336352382222353204553623522065953362351204435323502055646223492012234819144342324323256323471910342572566523461993635865522345195473452344194356323431910463368222223421964426532341194464223401993645536842339194344323381944646233719946342376223361954438523351964637432334197333454323331993583863232332196357873233119833744327233019547425232919936224425323281974634254232719854647346232619134453338936545232519254552228646362433362672322232419955423256323231916455382555535654423221984484554223211995433363432320198434264422319191046334422622318198443829852317191042332637442316198344224752315191242427666368223141918433333353632234353231319943262445323121911544545344622311191154336563434231019124635665443232309191135477663524230819295446454385487433254342725445523071934572306198453356252305199533477444230419114545433762523031974546226230219747654282301191045453346252300199434366236229919144546525432637422981914435433354325382297191042333274432296191347742372523532295191247562442433222941910463727423222931914454742252523322292191643434342242325322291198453376252290198665353332289191262342353263722881911442583735342287191143425545276228619864375343228519165224543363242332228419963443434322831993444443372282196456374228119113327773236622801984665433322791910452324354622781912434334432532227719114433425552422761918554346435452444464227519844456444227419104433253527227319145443325246336722721954527622711915544355373323343227019114233634243422691994524343432268198432374342267191144355575526226619105552624625226519934444334522641964533742263196445426226219845746242226119115452557243422601913444543433242322591914423325333233432258191445243565424323225719134322424455352225619842652245225519134422356552734225419144263345635332322531954434222521955434322511915225018244364354634433435434533422249181845433542354365532222481864452462247181047434865522246189455753463224518144733437564555522441811464636625252243185696222242181448463642562555224118114826424264522401854854622391811485243245562238181533344433343243322371884283627322361819444534433637343363522351812465448333423223418203654234243526652722522331813466246236333322321834422231186443534223018154523423345543332229183442222818134522664354324222718134563332543233222618254442442372244544324554333222518245222418104322752243222318943552722822221835444225342533246865235564434472674642221189454345726222018105672665464221918174524364625526757322181812445226654433221718244463236424545825574343372216181344242735325232215189436232333221418164433344453554337221318104426343723221218843623333221118154433557357243372210181243243326373322091810424354326322081884232234422071864362332206181144352352423220518124427524662452204189473633233220318204525552737354463525322021812435253645354220118114525564644422001813442744342543321991885765385421981819542524326345372626421971830436353534636246353442445353343219618184635742775567638432195181946627362349552625332194181443474322563254219318105453845584219218135563836556544219118134743363368372219018264833334266933244235364684321891828434355266353552633627336846421881816534352337373333621871811445385546442186181344533389664752185182363234465555426627466335218418944532437521831811633432732332182182044425256353442344555218118842634542218018154556265542452342179181954333325332432344252178188444334242177181644242242455635232176181264453344563321751812434232354344217418134443436364324217318114764343537421721814466495257554352171182865637346742457325245752434352170181244234238655221691828656364646837344863633633424321681830444455246233664445334667455245216718156423374234244242166182344243324232524683253442216518848444526216418174325352334335442321631873343453216218334445354344343626432574764564756572161183255653553344655655824326324327565216018134363527275624215918384353734754467336575344533245552443597521581822446545552764664637436721571834542334363432442334236364463525435421561819552355243453543631032155181844353433655444265521541819434344242682465263621531811375544554332152189453472572215118744526362150181645234442446536322149181046257552422148186455274214718114447345325321461811464622634452145181643627244473322322144186444555214318343621421815443286585425454214118114243643443521401721654232335242334424353213917225335353643673523652452213817557576213717874332457213617184755434255526222522135179673353666213417965373367621331714534633456744252132179533852725213117166525456823542433213017196425352452735543454212917145747473345642221281723538433243454234683442442127171454846534675563212617275634464546373742633343634332125171155633645532212417145462567565232221231715544452355262533212217265433235255543543624242324221211712595424543642212017116675442324221191710652343242621181714535443226325542117171954533552634523556322116179543423243211517135522322465644211417145352633325252821131711542345634222112171253434644736421111713538438542262521101795362644332109171456422534734623210817126535232525532107171463542555335563210617116633524622321051713535624475295321041712552322646373210317954543362521021713574456464285321011711544623432332100171556366665437424320991717653438728642833542098172252535225375255544362522097171553522554244342720961718574643544352252444209517145333427525344420941795445523522093171953753587275555546272092171064643443432091171553577335334436320901713443535364684320891725563637628754364653643224320881721637433656467332374253208717186623355727337334232086171863342575644743655520851713634436342555220841715556337354682344208317145573632263234420821716547372547242466320811795352659632080172554232237648335426286243422079175525522078179548465346207717958357253420761719643628424234722734320751719573446234446362463620741712657625445644207317215533762454332343658242072176546366207117135523736343322207017105363763254206917115474582574820681718654253442436234433206717763343322066171346435423452332065171663352765232232332064171165338854356206317176352664434253636320621722633524365536335343456320611785453356320601713543526635476320591712556335435432205817136555263436343205717126433632464542056179547485582205517106436483623205417125834662623442053171256372362444520521725544373243362654536104363342051179665344242205017116554733553420491712634333426533204817126536435346432047171866642524342425743220461713555544332626320451714685534675442542044172154363343533535235555220431775455354204217136557325425753204117236633763842475636536575620401785746557420391795536762532038171654328658542446322037171158464436243203617236428335368676334453766220351711548569553522034171764464643435557334203317135465526627336203217954333252420311712542637437646203017216623625464663662454452029168626552422028161463322354353435202716128335426247632026162294352234232425768734332025161773547355333753534202416128233573424622023169836244627202216764356652021161182235353372202016194552327332526555322201916156654733245255542018165444442017162262543652543744435733632016162244433333432443374565342015161364424474545352014169636664454201316246536544745542245664444442012161562342325525324320111618455232662523265322201016782624322009161182686634355200816138542436366753200716244444236463248554236325322006161182645625554200516124444624562522004161644445464435464442003161385455553253422002161762624345434534354200116962267536420001610744553523319991686725664419981618652559448434232532199716156525555734334521996161564233243454446319951619444442535763345476319941617643742542345364331993163273427337246432423425476633254563199216206244255453737636344619911616655677256268644219901624855433664653525625532244198916136536356442555198816106524355436198716197455642435754576534198616116234436553419851614823554225322441984167878244619831666645531982162565553455745634662345333351981162533658873745395742344623351980161864532243626226534319791615658853446274265197816194323424225436336834197716296433643252432555323334246544419761627626235625334344363334264443197516106254427363197416158346824342243271973162162466972654723466233519721622647433742355553523353519711620444243342354332572551970162474432254365462443367223219691613645356252533519681615644322454368653196716178554333252365723319661616644322535253624519651614645437435364631964161744455377344233635196316176553232632574623719621623834825344336442532654531961161266365453762519601619623362423362323252619591694354275341958167624663719571612643657356237195616664773719551610654434433219541612654432434233195316115455536822319521612754324556244195116762752461950161482394252382244194916176334862553243234419481684543436219471677236262194616166232662534427555194516127653255547681944161562425375453426319431657445519421618652465462852324266194116105224263454194016116545563743519391618625443443424427357193816146233324243534219371628853375267432543257846253225419361632663533525343242536333242524326541935161082523452571934162266544535253433428623621933161264356546587519321615744462437524834193116207353654632654544455419301689454645719291619643442332432566587519281621836552555346456356732192716216232665255372744525321926161552333475537357719251697654443341924161310323635244232192316118356762643519221676463535192116106346243256192016663524519191610454262445319181676442344191716462771916161165573425525191516216642835548439443753431914161364432266523331913161564532256766753419121616744322723878523419111613633443336244219101610663345634419091696225587761908161445426336623375190716764634441906168656343581905168442442731904167635568319031618633323625242342684190216963668343319011556533519001568233441899157634434418981586434426518971531063189615682543518951536531894153685189315446551892154936318911556633318901515855543462523542188915767724641888155662321887151465556353636853188615665244318851536671884156556266188315564668188215585534188115546648188015576533187915584322187815346518771559532218761584255766618751536671874155663451873156642553187215582445187115453461870156634523186915487341868159655425346186715146363453755245418661547457186515763535251864154634318631558323418621568345631861156673323186015663363518591558453318581587334243318571578233565185615863542393185515745534251854159543356452185315473261852155662531851156663353185015874233452184915108336226226184815355718471555427218461585343354318451546743184415117252355235218431556343318421548453184115106952367323184015475331839154824318381566337231837156533643183615544453183515115325254532318341598243225231833157824235318321546484183115962542355418301512532524438333182915763232661828158532527541827157443623318261571054410541825156845444182415127243113627567182315115435365332318221587243543618211511532247547761820157446552318191554522818181578756254181715873327446181615963562455318151577333262181415584254181315882534263181215773242641811157724553318101596353538421809158823296221808159635434426180715783532421806158544342631805157645686418041576525534180315645643318021413746432482854318011410644242324518001465655281799146726584179814106636953543179714116244244445317961412635533544553179514147363533565552617941426423232664555343354555663551793149485542656179214137344648435453179114864397244179014945453646217891413653267532343517881418623523243434342434178714266572754525567464332345253417861415444533453525542178514137424745342733178414154572624453722261783149753466534178214257345525534347225362568344178114214333234232737376655621780141253636252663617791446474177814126356444553231777141842458446366266554417761413423253255554417751412755745443254177414156264545444433231773141744644467524486555177214444438232834364373266732862352523387435425337417711434423252654845253244235434333857453617701455433317691414444632568342231768142266233353624325255755531767141644534234225654361766147432545217651454424917641410445333525917631416864555262528655417621417974482375534353331761142987444436623335242334453332534176014334666433626533425433762356684243541759143744732342635367265856436252654335253531758141344435523462441757141155254853443175614264424436877638522625446543317551421443532245653724427464175414196634254244354534263175314164425484426636675175214144428452382224417511416664344537255474317501315634364553253555174913185436632424554525331748131664354245726543441747131366645725435231746138625542441745132143344344253356364246417441319333242225245754547517431325354424344244244273443667617421319585554354575247345317411314324233366662431740133932234436255553252525242372525364332342417391313434625564246417381351742424343525325536554355444225544553262325242624523173713284554233232276346455352323274173613834348655173513116544344665517341319424542342232344455517331316436266367654354417321323534635527422432763243661731137544535417301315322569886233834172913195435677737376743656172813136374642243256172713776344551726131574544234324444417251327644763352735552232228266585172413427444525542445547444443424652464545665536241723134566332442556555352675227652233476264282426822217221311767546822441721132742384362335534534382425644217201319643427342357552955517191396655455421718133532423323344444726342424243274343262171713147565232335324417161357685417151315643353743424244171413153344343234445551713132065335355333752336371017121325642556727655554334534544317111327645322523355444545545258353171013247453226545543723754452431709132664556454444265453526348344170813156254443244564341707122364543264345455327545233170612198525334245552455633170512296455365525533752645325453426317041217823346633534345321703121462346624425627170212763356431701121164355682325170012108332232463169912674354316981214635625334555231697122197557624368485275262216961247662343432544732325234526224333523255332442553541695121454323645434354169412966233363316931296336365251692122062242433333554356324169112665335516901212624434353544168912126665333363661688121184334455523168712973354435516861223834243532354223443344451685121064255525231684122294425553456546464254541683122185343242343263542763216821213622425435344316811212824244344455168012134352564342445167912186623536243444634231678121174464643465167712186533533533425265361676123783324423243543425233425532526363453841675121373346523424431674121682435535432264251673122453455243353424632223342516721233432244254442353245325444428244384167112118445342325516701266425351669121263352542535516681212424432345445166712564575166612157455432432737541665121665353433344343541664123062544633345532433242443255325416631228975543352324244365274326232416621224442343644342327425534523166112264334365555537342525537565416601217843535324363345231659121772445455335255354165812146553738562767416571267443651656121063433326231655121783454343523363754165412962364644416531275655365165212178343427443455254516511284435536316501214445533445726541649121544323323665244316481212834243642353164712298344263444654324523334246252316461222463264663263343644265416451211645433332421644121563533525433324216431214635352553443631642122265534464364436453256441641121177633355344164012877633555163912256642526542643644364533354163812184352433763365332441637122083453425555443563552163612326254455343633335252344274853426216351210664237655216341226625445454323325423326675361633122662735623343353572377374723163212278243753544434535444536355341631121133764232332163012106623534327162912178245353444733352316281219827642424742643645416271232433324323346565454554524436556441626121844263352425565724416251210823358324416241213452523332253416231210823532253316221219823532253252444272316211223442423454242453563254571620121986238535435324332341619122384235433443235754252247161812984554643416171232625444345852752545452623557326441616129823665345161512176345564342345675516141218523854446342333536161312196333533556346553525161212454561611121762336847452627254161012973344543516091213635552526273316081287245434516071212724435222525160612166427364526462443160512146442753334624616041215443524435335552160312784642331602122544326732535352445485263651601121643772427535423231600121662666533433254321599121683423363463544331598126655573159712566433159611166353345635456834159511373815941196373662531593111785643255242552434159211156652463445533231591111076353543331590118664553331589112666362555463535262544526235158811783424351587111484375725256464158611176226243233565536315851112463353333436158411104633738333158311184323554324453664541582112053674326433625434223158111185343323684246535541580111543432332368424615791195443534541578111053553342331577115543531576111653452533643343221575111244425353333515741124536333333243254644365473157311954444552315721197537443271571119754577344157011105533537553156911646746415681110443543452315671118662765553535655534156611204438423545263437363315651116463325694253532315641119553374554544354242515631194432452491562112354333432332334236257233156111364554536362734236237243443632433263231560112166434272422642425642515591111553364233441558111565253756368753315571127434544453876343232463235544155611858223335155511125425576655341554113055456262636334535245445233332515531111433323322231552111342542252324351551112743444253463425532376533464515501113433443433454415491115534553332332472154811544572154711113327665723415461114443535744432751545111344324444445241544119554368557154311183336332544554326341542111544323343557754415411112543454234523154011866276554153911186523253335356555341538111153334552647153711184474634324633443331536112353835242634363243326323153511224463235642427335432425153411284432452949526243232463235544153311173344345423744632715321112442374545534153111144428353564553415301121432332463543752527353152911186433283234225343531528117622574215271116634374433463634215261116723342663355232515251118663533665644524833152411146454334244623215231118634243232463234534152211197725332433632465523152111194435274333446354323152011198237244322325224323151911248242433223253433342333231518111584444342422433515171119854463654545434532415161123824564323432542352633431515112082334432424435732343151411114532764346415131126433333354323555224446453331512111044445452641511111963444362335423425551510111164552736755150911176535332234242333515081112634464722662150711186542624432342424631506111074332426431505111482325356672325150411318333623444462655433343543454343150311106462426233150211236455454555334334244623315011120635105542463243326323150011296523253335472535435434242555414991111434543436221498119443343464149711116447277678314961114642555437865521495117826243214941196524365551493112465358526356243233352662514921111627348442551491112383443435557543654435343149011396254432433422356722432655544433463243341489111665254524536233551488111462434753766432148711166432332344447384148611186424327267434526621485112743235434333234446242544234514841110445358655314831113443373644356414821111453372437541481112282523446363352663364541480113143332556532743444475344432683431479111644229755433524231478111964436352467333865431477118432336431476112543454453432244334564524831475119543344363147411104432425543147310118334435442514721023553353523555534245254221471102466352422453344323243345314701016823443435224323314691098253554331468102782425744444326543422242542214671010835345654214661015924382524543373146510146232664368246214641014625355443424331463101566354554522433314621021338662544553433764445146110866433263146010862345352145910108254555253145810228253324434266554632233145710247354735432553737283473541456101476252533435556145510782434341454102782473244332343553354657574714531011625463875231452102966436363573445264662745543444145110168467467547425437145010585265144910108546246436144810136426555423244144710228345245362652334243533144610783374441445101783424264252424354144410105425433634144310644365414421016743352845645376514411011843345347431440101044325524541439101464697553645252143810228434432253753875344252143710178533575575852337614361016824254334232636314351034633523553228575444575533232532335414341013653666265262414331096254365221432102562243745252523822252644451431101564532257375334214301025632343625432554352382232314291010662535255314281015652346526366263142710456551426101062353246231425104244234332436235235232433625533326342343324314241019626453334273543652314231020643233426536323442621422101063328574421421101585462354256254214201056554214191016626424323682232314181021623654643762652243323141710117433342223101416101364335254555321415101182434253233141410128364525552621413102283483533333432343354221412107642533714111012623653634434141010156234426672543541409102065345553258624362364140810106654454242140710116253545442514061011625344547251405101563444364544235314041012944242252425140310198533552534654562352140210166424327264552662140110228223326643454432526333140010176344244242423364313991029633342342342343444442434272221398101764525442525427222139710106245533434139610116463435444513951027543485434255524438543662622139410166524346435523245139310107723265554139210186542745684665425641391102764255555246554242323764475613901016642555333643666513891011643425633451388104374644632358524555645366543385435426627466341387102664376526646354542445252364138610418263273526443445422564363644355243364264213851022626524442623335432455413841016924383543323444713831017734543244585335331382102963665238242347243757635224327138110148423632443534313801018644244432635524322137910394343424334234245252242242335365253565441378101063552525721377101785447538575352664137610276528343235232335452525547241375101867265254554694544313741014823526444756461373101564275248468655213721066535651371101566226386756525213701014545682433756221369102364645334327637554645342136810286534542435668655552543343564136710296474444323422545352432683444213661026453283433332554542433624541365105664331364915652354233244353136391444954424462453136292162356437232523353452413619166236225233226444136091263653473625413599188367554635442545241358917724274476265655421357922655535852854422354783313569186524473335635354631355952834242432333432636455344253333625342763442727253743213549982645554213539316624275324342422565543554335574135292744335324444323264265810534331351917433243233546832421350918433425234352344433134992245723433324445523577331348920654342324453882565321347916844596288788888813469376524264694254378723447744275338682542134591544564236244474213449278542543226333363223642436341343923835725433423332633543321342924744563527326443783755566134191244554463445613409166437854379654563133991666243755264242631338916445335253376472213379174442542434454577613369224435257636263573377254133592565344675443435443676892791334927444252473443664354255654273133391644555573654242731332916445534424635643713319148524243453463613309186534473447475733571329930643785435265457245234272255357132891962363447263463953641327923625345247546232374235331326926445428326353362525336337331325917444555645543572841324913653467524434313239148267367863566313229116236347263413219188234645475275524541320916636562362444875313199186366554433343433331318925827337544373436236945344313179865345758131692765233432426264427872644478313159258542565553344335362362236131492044444347535267282865131391164437444263131291565452463633625713119963625425413109128276425344251309946433252337625546633426342646235362357365454525613089126447551064542130792465234426342464675244984313069244442475647666762686365991305926665474338551046745433525353130493282676274555575256379797653435526130391644446524643710943130291982926446772676325109130191665554452327352721300913846662543466412999176244282623645429412989166534543236452363129791265252365735612969264434456455585543332327555512959224454256444396368599774129491964336424745664524431293916623452344537252512929116345526245212919106364235457129091763656623744473753128992263363533653755437442531288912644445242462128792274377242546235484336221286914874462343236221285916537325526543544212849159643562353244251283916634344336263266312829179453656768536245212819158264684343266631280914752367565625741279914845787256565721278913855525334234312779237445664672585544755543212769156423344427876561275943445624565544525546454424264252325455524436312749164323545354755663127392943626643626765374426333325542127293185425733343264323848465523525641271936724274934876463553354683344243443632127091964267523776354325431269929456442836566442675578725255421268914833353644654421267915833432345843626126692363623325473534374326876126592363463255378534367543465126492963226536552436364326356356256126392844423242464443353666338455421262912445423332442126191884455452558453644212609236524355544336724455245312599338542554437525642537665610688886322125892082646373572686625542125798434424461256910444356354612559168264344784427755125492485425436244255653366655612539238262544333646556532454412529186253745663645628321251924634558353432634654446252125091144542345635124991163445767467124892064252358336366575473124791865352454752653275312469136465528656753124591082633342621244913652345255445612439166765873334625633124292373423938366365354433843124191862353552444357823312409264442656567534237868387565412399227342535564573472282653123893245554453476333343682442643536425123791484434534745526123699826536425123582243342442445754647732561234818445338256464427756123381345524363365561232845463556533356529373327232735636556464427877552123181344545324536631230825445354334546244262623254212298114442464553512288104454534244122782044564563652434242432122682682544563433665443344244434122582762355524644336665432638354212248982534454212238204435344634255225263412228121054424436263122181266234353555312208336255344232636482526643265433272361219886245555312188148324243555325412178106552345274121681252332256245512158106235543622121481765352779455526524121381844437263336452243312128176434274645552652412118965343643312108136468668555233120981844434353552362694212088366454434223344345337543345253424773331207817463544265546256631206813824275577364712058136554773535542120481964446344562756272831203820644334452965635524621202835454342225423256344547287344667367421201833432357537353635542649864743332547120081064636427531199816463436333554423811988167333633223462552119781882542656334655264511968216435662454210442676552119581364366643536331194821626473727536625346333119381283643344743311928194552625554242332553119181776332335425256544119081683545762627552431189819652535745634452554211888104344348747118781265877462554211868196572656657265284427118581364427445552461184821644553442763537385542118381163663744433118281062554436221181886235566311808126535364655421179824824343454433633336355382117886834434117782144424438634442435447311768206446424333362563455311758127634555355421174865483641173813644364536455311728234247737555425556438334211718227256367345273625534662117081844424323536274344311698116824533748211688783365441167823845743245346332634944531166811635365454281165811782535423531164811446435338251163866746651162817744665544644335841161818642647537467372727116071163862823352115971682337652545542351158786572863411577236454425332342442845452411567762242781155712624672443552115471044356372641153778256452115271262346662536311517106635824256115079853634442114972663527523643236432363323544114871464231077443255211477126429547253631146776634383114577634422711447126346645245641143729826563544542454464555445325421142728645433254352854334323334542211417376254443542434743626824236623354264627114071067262434421139722644455242333243368526411387114432232727411377544235113678623297561135776355354113471465266265536674113373082532285362443624436243642555411327108264373432113179657755543113073075557555334524442545455345374311297137247646664354112875666451127715833852443264462112672663233736253554637662332333112571955327472434353455531124710834236776611237406455366326434362265543643533576336653524112271465888335844528112171945465326362733563431120711645343422441119718653455565255625244111871956435555626445243431117727653646262445376252525544627111671765362457334344554111572085834457364345636333111474366546372524745765664232445375542472437464581113786355343311127326577544556565423326832455443542211117438253445766256544854475573462786872566455665111073067266655832464224534436346323511097418347355342542335322373375327322366484544611087156525536373542341107714455232652527561106715845662442375652110571184452752423110473985263724386952233444447543642853454343411037188263546235424562341102722666563623434244524243511017136523527465756110073664675535644435625443362324344527552510997208367644453375322722610987158235237853734231097741834436344443345344545535344523444233584341096723844354265544463534946471095718442443687663852283109479835346443109371065253224521092724634343343442535363355747109172965355432653733634446485585557109071164675542948108971162362335454108872373372653434333334255534108771364696458677571086712723337322546108572262644364333564533356641084710657247525410837226355295424335233623265108271678524263527585431081721654677536552754453254108071666454463454233431079757433510787868242766107771964547727432332325531076736421075748345107473665107374685610727665244410717116242443243710707114461054554531069711734244234251068758353310677118332532556410667444351065776725545106477655262410637945325325310627685243410617645244510607118232334332310597187335425524343422341058798224352441057716853353655374525210567976533275310557238434443253753856472435310547196236357742253255534105371085343434371052796335625351051796355625351050718653854662556655323104971862348766226436645210487136578553324263104771663334353673324451046713825555452355510457665276710447127345634255541043742834554544643432434442344234344523524244372104272263435262623564274285531041719833544376262555453310407248533765427482324426643631039738642334735263756385642462432324632355441038788533545710377782463581036713744627523443310357116342632466410347138232352765325103371585243535733244510327665276710317168232535426432566103078625538531029723624335324527433854285531028725652534475675626526332552710277354474634324633443424624323246323554410267136537554635368102572592438523432748521043425323102471782325356432444565102372765447452633325527743342352710227744343661021711822455233231020714825452534255531019716544323246323453410187144454755752368610177136677433423527101671162242535366101571182245523323101479442534253101372143454343232463244346310127176464443423534545610117296564472227527345554335334644310107158244425467352631009788323554510087328245652356766556545352432683444210077386524365243435323752335434232454643636210067106453336564100571967533544366666545651004720836425453252562555551003715643532565462656100271484354425785755100171385262455557441000718637254255673647447999710673484425599872883442544353432533452522555559977366439542654343452463345435675242262269967156425555344286569957108454534423994723845622533563653424975529937146436632533376599274062433352455654764547335434452642523232639917376546363454325423585633626656324435343990711642555497569897196235335435554373332988711834825343349877296224363624225634466334327334298672664644735662552252864444322985716832363754236433298471664743268647526359837166535266423676332982722622437842422355655555498173162568536232625377754526437723329807206544233365565556233297977656554397871233555243456397771282673423654497672843472446526358532665743644579757583438974725825255236325624725424574597371782663535324553433972712644644366443971715663373735363272970778536743969748233968756336396771382354522434539667173263263333524342396571682325364684272749647116255436526496371167536556733962798267434569617663345696076875457959712633523552633958710622556842395771462564263425426956713852533423344495571495462145464325227533545554395362973437643243533533243322334442952688344524295169823665522950616823357344643354294961662353437337337329486196536243543243465552947637737247242324327442343433434234286236294663565363626554445334354424534446543262945614772335273644629446865675744943617645554337443564529426175525452355637753394163565254545423374453442685644342536363940642652545343456333432763663527636104263543236293962765376267555434435333426573293868663375429376376343436237325225535253432536362432655936613852433542435393562874673452272742375565332255549346394433333343244342345326324423543534223229336408542423454443534344525428546382372553553932623642468546382372553552569316164333756345345573930631832363533543424647784666747444392962065342436452634475532928622443575334337357573422692762665374654362664664236234536926620635524335587773825359256316237333333433383384633658523336924619842355242644373632292367743362292261853426342527632625492169635335354920610664543322391962865463666663553549555435364429186865348345917636443243234665334456456452845282442564916610653534363391569646527344914628625354446245444442337445243391362965345434655643444342343425364912615637363477542255911624652834453724352244268434910620748398368344443423639096127536565265459086309423234865347235323334433363339076106642443335906611943523242329056186323436244255224339046116637425434490362382535324366765654434545902612722977625546901623635523335543354556433559006226644423752432566685543899613672633262387589862162434634364236363735789762565376432533443444643255538966135533556362433895613825233232442489468647486458936155533633643425528926966374375289161643233732423324448906184333324523332436848896155366345426645368886446454225434366467852555525373344373242736244388761364652765326438866166465264523763343885612665366645474884617644442555244644428836296424354354455743364726337357488264985254343643545566659552823344235333433343244353438816227633267665352643445744880644652424263462265676754442346422323344252424538796168432244622574355878617735435353437667558776166524463524224433876696438108863875688354556887467822655687362184565557553325553652687261444324254437754871611635354763558706226426383652422564636244869625744323343423262434342834586861282335683444386761863433234443333553486661875263523334333553486561573233433353542486469826685735863614442543465357338626246638545243534452445683438616864436663860639835652432255365255287545237345362243252859645653454243536554423243433432334334224666545653858612554432625533857623852634376444263456265448566564533855695532434248546276564343355462632252554236228536106423234642852617826326355664526228516128435234643428506176235555333455536384962264362642435362752567438486314423433355233634243642252362555847614945645428242228466228334333522824226324332845621823334274224325542432844668486458436274445423264432364343543765448426159544525426745458416258257325523326242466745543840617554334233436265258396287476522342342333435434543422838686536575683761562353353376384383661485342424445272835623622643426433263485432628346982365554483362062447535333255525244832614652734634655258316117578842336483061262632452554282961564254465244527282861764353354327242756827622643232625273374435242382661962643423442232343468256106424676564824628825353643347624252452637433382362283244464355365236423448226146458472564634282161364553664336638206275233637634523625466334555328196196436635355343435233818698336632268176167534364332552332816617825454335265352338156116363633635381463276332554853336232434636246364525813610652436353481261263245523632281161264573654256481061484236324435343809613623655763767580863763454324242244422753327633564442543228076766353638066174323345323243345380569654435342804694343424328036248253423424324343684444428026966375232380162562365533273386433326822328006108533625252799613825245644246479869625747463797613622544633444679661643332554765254537956315452779524766567342252632526243794612825256453553793611645344232637926126256445382437916146424444323254279061465552674683435789511432334368337885246533544344675244358433437875116634343556278652943234563374432554534622623332785545643342243422453432323242242634325475344342433784517824525544343563437835228347346643462554454343782515825562256644245781522642453625542362434293278051365545725293537795644333245548523734356435765545455555243887653552545452644544342432778515643333255455443777522854257467353262538524377652683337382385785552766465333775552733345434233425262576329558525425252433563553355554277452064375643732252655542773524634626346452556444236334772521627543655433535352432771596362523527705264454433364346353325262554276951665742466453665227685116352456363276759444364426766527433435238224427386665565643765520644464424354835653337645516245346333343445533264526444332452323564433556255427635244433353652457655244855427625248357526528665235448655337615136663476376747760520643634326752875427447595166587323887545542758545655344477537534553234526266242645775374726472757512624446454535756518832426334325625542755576557656754514844467524453477535168524625425354233752521827446425352463634254751526825764335355554666665555357505156454672443656537495196263543263424556453748510652454272574751766433435543732553746524642556324235634352526322745516662543334224327274452563426343466454542324343627435844510436474252544455563623433323544255337415345283565443354235346732644362425533740519634544542543255443673951966556423454457735537385206235335456532895655273753185333563244245742543876333463227365258542425255643423324423642735524623456346335264254387643734512641074665632373354783255526465464733875756324424574348425366364265732513652456552896473151365245685274547305166534525236534564729527642452574964444442435323622728521663324354354233626322727512623535476364726524642466752655254565625542725511824335664437245136366665566454723538445425433446344278348347544444244255427225156774547356565557215286625237423264244562464736254720523854242444633656866255427195106444243585718533752536462444553444232627743443543717551734375643785227453643374453424374344355476243355647716516826443423344373671552676472433643377724335435636714531826443423253243475566666665245671354182644342354663655354644283810556573443476371251595333262434767471152683426554345344344255535656710568446243623642432554422435433752353626632565254656553643845525275526427095194323543542468324243708514444244435432337075134454254347787706512444472352626705524444442734227355522322552704514655277474555427035134442756232553702534446246233352524276426262552664754470154075233452285645546635536524234432373353327005268253466334255234453552454469959825543425698513844552555424369751682443643532733436965247245437352536256425343546955148533352636555369451385455443423236935176536435452462342569252164274465745566446525369151864463463624644242569051568736334347563268952382432265664325446325433688529432355453434252625243346526326875306563683442543433342763274538656865424323542463683455234436424244243243624255336855186437553727636424246845244534252425625435346526326835256534647338757253357553553682532834254445345344325335625656667546815456423433337524497464447956666534344534467354346805248744464636562322544655426795765576566785104453865543677527634424664266333473653655542676519644424665422647544767556265555744325544237774573536626243323324437443737777376763435542674543826234338435537366835265529829327326555733567353164424644375535453867253733233476725614443463524347355565355663525535348835333523533899924433745654671553644246853737438626625234738547424665437353653455255426705244244235543542375347555426694504335523448236554533375653333225332343332334272642866841575474342828555466741254574255254266642653443235355798544276786554665418548762638833442662664454554523822232426434434656355634436644434644343635252632663424554468223363346425652542662411543344464436614125733543265526604115542442555265941355469554434436584155544533435447646574146444462532472565642555676555866873742833634636554265475565968694243443694528365441455487755634356653414544263455555256524145547443263632365148554444426504345534533223232337533345353444346536649465643676484225363654323662486456754647419564652523545635855664643756463267623256267744463244536255426356454175544663543363555664448558738256434225336274544754362755652642414543433252524526414145544323526543264041155446527442639418548434826357587553638411533352652926374185653627832686255426364165233443533532337635419534635655635463479263443658384437354582756354833433542333337563343354299442534442634633734445326253363241453535578326865631465533936304205733543247252525255262942955235655854332447533476555542628438563343625362563445524329826333566555426274145544764446443262641253344645463262541055452382246244325444523822336345265265554523822462341155444234363622422553436638752635363628362142956334366346636465264362552453620440523433263676372117273327266526254346426296194125334452382246184175745573543344344361741656356643423282436164205344322332344263538361542144243343446752447865661447545346561347537537561242156334324743437874789861148655264446104115635353425260942055235434333252424242608420554542484355242326536074265454456343535252532362423260643354434432257644532636353524546443560541455653523242543604411554443554436034135543462442443602419554227344536624654260142156344524226243427352760041455323242675253599475534247598415583344353556463597422554452242663656625625359642065834626784646547654595462558342557524423233325435457872625528583752455628547834556354345944235435825562426262454525459343155444343355264364243456523442535924105444442436591412563482876210359042755466485433355283543565865258948554456355884335483944643448378943784421054382852587440563342754332445544663653654363744253554258641655245444454665435854605544424855323546435456532335464333323362343545463533335425335844325653578386665568234663422577265658343655343355683839564335728264625653355358242853446383865344273646347536245814225233443432527536559233580417542433327338233245794155323342524555545784225323444323454344234542577422644355533243844342442557643053776543549554544634326525235457541357364332336745744245544354562454434534254475734125573434436325724185545584342534342525714365662554432224236453432364535424356655704485634337464243364654246432455544365346567643353235694205373276774275644275556843154235442355663264658762114427233567421545442544253766554427566419545435245532364236456541754322344235736343564411562475455425634755442535624185549897254452674335614375956046544284559427643442625434435262626625533558419674346252253463624355742355466374956524344534263556416546233545622445555541676352565264357345544155359464442363345534305552752625373826424344354653235524296533565642743532734556746554255142555342254426625354538526425504205375543446752447865654942055342675576444637552548411554322523255474185487672534245235625464105552452432545411523344345555444205552455578666255532354341054245436345424145634244265532354142054535434333252424242540429643455436273654232435535655425394385363645453447565543525836435657625655253849554454845537414652776625553235364495434277745735366262433233244373453436263556625542535414546353426555355344125532553224345334155442474233542425324155344453756552555314185452733563563547665304155587424527657655294325632324274364675662698646104263475284225534264465252542476443527440543425553638728666743356697264335433636652641953233426674698335545254275333424247634773463352432635244125577443525725234135433445456343522424533426634425423757625542521485744424452041354627655542455194144455552537354451845844533634533362832366434456373686654832584587274238842445235174425534273227454356642837368624423454474236295164545534232237363725765433562335662626866728768554587877545154175455333223626326351441156453354374513417556843636663437535124355434546248388565238247734652332554251142455365436534333553337656551042055445446426265654364509414553425764374875084225344257362853455962757507413443454555643350641865446752445643344350548844542443323443252533245355443223525433332354325354333333322535432354324354333333322732345044715534242543445286323443255423355553232332323355437545433244634238235724650341357462644756525024155484755545252555014136436389864634500419653232398334798334649943755457755486533843362667375744536533774984166436748534347753497414555433233347654964286343742266343554623327726343495416543373763667377549442955342827446555535445325445542493311654677655424923306442435355445623654354354363234913217343343244675244345534903764462444893762554524883436345432575244974667526627663254232443423437487314742373534362544863207267346354555275654448531152836354234484321544653424683286465465483311755757683224823943235683448132044462673623626436552480321624542764673576555433479324632336635365352655277726478323643663335552437365555324773126768542333534763286428346842352255663543534255475396534364334743226455248652564442553433473330463568547325273222342424536553472336434663556424254453743352643442384432471317444483447334455534703124444452856524693224446233434444524527553468311642673747444673154325457362442584663176445666735252533546531543646556232738546431183424344258463319623533523626942453546231364352644255534613166425627252726855460333634562328674455295425624426634656459398645753634583204323426322233465257545732544332537677554625432834234563863454352455313644642433454445432162342324273233433243345331887444264236334346245233093424354452737444275433333424445137644523445031463354263244254449337463554562434553525523525253865662554244832144424434524774753455244737564456226622477355354624225523523326252262533522325232682435566264545443254244632563456235236533762673353624453408332543484526425642452523265285335724454444319844576242256355542544336833642442313687365562554244131083564464464403198537745286344523533439321835835344263534534325438324864464334464335544342433437327846443353537373234542324343436312657352325544435313854654445625243436855546433324832554555465376443523362432396427563534313676454343031385337526352324293158344675245425654283236352353436437945652553642731383552859762654263117468544253742535657474243584456423313654666562554242231644542543452382244213126562542352234203968625524541931766432353267343443418315682454635276623417313682464526384241631065464544544153128744655247324143114456584424341332146342455266336453546241232864442652527544445543777375424113316426342464372732424572525625542410323664453765335243466326234093186425564427374425524083984563326340731582672862687565640631463544455363245405335664332487456553755424652442435235544043116227683336240332387843446333576268655334402311644452382244013118444354644340031064244365543993176436673665544544339831444367523286663397314826626875353453963346553444475243356676345425447635448395313653535245554239431764333553554454564393315673665525625542392320635435547324425263223913136234545626322390325823433354625253443437454338931084644533323883118233573743238731182633254353386324642785274232437323743362385315424332635363462384324623344352534535243436552383314726642472735523823114443733255338139623644246380396694452653793188542576262673544433783138262334347343377329624433424285443866873435435423763146554682243543537537826334337433382447365443673826434452542637543337331364236768862633723286446643754432255542766452432371329635437432234322762236277756433703274446373543463623425548446523693973435542336833663543747253553543234426522544652263336738652542643663324454254352243726233424352253336336531765476355345563255364311654774626323633965456263236231363635372632533613138355654658542360314823355347367323593206254532334633234654235831664423875372626323573326466534326454342434343654436632235636944353355315663434332345332354325834455277778736352423234335337823332435231552232424344343235137666245335031183256786554349313623376255755434833173445563273355365555263663424323473683544634639827675344345320645544539343623544343443864375342343319746424653433572333634234564234322626363744657654445355552343424523733634135887663403235224543342444336332432433937835525533832183762543464355424284233732072533444752533455523336388266454233531384375642428433343208645354345543433242333331742444347553424323332320825654255554272443863313156434442222335353303354442442432243234234537553456457354732932467272644647544345463246432831866333554222432554232737445325432631183537353542325311832435374623243144456354684542232332674544754552233243532423233322322432355238225455262252232132764444744523324243438326884232032144425425552455265625431932543233544244244355425454523183156234232533247343173156525257535525533163206344525544356255532331531162337627455314318456526657247745652313326745645536363786553533453533123266443454354552323655537435231131866233265559233234331036811999830931154463544465308324745426564675244435542472307324534566436876652897627253306329755322425455366554425365233323053964437755230431464574675526524303316542644273744255230231374242332454343013156334423362363243003467434343222465294364367663527362548462264364442299313662332437264229831162352344242297318624544345552755332296311875433556432953764233242943132932498537637353423422634525353454346252724626423534442292227654665642334255853293244363291228432354254354275262253523822329023246354346376334565454533655533343289212943354746344634344373773454585542373575434443525626342373367573272538455236269646232622525444334343345444664434243364567433473554228821562342324243364628721464233635354233286217636274443642466232852146425232545554228421962353343536567865522832114423257554428224564255633435323632543545445354553427644336256528121762353343547376765280230424332636562766266652482442657279228625533263436363832634244454327822046357245333776325752277215528354332524263276216743435443633426427521344553555875572742304342736236563663523645252655422732357563444733575435672242752464232425427222746353452355446534627456765427123985425533362454644545565435444565762554227021143536423653269224623533435333362622442765268224445435534522535344427653267239444254652443234245525334643344364342733266267432342432444626363553753552653534423332443423423446534343363534325226524385425344623362644373543354437325442327343232642246425557352878565372655342632244453626763558434254252522622506536536853333424635363245344422523822233352642332426122282953333323423273655422602524244472433325325747623252552433547743465544324335553259298345464432582278332445545543543575455544472572158537744544566542562608254453453224545536653425356254453364452334523343334742375342552306423432285534233542537624325342542434454244565245564235233336345524354533242534253254945453565348626344253335736532523442543434524327325323252216655455627444442225129444274427250228625445333426254345343625532324927655344424826733849247227445526242254343535358466466246215662253475462643245286366773624423546342555364536444425235245353623283243225833854644637536262265254224224744427762244274643646364623382494436262642254543241225463586244543544545766646624026446342746852535437825364365425533364525365425334287527473243657592392336254553445654432243856375273556542382454334274625762543544744463433343757366268556542372306464444452327264353444332233532362468264443734432546434453434453523483623336526656235240445457854346623253856542272432523334576923427444365323321344435345462552322144456437472647223121444553765284463230216846474676435533622922794834245326545373626832262822823975555585345535563423456386373523554386322722644427433626458833352728762226226756344452648624756435275272252164454455442766552224257642556762746434424538252639635247434346672444234342346527223225625453234524333462433365322222242433263649899326226472212304432343335664377755245354562522202496434245542373554454762325533533745355645767445353219220444245735565527665532182206443523244434327273221721764445496232462362216212444277623253215216433375634526554221421174545644253213212654565543234212214632565545523442112176334223456624525321022564474643433434335243742472092864553435208214544463462444252072244262236244425343266477542062124442495432622052267342435376634752544246245320423074266533745326342434333443374420327364427466654323354353542455323526343743543242425423225433454366352636337462022148342773753442720122272427465524475534866652002158335363355442381992644436319822584487338366383523773288381972138324263954427196227654672654244626534455622627195217656552576336757631942655555444734437265835365252652653537534327754454674443345342635643319321765282104354444354419224466523485853435344342433253365433852653634453191232642336323344354475434243325433751902155552533365355421892164442433554243233188213444275345454318721673389864325533531862955742462418523844333535425364586342233776654626535542184251726555547729636864656396498633354879565324476365243183214443627535634331822115363876765518122944463734635362625542762442652180225444243333334344233745653417921564423772524554217821862333254342344455417722263462634646242544263341762116224363866417521743337563455234542174223527235574543634633226541732127366565265421722316443535264255333335643764324253171243645663676642243535253262443543524467576832217029662332436169296236442461682136694455436552167211664546675531662208746562552326726265216522444434434424435252345275216429826542555163210644335573516221284877246524916121362452544243631602118242768554215926632768158217662277677654454631572316655576345533554446542466343433156217635433244663434331552194323425433623786244154278253324153214634745376376751522328333524232754345536533552336554415123463543424376553465424663436486244321502454564275433435336435353642535346535565535743751492216434247632554625252751482156536352442332331472306354342453343424525245866872621462146247474543429214521062444243441442196634942255363252453143231624433424274354438668734354354514221582335732265245614121565363524423323314022762454687544454262532553254213921765353535423264734138298353432321372188362462844323732431362166633776755445454135217663353752536326741342146633344852774313323064543525633356543272454434273313222266984428736474275555531312198442353355533663753130218623563344343234246129212836455456732128215826243265626675127231433242225244375452432254373634312621065243655731252246464266535253436246462541242115224543468412321462268222264446122212444243356764121230446243623637233256244442453343120231735473545536253465333647533746511921762353333434334423118218642752735243235426117217463424353276365671162334323425443764342326324573272632421152186423855332433662621142174332432336832424311321943234243524435232421122256525426454232542836325532111213449766562554211021265234326654310927465262425426222635463528443322623553262584343453326365573435565846336338427108222625644465524343443245410721062624444661062108334354464105212834366583432104218854433544434464322103225634542627233342536534354810229945643463101217642565325436534221002276427265265627655747245567539921165425628454982306423246632435435375434544353349722744933465242342442444362626596226834525525455383264344324549521062664523669422866568642345654774346642664549321362364437666559224963543633574662334342434764875437563865762457665429121565626266366275390229654536265674569863610436273553892106425558656882136425566264323872236224362444344362653552686224633464334542743236276654852115323536625584296352442648322364432854339533534455544822196352327244644333628812376354344243435354343735372343283332632802116556644466579210642454845378224653753454325543544244433772177432455522234333576218835454443352343335752236273343342444332234333574220824254347546264254337329765353358722126453552465547121382565435332627021555327472455675369224623533435454565329856552682606643344774565534246855552334632542493666752543343344434242436722865253432746423244537554554636621865362455373343455465220867343645744345636436421866546372524745765663276553272622156577443324242436122766235463334676365865432543360276586453592865332452582126542562464635721065527953535621844244368766385227355219623344354434323424654212836455456732532864545455522883365769512106465566557502782765674928654774634821865546632436343553647214756356554567324621064255576564521762353343333745464442116623445323543219335552434565343847742219826635353444553432541213824735364684340223643525683433333864863233921266336233326538215642567483524734372286224332554465442455552438333362194333636635255223342352136426262765563342208255274224327632436533239832335255234444475544243755453524426242322346435544725325435442454752443286554312138485645663623302206424327642555353324329223656363347225362547553342821255526544654227225432342864433554434344745426219945537262764453624225266233322421762526643425446445232116537436765522276726364212168344358344455544202196247243733555335334192762482431821163455262334172126534444463621621063636356471521172357544253142124445745463431321162622854552122882642335112126284243443661028674676659277333263821371973573555461386551465444135343126621482351146643”

4.2.2.2 Rewriting with chapter level data with Basmala based key coding pattern

In the previous subchapter, Evidence 4.2.2.1, we witnessed the Basmala verse key coding pattern based rewriting of the full text of Quran at the verse level data in the text type of 6348 verses. As per the rule, we also test all the key coding patterns of Basmala verse also in the chapter level data. In this chapter, I will present the evidence code that shows the same key coding pattern also exist in the chapter level data of the full text of Quran too and this time it is in the 6236 numbered verses.

To remember the natural numbers to be used at the chapter level data, I first provide the head and tail of the table I will use.

knitr::kable(head(dfVCwl), booktabs = TRUE,
  caption = 'Table head of numbered verses of Quran.')
Table 4.6: Table head of numbered verses of Quran.
Chapter_index Verse_sum cwords cletters
1 7 29 143
2 286 6140 26249
3 200 3501 14985
4 176 3763 16332
5 120 2837 12206
6 165 3056 12726

I will concatenate the numbers per chapter in the exact same order of the text of Quran, namely from right to left, as I did in Evidence 4.2.2.1. We observe this coding in the numbered 6236 verses text type of Quran as below. Before that, considering all the 6236 numbered verse of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

[Chapter 114 | Total Verses of Chapter 114 | Total Words of Chapter 114 | Total Letters. of Chapter 114] [Chapter 113 | Total Verses of Chapter 113 | Total Words of Chapter 113 | Total Letters of Chapter 113] . . . . . . . [Chapter 2 | Total Verses of Chapter 2 | Total Words of Chapter 2 | Total Letters of Chapter 2] [Chapter 1 | Total Verses of Chapter 1 | Total Words of Chapter 1 | Total Letters of Chapter 1]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

[ 114 | 6 | 20 | 80] [ 113 | 5 | 23 | 73] . . . . . . [2 | 286 | 6140 | 26249] [1 | 7 | 29 | 143]

And, the final number after all the concatenation would look like this:

11462080 11352373 . . . . . . 2286614026249 1729143

1146208011352373 . . . . . . 22866140262491729143

Here is the proof with a reproducible R code that rewrites, namely decodes, the full text of Quran by the 4 different descriptor numbers first and then test this big number at the chapter level data.

# Proof on per chapter level rewriting
tmp <- paste0(dfVCwl$Chapter_index,dfVCwl$Verse_sum,
              dfVCwl$cwords, dfVCwl$cletters)
tmpr<-rev(tmp)
cat("Heand and tail of the chapter level represenation numbers: ")
## Heand and tail of the chapter level represenation numbers:
head(tmpr)
## [1] "11462080" "11352373" "11241547" "11152381" "11031980" "10962799"
tail(tmpr) 
## [1] "6165305612726" "5120283712206" "4176376316332" "3200350114985"
## [5] "2286614026249" "1729143"
tmpr <- paste0(tmpr, collapse = '')

cat("The test of divisibility by 19:")
## The test of divisibility by 19:
cat(as.numeric(as.bigz(tmpr) %% 19))
## 0
cat("number of digits on this big number is", nchar(tmpr))
## number of digits on this big number is 1205

This code has a similar approach to Evidence 4.2.2.1 but at the chapter level numbers resolution of it. We could perform two tests and observed one success considering the text type of all the 6348 verses.

For the reference, to the best of my knowledge, like all the other, Evidence 4.2.2.2 is first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself. In case if I find out Evidence 4.2.2.2 had been available in another article, then, in such a case, I surely add a citation and update the online version of this book.

Since the key coding pattern is suitable to consider the text type of all the 6348 verses too, we have two trials and one success in this evidence based on the key coding pattern with letters information. Let’s add them into the counters for probability calculations.

# Counters for all the key coding patterns
key_codings_tested_nums <- key_codings_tested_nums +  2
key_codings_success_nums <- key_codings_success_nums + 1

Here is the “1205” digits length number of this evidence:

“11462080113523731124154711152381110319801096279910831043107725114106417771055239710493313410331473102828123101113616010011401699983615898894404975301159619722889583416294827102931140165922171314911554253902082342893013958488269238287197229686176125485221094698425108445833616975082198133381291044358042133552794617978578401747967750181841763124310877540164676745625610357320200854722828611097128227965704421797169522601133685230112896730333134766122541105651228912036418242109163111818016211177768611422696660133521560592444719705822475204657295752545569637917565578352164754553421469536236014335249312132451603601546504537315074918353153348295602510473854224234635645266745374882085445934614744389836360942538603522415479433654085122651083975117748693888735306537182865389936837303068354577832383454884359433731303578832303721563313455021713060817347229699784317288814385930279311594790262271320563025778963878246413195754231181052448322781279531421112117450942013513535399199897139351811015836552171111558664316128184478321599657288214528303539134385335451211117957307111231946781710109183975899129250511115875124253877206334114435616530561272651202837122064176376316332320035011498522866140262491729143”

4.2.2.3 Even Odd coding of rewriting with chapter level data

In the previous evidence in Chapter 4.2.2.2, I presented a key coding pattern based evidence that showed we can rewrite the full text of Quran by its chapter level natural text numbers, which are chapter, verses, words and letters. The evidence was observed in chapter level data considering all the 6348 verses. As per the general rules of any suitable key coding pattern evidence of the Main 19 System, we also need to test the even and odd coding pattern as the obligatory follow up coding tests for each successful key coding patterns. For the details about why we always test with the even and odd coding patterns as follow up test, one can read the Chapter 4.1.1. When I tested, I observed that there is also the even odd successful coding of Evidence 4.2.2.2. Therefore, I present that code as an evidence here.

When we test the even and odd coding pattern of the previous evidence of Chapter 4.2.2.2, we observe that it also exist over the full text of Quran considering 6236 numbered verses as presented below.

Considering all the 6236 numbered verses of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

[Chapter 113 | Total Verses of Chapter 113 | Total Words of Chapter 113 | Total Letters of Chapter 113] [Chapter 114 | Total Verses of Chapter 114 | Total Words of Chapter 114 | Total Letters. of Chapter 114] . . . . . . . [Chapter 1 | Total Verses of Chapter 1 | Total Words of Chapter 1 | Total Letters of Chapter 1] [Chapter 2 | Total Verses of Chapter 2 | Total Words of Chapter 2 | Total Letters of Chapter 2]

Here the “|” symbol stands for the concatenation operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

[ 113 | 5 | 23 | 73] [ 114 | 6 | 20 | 80] . . . . . . [1 | 7 | 29 | 143] [2 | 286 | 6140 | 26249]

And, the final number after all the concatenation would look like this:

11352373 11462080 . . . . . . 1729143 2286614026249

1135237311462080 . . . . . . 17291432286614026249

Here is the proof with a reproducible R code that rewrites, namely decodes, the full text of Quran by the 4 different descriptor numbers first and then test this big number at the chapter level data.

x<- dfVCwl
tmp <- paste0(x$Chapter_index , x$Verse_sum , x$cwords , x$cletters)
ev<- which((x$Chapter_index %% 2) ==0)
od<- which((x$Chapter_index %% 2) !=0)
#tmp<-paste0(tmp1,tmp2)

ev<- tmp[ev]
od<- tmp[od]

tmp <- paste0(ev,od)
tmpr<- rev(tmp)

 cat("Head of the per verse representation numbers : ", head(tmpr))
## Head of the per verse representation numbers :  1146208011352373 1124154711152381 1103198010962799 10831043107725114 1064177710552397 10493313410331473
 cat("Tail of the per verse representation numbers : ", tail(tmpr))
## Tail of the per verse representation numbers :  12111179573071112319467817 10109183975899129250511115 875124253877206334114435 61653056127265120283712206 41763763163323200350114985 22866140262491729143
 tmpr <- paste0(tmpr, collapse = "")  
 cat("The test of divisibility by 19:")
## The test of divisibility by 19:
 cat(as.numeric(as.bigz(tmpr) %% 19)) #mod 19 test if "0"
## 0
 cat("Number of digits on this big number
     is ", nchar(tmpr))
## Number of digits on this big number
##      is  1205

For the reference, to the best of my knowledge, Evidence 4.2.2.3 is first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself. In case if I find out Evidence 4.2.2.3 had been available in another article, which is very unlikely, then in such a case, I surely add a citation and update the online version of this book.

Let’s add it to the counters for probability calculation. We also tried it on 6348 verses, so 2 trials, 1 success.

# Counters for all the key coding patterns
key_codings_tested_nums <- key_codings_tested_nums +  2
key_codings_success_nums <- key_codings_success_nums + 1

Also, here is the “1205” digits length big number of Evidence 4.2.2.3:

“11462080113523731124154711152381110319801096279910831043107725114106417771055239710493313410331473102828123101113616010011401699983615898894404975301159619722889583416294827102931140165922171314911554253902082342893013958488269238287197229686176125485221094698425108445833616975082198133381291044358042133552794617978578401747967750181841763124310877540164676745625610357320200854722828611097128227965704421797169522601133685230112896730333134766122541105651228912036418242109163111818016211177768611422696660133521560592444719705822475204657295752545569637917565578352164754553421469536236014335249312132451603601546504537315074918353153348295602510473854224234635645266745374882085445934614744389836360942538603522415479433654085122651083975117748693888735306537182865389936837303068354577832383454884359433731303578832303721563313455021713060817347229699784317288814385930279311594790262271320563025778963878246413195754231181052448322781279531421112117450942013513535399199897139351811015836552171111558664316128184478321599657288214528303539134385335451211117957307111231946781710109183975899129250511115875124253877206334114435616530561272651202837122064176376316332320035011498522866140262491729143”

4.2.3 Total natural numbers based key coding evidences

As already described in the introduction of Chapter 4, the third key place to look for key coding patterns is the total natural numbers of the full text of Quran. It was like to look at the overall picture of the structure and see if there is an obvious key coding patterns exist in regard the over all numbers of the text. Similar to the Basmala based key coding patterns, the key coding patterns from the total numbers will be tested both in chapter and verse level data of the full text of Quran as there is no chance to make clear distinction to test in both chapter and verse level data.

Let me remind the total numbers of the full text of Quran in all the 6348 verses and in the numbered 6236 verses in the following:

Total numbers per text category in 6348 verses. : 114, 6348, 78245, 332837.

Total numbers per text category in 6236 numbered verses: 114, 6236, 77797, 330709.

4.2.3.1 Rewriting with the total numbers based key coding pattern at verse level

The key coding pattern we observed considering the totals of the natural number of the text is that the total number of chapters, verse, words and letters information is multiple of 19 considering the text type of all the 6348 verses as follows:

114 + 6348 + 78245 + 332837 = 417544.

417544 / 19 = 21976.

As per the rule, we will consider this as key coding pattern and apply it chapter and also verse level data too considering both text types. In this chapter, I will present the evidence code at the verse level data considering all the numbered 6236 verses. Basically, we first sum the chapter index, verse index, the number of words and the number of letters in that verse. This gives us the representation number of that verse. We then place those representation numbers where we see in the text as this is a rewriting test just as in the case of the Ultimate Evidence, Evidence 4.2.2.1. Namely, as per the rules we write from right to left whenever there is letters information in a single text type as we consider it rewriting of the full text. Then, we concatenate all the 6236 representation numbers and obtain the single representation number of the text of Quran considering only the numbered verses.

The same key coding pattern was also observed in verse 83:20 and explained in detail in the second key code of Chapter 4.4.1, where it is shown that the sum of chapter verse, words and letters is exactly 114 and also multiple of 19 (83+20+2+9). We see this key coding pattern if strongly represented in the text of Quran.

Let me first remind the numbers by presenting the head and tail of the table of the numbered verses.

knitr::kable(head(nQuran), booktabs = TRUE,
  caption = 'Table head of numbered 6236 verses of Quran.')
Table 4.7: Table head of numbered 6236 verses of Quran.
VerseI chapter verse vwords vletters text
1 1 1 4 19 بسم الله الرحمن الرحيم
2 1 2 4 18 الحمد لله رب العالمين
3 1 3 2 12 الرحمن الرحيم
4 1 4 3 12 مالك يوم الدين
5 1 5 4 19 إياك نعبد وإياك نستعين
6 1 6 3 19 اهدنا الصراط المستقيم
knitr::kable(tail(nQuran), booktabs = TRUE,
  caption = 'Table tail of numbered 6236 verses of Quran.')
Table 4.7: Table tail of numbered 6236 verses of Quran.
VerseI chapter verse vwords vletters text
6231 114 1 4 14 قل أعوذ برب الناس
6232 114 2 2 8 ملك الناس
6233 114 3 2 8 إله الناس
6234 114 4 4 17 من شر الوسواس الخناس
6235 114 5 5 20 الذي يوسوس في صدور الناس
6236 114 6 3 13 من الجنة والناس

Considering all the 6236 numbered verses of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

[Chapter 114 + Last Verse of Chapter 114 + Total Words in Last Verse of Chapter 114 + Total Letters in Last Verse of Chapter 114] [Chapter 114 + Verse 5 of Chapter 114 + Total Words in Verse 5 of Chapter 114 + Total Letters in Verse 5 of Chapter 114] . . . . . . . [Chapter 1 + Verse 2 in Chapter 1 + Total Words in Verse 2 of Chapter 1 + Total Letters in Verse 2 of Chapter 1] [Chapter 1 + Verse 1 in Chapter 1 + Total Words in Verse 1 of Chapter 1 + Total Letters in Verse 1 of Chapter 1]

Here the “+” symbol stands for the sum operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

[ 114 + 6 + 3 + 13] [ 114 + 5 + 5 + 20] . . . . . . [1 + 2 + 4 + 18] [1 + 1 + 4 + 19]

And, the final number after all the concatenation would look like this:

136 144 . . . . . . 25 25

136144 . . . . . . 2525

Here is the proof with a reproducible R code that rewrites, namely decodes, the full text of Quran by the sum of the 4 different descriptor numbers first and then test this big number.

x<- nQuran
tmp <- x$chapter + x$verse + x$vwords + x$vletters

tmpr <- rev(tmp)
cat("Head and tail of the representation numbers of verses after ordering as rewriting:")
## Head and tail of the representation numbers of verses after ordering as rewriting:
head(tmpr)
## [1] 136 144 139 127 126 133
tail(tmpr)
## [1] 29 29 20 18 25 25
tmpr <- paste0( tmpr, collapse = "")
print("Test if mod 19 is 0:")
## [1] "Test if mod 19 is 0:"
as.bigz(tmpr) %% 19 
## Big Integer ('bigz') :
## [1] 0
cat("The number of digits on this big number is", nchar(tmpr))
## The number of digits on this big number is 17790

As we see the remainder is 0 and thus is multiple of 19. It has a similar approach to Evidence 4.2.2.1 but using the second type of the text of the numbered verses and also sum operation to get the representation number of each verse.

In Evidence 4.2.2.1, we had witnessed that we could rewrite Quran by concatenating the 6348 representation numbers of each verse at the verse level. In this key coding pattern based evidence, Evidence 4.2.3.1, we also witnessed a similar rewriting coding, also in the second type of the text with 6236 verses.

At the verse level, we could also use the text type of 6348 verses and also with the chapter level data. Therefore, we have 4 trials and one success for this key coding pattern based evidence to add to the counters.

# Counters for all the key coding patterns
key_codings_tested_nums <- key_codings_tested_nums +  4
key_codings_success_nums <- key_codings_success_nums + 1

For the reference, to the best of my knowledge, Evidence 4.2.3.1 is also first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself.

You can access this “17790” digits length big number from the following link:

https://github.com/quran2019/Quran19/blob/master/6.1.6_Evidence.txt

One can just copy the big number and paste it into a web based big number calculator and test it herself.

Also, here is the “17790” digits length big number:

“136144139127126133138142136128132136131125128136135133138132150150135133138135136129130130125128130129137124135130131143131135119128131132131138126129133127129129126126123167124111136131121132124120121118122128121129126128134136125114110135128141129126128119118118117116134134143121122122122124210156186197158115129167125147126123124140128125130143132128123130119121122117123124116116117120128123152122131116108112117117117117113112112112124124123119116119120122116110101124138138131125123128125128119130117114120114111116110117111109122151141119120118117122113114114113112110106126147128161125120129111122118116113116117117121119107111110131134143140134139139164135136130132135130155164120125121121117129126111119116108106101971331291381281271281281281271361181171161171151181111101131191191101081031071101241291221271201171251221141111161091341091081091051031071301131181141121151151191121131201081131151021081031201221261281151221151161171161141751741441421251081071071011021051591261281281371221221181161161231161201081111231161151171361061081021031021491371531401481511361561341261471281341251251191141211311321201301351361241181121031091181179811411512197144125122118115116115111106110112113111123110104102104101150132131119129128127121115126119115114110112113111110109107103108105104103102101102971451331431331351471301261361301321231221231201241251251291231191171151181131181061061071061051061049810610599991061039791170148139140151140160139136128136139137132126134130132124137130135124113114110118119119119126112110112115110121102104101102999897969520315818817213714312412512412613612912713111512013212011311912312312811910711312211011410910710610210010598941019691149145155143154141144155137143136139146133135130130125131134134136124149117123120121113119120115115112110111114101102104104103102102969796959493159158145160151138127142132136169132151117129120136130143116131122135128125122124121118137128149145135136137127123130122122126124118114122122117113114110116112117113117107115120109971141029497103108108107101971851421421511661381421491481381411411381401321271311301341421221261241221174121191151181181111201231131081021091061051041161051049910710510610310293969290878590500132123133126150135113108125122127113107117104107999489165156132144152175146125126142129138135119145151134129139145129121135124111117118135185149144162138160111154115116119116125125102110136107114115991711031091581041021371671621621501521361441331351261331301351381521241211271211111211201041121091109910698981121029613010099101899392132929391142136143144137143136133141133141143128122127128127129128131139115110114115118113149141105104108114139119138115104119111116117113118981591081019792817714419314816716914114813616617415715512816612812812212913414814912812712913111012211412411312410410312198145102123102981019599989312589889194948914715816815913612913015714814215616312314413415511512712611412715714111411415212315313311017419822414931413620217018321212813919826316411315118724913821516222928111614317512618412314614914422213315816813514412512414112917916517818015714819312112816318215918116712315719511511017712727512416515913014413415222819112210510611617328418638419118014515813433713814333017818814518213713916713616013219012916022719823318326918013712613628711435212212316416615412712316421018523916719227127514316220317218615019320131417124814915316921129620114414221915119022920012325715214915312710723110911310617317216216218017217416716816716717615916216416315715614814815715415116216415216016515013813415615013715616115514513113813212913312913013713512812115913212711711211212711211010810510811010211010198969697113103112102101879795101102979486878483828597968279777871767416615516315315715114914914114714614514114312814113413914313713613515713315913113112912412711512512512312513012014211812911612911413211218311010810812910611597103116101104999794969794969891919685104848982807170686313613212812913713612614612613512412314113911913011111914312412013510712213410410912212310812012994112951071181011079098989411396901151051099684939494811351271311351371221341291211211461191251201201231161291161151151171101191141081161121051032451731531341481361629896200939694939891928584858685868574787374767476691311511511401361441371341191261161391241261221211141231161171201201131121061151161071761121061169413395979287838082747773727167666014916214314714013612913116215213813612813213613514012913412913212113113112211810810911511012112812610510612310912010195951019199113911048885857476787673747069686716113912613112712015015514115511611311911011112211812012412796101100129100991121021121371111098699106871148311912196998710768122161146173206176222259122232922111521141031461721303801502232322921681241341351751111712022162351371131652471881148810319116516574126732441251611521511461861361551271331221531511111141241282111531451021912781221281891131489991110777225614914891215177186161152174173164130242145163137134187222117147204161299112124149152175153178126106133185136835013212617215413217714715013214113415915416818613616810414313118814811513413413410914611012470116159928582491231361331581261211291101191191181241201021111001021231291121271261431091199511311111011411898958792101969591941071021049594899288808872101968378708961481641661751942041821761691631821491621661541461491491571981471461541511591661522021411591471541631421271401401531401791301511591281561541191301261161341311421251281431121702111261181201109711811114117012210513114010411897104801601151161091149090789181826047166230192150168232178160237178121165127153116155139169122109145109135123150135154144130179212195169159108178122147240200245123161126127140161113156949848461461861611612531441412231441762441541421302081931461851381291631389115818316514413313019012411916715812910291146165183172103161135133126989213713885846645212187205251155191171273189166172191143141149163158164255202172223143155203175153180162212160118142148155179155145188160137146191158132191139124194126191209141106140122197253128153171105100138210137931401171301349912012912913211414020298164109113774420820222616529515019720620913518014417013816117815315113716117415819816517314319314120817817814215021417511912826112914714411411414410789168102121136114137228158211159106137128133158809079901661772032032191721222019675147148170161143145147141139147145140158182146137155150143149122120148154129137148150154145115119119117120117116131115116132118115139150137112136106112101991151371201071231041081261451512171052311361769697829911094988194927910685111931078396886858242237246234233250232232229233228242229230233222222220227221220215220217252223211204209214212214222220209216210207209206202201202198195200190194194192192191185189188185192195184183184181178181181180181186177208181171166163168162168180164163267157158165169173156154150154146160145140145146150153142142137141140141138138143143134139133135129130130134141127130126128123121130111126117118110131112118116102109115102106989596981001051011011121209510093991139299938480819610492879175719579747165106826791678084565554511621621941711621661661571481481441471691471601411621571691291251421251601241151221311261431381541361261281211991351371081211071201491191211191411161241299712312510312497100848213297931131021218186121118951201139010899817961565653402022292151791712401981272051611391251381871471101561581789514011974135767779225758010814819120219517713715911711211893145124160160135131130157120115150193152136241171146135166126194132116136261150240115100128121117103137164175146109159151941411431841531801081101771241181229698192122119214215177152190146154166139133173150134199213170167166244137450195256412208151121114124120154941171561461683141853211372131661421491401561341521481451491581361782421331541211161211771168613516291137211192192689010993116971511451131181281181111681228910811512812412713596111115738576117152119733719221717714913518211115710713692133134160192106119135154187138113131110173838612112777915356361391291831381921521891521391311701262211821761371221451431531771781561391431181041521181181741351981549513616013113215410112395811159775957381113223158918976927243351541791841371741731981551671541181901211341531271591911591571511421842121841281221261772211501601121561011251751441459218412816111119814912512790140108112191114901281141458319088148118879186998134198191188198205192249191194206236236242190150176208196171132168148136132169193138181169189176207147172159151122114193139208179171172137162128122129131203152154153133103185152160193130194113185117186105101143199134901032291011231208612212211214910110413678533318219519818216720419819215318116319517816314114712916214914014814013513814515414715116318819217519821814712213015614012811313413011515812713814714320912514212724113712313714810913512512286999811389881281451031101021031761509613912611084130841317110511568858686485836427828027427627027826726426326727527526228226126425825526826225725424925125526325525625226724323724723924224325326623825925623824426023224225722522222922822723723621521921722022023724421824120920621820821123520622022122920621120119620619618719822219018720018619221918018620719017217818717718018218020417216918116717418416817919316418716216317116816815618615415116315315616616114114414814715014514014515414613813714113913414213813914114712912612812513212412813412012313112511812013011011910915911413310211210110710099103109121131110192899792110127102991301059293831031049391888780100102908076997588104778492688181698264577661718378858662513115913215317615314814018013820015011514812116115014515917314814011014913815711710912713014113298143139114152121150104108144119111118103141116106113881131049690951081501611241511269110385898383114851151189486111142119791962343054762101893511451362902031701311761571081311561282061222451081692051841341671293101323221564831351401611551651091041281932309114880881101251161161071658179937712883141118174851772211921861801781661781842071581681741701611831611772041601431531641521491421532181441391731361501351441651531321601391591561511541431251411851451261431151391231311471461241381081091121131131011241161381321089911511311517110096120908611411282109961921248485971282207388177126701259211111091666116264706951626467815351525141343174149153136246259174170141126173141215143155161158154123175128149157186165207122121111126143188142128871091652451161171682131481651099915517610516411414018093165108627112722116385144125869615976107888487359818113273186169171193182158156190207192170169154164172213164155176150154180222164157214144147190155166181156186174171160131186192140142125131131131140131129132122125120122124120145114114104129118111115120171126123165133126131116137961031461151051121001221491141238393114149721087672110105917981659269867683801017098791117660216252219223244255193232209192181203231171221206166167199187182216209185175178185197153144164183156166158159176169249194137205135148157195165168197238150146129146183190123143184157151149168187232135164115111147136136163117155109120152119110124122166118971089111317510011010287101762251748481827367686764607260675965676693806557996083848961785511648656482486142502417717116714213416014113016212613115213413713515214014112613813214317021713718213513312613413813412415216212413813714214123595116124132108114121115142136111132122113126127103101116116114981239697861109196999813987911137011288797598877765637387878593846389894445262442131571831752031821511991771501761801582101742101751231381761201691642201141461482831481591901562221531311721391251691431331181121321461251861411391401281702231841751401321481412052171451281441881081111599713513992128116106115112134200108204205114148881177322421310724816719613312612990786610579598081975537104722212391611682121771771961692022151942312002551711861842281741641541732001431661701521651691431671541691471661521371661391731851951571751511261961311581492151891671761381551401571221939112011615916413216996120112127141861151261191391629112010711410710198107104173849994100124100115135691021687978113851579111594608813418420820725423220018917919022521515824823720018225919320915919119824018418020418720116616616220719118321219427121620323217615621215716514513323224018118418323022114216620720118020215116316815815716816619614615912011414111111812412713010513714810297144135135881531031191451132022011031621241291569714516214912589101104768766836758911519111411486798196606958621046814114314715313214212512913013013018114512518312912013313112512712211610911613811011611711310611210813015610611497101110104105100108109112103113889296101112818597821098079110757381807498878071891007782728873112897797695875747761556760607164675458645447139111101101122114123137193111129102102120131191123117124991781521096810414310210611213726720757103144109625781121121166200217858016312611210984103135144138124921541431751561142241132881778810412612915574123155101741051762542629416113176180915794911291551551411568924022027320419215517716214718523932818015415720014016517316115120915022320115815816018315818326815416919724414311714514011516215922021819021715916316210811716011811115710814113412320217611112813017611810518514215921110718018719096971301472061339396851251491311498620383125121128521207392667810694925614996959551402231541822172061811712631622072071811752112172121901631621401871692301561611641621441532092061842001472012722011501852321331622401321462251491561131441581441391671581351271681341631821782111561321441701501011461411631281421541501401571271581631461111711021411141221101299211619689155140180888010711567821559115221310810210511714580907813417697120511375758175228226187162241168191185177184223148144159211236177136245161258196127153159200132172139121181146134168199187158251152123199153191127154981182541651621221459313916911712711112516295118134162106109110126107149130152123171124921011821199514518212491275172239137114117180951092027612715312510010854103921391681551373820721123620720023322725522538017828526220320323322624633119524622625718121519619320223126224819419117821026520721422919616718715319518418222914223521720114516813114831915621223623027817220015815116315213821020916914512112016218012117613014013613715914113814411718713626813419821124114721111612016516919017888136153236149708412516214912715180931351181016887110144107173133179896020018515133414619713412517320721511816713513123511013511812011116114715110513814923214813412715915923423210412912114416311415610513112512813894108148104148917973941485813212589589214614010380561397671705110911627229726032224727026124526926125132727926823923326435032738424330224221323722627033823724034525921325930927623938826627322526927131525928141020633842932237323923324321536824826623034226123135628125119619226831221419625423319825419424622725521515918022614415214715515617618917314817713915915415714714416019515419715923320516015215320620217318017113716229721019622428613913315614515316412416612820121924715821016521611212414514515614212411810816315421614310523824411417216413914112915811018923613410017412224623811213599179176118131121151203136739196187591571139110566424783931077683694755706481721327830320921624924626133934223721325225134237930119933321730231835727823432324926228725930123517422818418529818132118418226927721325224319727117417320318024819323623918922624217916916318416117719018933617618817618725734922231217819316915814413221116115120220315016717015114015220912427629613420099113203116159128155183209137162157102195145188139187106133123165102149126116105123133148129102183152119111175131831101189019681849795107199639667591366514368856880951817663737190178250181259319207238199225190459188234266376216233214150232194160149248207347227238182208193344157179138171168198241171182136171196155203127199250173183186233191199144334148143150202162129195120141255153201183110223332134194221285131186395135107120103153122104212239168821031131551079511514912011114016018722111913616319126914762711571173542541773473021274212672403322814452972282342252442502403233282522382342023231972842673562512062762162192102602052512212563423142281762392993402141981862961882572873491872192102192421641662531661752072202412851841721772112151791471912242334492242571531782561453043081833912892982492021691621881972521552101451742613331982491921711561351091839610420416519614815514521922418918117510815610411016910412114120126510212630112110011412614513423015327014417110310015674104105351255346106851242151521311041488611440335790999512123310480150104159271353307237235429269311251315261239297310321310254334231301335364272245288243256270259232270239261354225261299206231253256313196227353268523287361257185229211256258271281209218183272192176207224265221202169166208209188182214212200183194184232277277241214167216189302173249167171163207187191297172195187199164224151156152219166209169146137146190153242162121263163230230223124258119223171137121139150145164154228100134203951241001301322219311116196152284911528916014891118144123154108213172122719593110155133171137146961071278613017115511180801491661616796957280253725699703685334324174559643523483703483853345083724394143823443523514244514174793203803844495774724013844963655153044023445513944575193322933792822833853212924143744843835874144813764704472652953063063223734443663703085233363433734783273073012722932692722802883332472743232623363505612773252752243482643382945402824163412612552502752293814962502493272932512572832322552882373213962092102402302722732102132352192191922573212342441832353093263862542122992181872373042152052762211752242282232082802642282101942082651772471771881812592871892032052672011851882301841664862141561551671892251501802531562422262251462551643671722641461501962071361242021732541431291941511601731721221331331501963802081561751679513220499921181121531381199410211193941401251021259314313611215994118171120103131222206105123146881491264510886581051115067757068746648706038761292920182525”

4.2.3.2 Even Odd on rewriting with the total numbers based key coding pattern at verse level

In the previous evidence in Chapter 4.2.3.1, I presented a key coding pattern based evidence that showed we can rewrite the full text of Quran by its verse level natural text numbers, which are chapter, verses, words and letters. The evidence was observed in verse level data considering all the 6348 verses. As per the general rules of any suitable key coding pattern evidence of the Main 19 System, we also need to test the even and odd coding pattern as the obligatory follow up coding tests for each successful key coding patterns. For the details about why we always test with the even and odd coding patterns as follow up test, one can read the Chapter 4.1.1. When I tested this, I observed that there is also the even odd successful coding of Evidence 4.2.3.1. Therefore, I present that code as a evidence here.

When we test the even and odd coding pattern of the previous evidence of Chapter 4.2.3.1, we observe that it also exist over the full text of Quran considering 6348 numbered verses as presented below.

Considering all the 6348 verses of Quran, here is the illustration of the coding pattern of the big coding representation number as shown below:

. . . . . [Chapter 1 + Verse 1 in Chapter 1 + Total Words in Verse 1 of Chapter 1 + Total Letters in Verse 1 of Chapter 1] [Chapter 1 + Verse 2 in Chapter 1 + Total Words in Verse 2 of Chapter 1 + Total Letters in Verse 2 of Chapter 1]

Here the “+” symbol stands for the sum operation of the numbers of its both sides. The neighboring brackets also concatenated.

If we use the real numbers in the above formula, it would be like this:

. . . . [1 + 1 + 4 + 19] [1 + 2 + 4 + 18]

And, the final number after all the concatenation would look like this:

. . . . . 25 25

. . . . . 2525

Since the even and odd numbers are in different length, I did not provide the tail of it, which look like the head of the number as it is reversed like in the rewriting coding pattern.

Here is the proof with a reproducible R code that rewrites, namely decodes, the full text of Quran by the sum of the 4 different descriptor numbers first and then test this big number.

x <- unQuran # all 6348 verses, verse level data as input

ev <- which((x$chapter %% 2) == 0)
ev <- x$chapter[ev] + x$verse[ev] + x$vwords[ev] + x$vletters[ev]

od <- which((x$chapter %% 2) != 0)
od <- x$chapter[od] + x$verse[od] + x$vwords[od] + x$vletters[od]

tmp <- paste0(ev,od) #pair even and odd numbers

tmpr <- rev(tmp)
tmpr <- paste0(tmpr, collapse = "")
#Test if mod 19 is 0
as.bigz(tmpr) %% 19 
## Big Integer ('bigz') :
## [1] 0

For the reference, to the best of my knowledge, Evidence 4.2.3.2 is first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself. In case if I find out Evidence 4.2.3.2 had been available in another article, which is very unlikely, then in such a case, I surely add a citation and update the online version of this book.

Let’s add it to the counters for probability calculation. We also tried it on 6236 verses, so 2 trials, 1 success.

# Counters for all the key coding patterns
key_codings_tested_nums <- key_codings_tested_nums +  2
key_codings_success_nums <- key_codings_success_nums + 1

Also, here is the “18547” digits length big number of Evidence 4.2.3.2:

“1362611443541392251272611262991332061372311362531312561253131281961352271503531502681355231332871303611252571281851312291432111312561352581192711292811262091292181331831272721291921291761262071262241232651272211362021311691211661322081242091201881211821182141252121352001281831411941291841262321282771192771182411182141171671162161231892103021561731862491971671581711151631292071671871211911402971281721251951301871431991321641282241231511301561191521212191221661172091231691241461161371161461171901201531192421171621171211172631171631132301122301122231121241172581241191382231381711311371251211231391281501251451281641191541302281171001141341202031149511112411610011013011713211122110993115111126161147961281521612841259112015212989111160122148118911161181131441161231171541171081212131191721071221117111095113931331101291551381331281711271371281461289612810712712713686118130117171116155117111115801188011114911016611316111967119961109510872103801072531107211156130991137011836114811226115611152911929112201131812025108251131381151421021361081281031321091361591361261351281331281381371321221341221331181381161351161361231291161301201321081301111291231371161241151351171301361311061301081281021311031321021311071381441281251671221241181111151261161221151281111211061291101261121281131341111361231251101141041101021241041341011341051431451211331221431221331221351241471221301251261471361261301231321241231201221281231231201521241221251311251161291081231121191181171241151241181231131191181161061191061201071221061161051101061011041169812210615110514199119991201061181031179712291113103114203114158113188112172110137106143114124131125134124143126140136134129139127139131164115135120136132130120132113135119130123155123164128120119125107121113121122117110129114126109111107119106116102108100106105101989794112101124961299112210112715912015811714512516012215111413811112711614210913213413610916910813210915110511710312910712011013612013012214312611612813111512212213511512811612511712211612411412117511817413714412814299125185108142107142107151101166102138105142108149149148137138153141140141148138151140136132156127134131126130147134128142134122125126125124119122114117121412131119132115120118130118135111136120124123118113112108103102109109118106117105981041141161151051211049799106107150105132106131103119102129931289612792121901158712685119901159711416511015611213211314411115211017510914610712510312610814210512910413810313510211910114510215197134104129170139148145139129140121151135140124160111139117136118128135136951391671371621321621261501341521301361321441241331371351301261351331241301131351141381101521181241191211191271191211261111121211101201121041151121101091211101029910410610198102989911298102979696130951001029914910114589155931439215413214192144931559113793143144136193139148146167133169135141130148130136125166131174134157134155136128124166149128117128123122120129121134113148119149120128115127115129112131110110111122114114101124102113104124104104103103102121102989614597102961239510294989310110095149991459813593136125137891278812391130941229412289126911241741181981142241221491223141171361132021141701101831162121121281171391138911711610714311517512012610918497123114146102149941449722210313310815810816810713510114497125981245001411328712318213315912618115016713512311315710819512511512211012717711312710785117173104284107186993849419189180961451851581491341443371621381381431603301118315435211512211612311916411616612515412512710212311016413621010718511423911516799192171271103275109143158162104203102172137186941501428113617314317214416213716214318013617213317414116713316814116714316712817612215912716212816412716312915712815613114813914811515711015411415111516211816411315214916014116510515010413810813411415613915011913713815611516110415511914511113111613811713211312911813398129159130108137101135971289212181159771329212714711715811216811215912713611212911013010815710514810814211015610216311012310114498134961559611597127113126103114112127102157101141871149711495152101123102153971339411086908719884263831648211385151971879624982138792157716278229712817688741297917913616513217812818012915713714813619312612114612812616313586124275123124141165139159119130130144111134119152143228124191120122135105107106122116134841041781091881221451231821081371201391291679413611216095132107190118129101160107227901989823398183942691131809613790126115136105287109114968284193932019431494171812487714913115315116915121114029613620114414413714213421911915112619011622913920012412312625712215212114911415312312711610711723112010912011311310611280106166115155116163107153176157112151106149116149941411331479514697145921418714383128801418213474139771437313772136711356715766133601597513116113113912912612413112712711512012515012515512314112515513011612011314211911811012911111612212911811412013212411212718396110101108100108129129100106991151129710210311211613710111110410999869799941069687971149483961199812191969199968785107104688473893808215080223712327029268168631247813413513512717513111113517113720212221613423512913712111312116514624711918812511412088120103123191116165129165116741151261157311771110215119177114186108161116152112174105173103164245130173242153145134163148137136134162187982229611720014793204961619429993112981249114992152851758415385178861268510686133851857413678837350746976123741367613369158761261491211621291431101471191401191361181291241311201621021521111381001361021281231321291361121351271401261291431341091291191329512111313111113111012211411811810898109951158711092121101128961269510591106941231071091021201041019595949589101929188998011388917210410188968583857874707689786176487367741667023069192681506716874232122178161160146237173178206121176165222127259153122116232155921392111691521221141091031451461091721351301237215024413512515416114415213015117914621218619513616915515912710813317812212215314715124011120011424512412312816121112615312714514010216119111327815612294128981894811346148659921291187110205772517215525619114917114827391189701661321721261911721431541411321491771631471581501641322551412021341721592231541431681551862031361751681531041801431621312121881601481181151421341481341551341791091551461451101881241607013711614615919192158851328219149139681241641941661261751911942092041411821061761401691221631971822531491281621531661711541051461001491381492101571371989314714014611715413015113415999166120152129202129141132159114147140154202163981421641271091401131407715344140631791471301481511701591611281431561451541471191411301391261471161451341401311581421821251461281371431551121501701432111491261221181201201481101549712911813711114814115017015412214510511513111914011910411711812097117104116801311601151151161161321091181141159013990150781379111281136821066011247101669914611518613716112016110725312314410414110822312614414517615124421715410514223113013620817619396146971858213899129110163941389891811589418392165791441061338513011119093124107119831679615888129681025891611461621651621831941721711031621611661351661331571261489814892144137147138169851478416066141451626415720816920212922612516514229512515016019712420611520912213513118012614414317013813815416113617812615312815112113719916113517413715810819812116510717312014314919311914112120811917814117811614212415012921497175123119125128103261124129971471001448411482114132144971079389113168102102121121811368611412113711822895158120211113159901061081379912881133791586180569056795390401665917716020313520313121913017215712212020111596150751936215224213623724124617123414623313525016623212623219422913223311622813624226122915023024023311522210022212822012122711722110322013721516422017521714625210922315921115120494209141214143212184214153222180220108209110216177210124207118209122206962029820119220212219811919557200931901161949719415119214519211319111818512818911818811118516819212219589184108183115184128181124178127181135181961801111811151867317785208761811171711521661191637316837162551681391801291641831631382671921571521581891651521691391731311561701541261502211541821461761601371451221401451451431461531501771531781421561421391371431411181401041411521381181381181431741431351341981391541339513513612916013013113013213415414110112712313095126811281151239712175130951117312681117113118223110158131911128911876116921027210943115351025310619898191951889619898205100192105249101191101194112206120236952361002429319099150113176922089919693171841328016881148961361041329216987193911387518171169951897917674207711476517210615982151671229111467193801398420856179551715417251137601622021282291222151291791311712032401521981541271532051331611031391851251521381601871931471301101941561131581851781179518614010511910174143135199761347790791032252297510180123108120148861911222021221951121771491371011591041171361127811853933314551124364160278582802142742152761772701522781902671462641542631662671392751332751732621502821342611992642132581702551672681662622442571372544502491952512562554122632082551512561212521142671242431202371542479423911724215624314625316826631423818525932125613723821324416626014223214924214025715622513422215222914822814522714923715823613621517821924221713322015422012123711624412121817724111620986206135218162208912111372352112061922201922216822990206109211562011921962172061771961491871351981822221111901571871072001361869219213321913418016018619220710619011917213517815418718717713818011318213118011020417317283169861811211671271747718491168531795619336164541871541621791631841711371681741681731561981861551541671511541631181531901561211661341611531411271441591481911471591501571451511401421451841542121461841381281371221411261391771342211421501381601391121411561471011291251261751281441251451329212418412812813416112011112319813114912512511812712090130140110108119112109191159114114901331281021141121451018310719010088991481031181098712191131861109919281893497529218211019512719810218299167130204105198921929315383181103163104195931789116388141871478012910016210214990140801487614099135751388814510415477147841519216368188811928117569198822186414757122761306115671140831287811385134861306211551158311274913819614723414330520947612521014218912735124114513713612329013720314817010913113517612515712210886131991569812811320689122882451281081451691032051101841021341031671761291503109613213932212615611048384135130140841611311557116510510911510468128851938623086914814858805088159110132125153116176116153107148165140811807913893200771501281158314814112111816117415085145471593431731741481491401531101361492461382591571741171701091411271261301731411411322159814314315513916111415815215412112315017510412810814914415711918611116511820710312214112111611110612611314388188113142104128968790109951651082451501161611171241681512131261489116510310985998915583176831051141648511411514011818094938616511110814262119717912748221177163221851921441861251808617896166159178761841072078815884168871743591708116181183132161731774520421616025214321915322316424415225514919314223215320921819214418113920317323113617115022113520614416616516715319913218716018213921615920915618515117515417814318512519714115318514414516412618314315611516613915812315913117614716914624912419413813710820510913511214811315711319510116512416811619713823813215010814699129115146113183115190171123100143961841201579015186149114168112187822321091359616419211512411184147851369713612816322011773155881091771201261527011912511092124111122110166911186697611081629164113701756910051110621026487671018176532255117452845181418246731866716968171671936418260158721566019067207591926517067169661549316480172652135716499155601768315084154891806122278164551571162144814465147641908215548166611814215650186241744317124416021313115718618319217514020314218212515113119913117713115014017613118012915813221012217412521012017512212312413812017614512011416911416410422012911411814611114811528312014817115912619012315616522213315312613113117211613913712596169103143146133115118105112112132100146122125149186114141123139831409312811417014922372184108175761407213211014810514191205792178114565128921446918886108761118315980971011357013998927912811111676106601154411217713417120016710814220413420516011414114813088162117126731312241522131341071372481351671521961401331411261261291389013278143661701052177913759182801358113397126551343713810413472124411521841622081242071382541372321422001411892351799519011622512421513215810824811423712120011518214225913619311120913215912219111319812624012718410318010120411618711620111416698166123162962079719186183110212911949627199216982031392328717691156113212701571121658814579133752329824087181771846518363230732218714287166852079320184180632028915189163441684515826157421682211662391961611461681592121201771141771411961111691182021242151271941302311052001372551481711021869718414422813517413516488154153173103200119143145166113170202152201165103169162143124167129154156169971471451661621521491371251668913910117310418576195871576617583151671265819691131151158911491142151141898616779176811389615560140691575812262193104916812039116139159111164101132101169122961141201231121371271931411118612911510212610211912013913116219191123120117107124114991071781011529810910768104104173143841029910694112100137124267100207115571351036914410210916862795778811131218512115716691200115217948560808816313412640112141109143841471031533713224014222012527312920413019213015513017718116214514712518518323912932812018013315413115712520012714012216511617310916111615113820911015011622311720111315810615811216010818313015815618310626811415497169101197110244104143105117100145108140109115112162103159113220882189219096217101159112163811628510897117821601091188011179157110108751417313481123802027417698111871288013071176891181001057718582142721598821173107112180891877719097966997581307514774206771336193559667856012560149711316414967865420358836412554121471283852135120144731389212466927815410614394175921565611414922496113952889517751884010435126175129228155226741871231621552411011687419110518517617725418426222394148161144131159762111802369117757136942459116112925815519615512714115315615989200361322231721541391821212171812061461811341711682631991621872071582072511811521751232111992171532121911901271631541629814011818725416916523016215612216114516493162139144169153117209127206111184125200162147952011182721342011621501061851092321101331261621072401491321301461522251231491711561241139214410115818214411913995167145158182135124127911682751341721632391821371781142111171561801329514410917020215076101127146153141125163100128108142541541031509214013915716812715515813716338146331112001711851021511413341141461221971101341291259217311620719621589118155167140135180131882358011010713511511867120821111551619114715215121310510813810214910523211714814513480127901597815913423417623297104120129511211371445716358114341562071052111312361252071282001382339422710825514822510438014817891285792627320394203148233582261322461253318919558246922261462571401811032158019656193139202762317126270248511941091911161783121027826530320720921421622924919624616726118733915334219523718421318225222925114234223537921730120119914533316821713130214831831935715627821223423632323024927826217228720025915830115123516317415222813818421018520929816918114532112118412018216226918027712121317625213024314019713627113717415917314120313818014424811719318723613623926818913422619824221117924116914716321118411616112017716519016918919033617817688188136176153187236257149349702228431212517816219314916912715815114480132932111351611181511012026820387150110167144170107151173140133152179209891246027627229629713426020032299247113270203261116245159269128261155251183327209279137268162239157233102264195350145327188384139243187302106242133213123237165226102270149338126237116240105345123259133213148259129309102276183239152388119266111273175225131269832711103151182599028119641081206843389742995322107373199239632339624367215593681362486526614323068342852616823180356952811812517619663192732687131290214291964212542672332401983322542811944452462972272282552342152251592441802502262401443231523281472521552381562341762021893231731971482841772671393561592511542061572761472161442191602101952601542051972511592212332562053421603141522281531762062392022991733401802141711981371861622962971882102571962872243492861871392191332101562191452421531641641661242531661661281752012072192202472411582852101841651722161771122111242151451791451471561911422241242331184491082241632571541532161781432561051452383042443081141831723911642891392981412491292021581691101621891882361971342521001551742101221452461742382611123331351989924917919217617111815613113512110915118320396136104732049116596196187148591551571451132199122410518966181421754710883156931041071107616983104691214714155201702656410281126723011312130100178114250126181145259134319230207153238270199144225171190103459100188156234742661043761052163512332552143461501062328519412416021514915224813120710434714822786238114182403208357193903449915795179121138233171104168801981502411041711591822713653317143219641715545520396412735219934825037017334818338518633423350819137219943914441433438214834414335215035120242416245112941719547912032014138025538415344920157718347211040122338433249613436519451522130428540213134418655139539413545710751912033210329315337912228210428321238523932116829282414103374113484155383107587954141154811493761204701114471402651602951873062213061193221363731634441913662693701473086252371336157343117373354478254327177307347301302272127293282692712723532803072882373332352474292742693233112622513363153502615612392772973253102753212243103482542643343382312943015403352823644162723412452612882552432502562752702292593812324962702502392492613273542932252512612572992832062322312552532882562373133211963962272093532102682405232302872723612732572101852132292352112192562192581922712572813212092342182441831832722351923091763262073862242542652122212992022181691871662372083042092151882051822762142212121752002241832281942231842082322802772642772282412102141941672082162651891773022471731772491881671811712591632872071891872031912052972671722011951851871881992301641842241661514861562141521562191551661672091891692251461501371801462531901561532422422261622251211462632551631642303672301722232641241462581501191962232071711361371241212021391731502541451431641291541942281511001601341732031729512212413310013313015013219622138093208111156161175961671529528413291204152998992160118148112911531181381441191239415410210811121393172941221407112595102931251109315514313313617111213715914694961181071711271208610313013117122215520611110580123801461498816614916112667459610895867258801052531117250566799757070366887426666148297029602038187252525”

4.2.4 Pairing at chapter level data with the totals based key coding pattern

Under this main chapter I will present 2 related pairing coding pattern based evidence, which are also based on the key coding patterns we observe from the total numbers of the full text of Quran.

This key coding pattern is based on the pairing coding pattern mentioned in Chapter 3.2.1. For convenience and its importance for this chapter, I present the descriptive numbers again here in the following tables.

dfnums <- data.frame(c,v,V,w,W,l,L)
# Table:
knitr::kable(dfnums, booktabs = TRUE,
  caption = 'Table of the totals of all the 7 main descriptive numbers of the text of Quran.')
Table 4.8: Table of the totals of all the 7 main descriptive numbers of the text of Quran.
c v V w W l L
114 6236 6348 77797 78245 330709 332837

Let’s first remember the main numbers of the text of Quran. There are 4 main numbers of the text, which are number of chapters, number of verses, number of words and number of letters. However, as explained in detail in Chapter 3.2.1, Quran has a different structure, which makes it possible to be defined in two different forms regarding those main numbers of each form. Specifically, if we prefer to describe Quran with numbered verses only then we have these 4 descriptive numbers in order:

\[c, v, w, l\]

\[114-6236-77797-330709\]

In fact most of the scholars mentions Quran with regard to the numbered verses and cites verse number as 6236. However, some scholars like to mention all the verses including the unnumbered Basmala verses and thus cite the verse number as 6348. In that case the 4 main numbers are as follows in order:

\[c, V, W, L\]

\[114-6348-78245-332837\]

These represent the two different text types of the text of Quran regarding its textual structure. In fact, both of the scholars are correct as long as they emphasize the difference.

Also, I ordered the 4 main numbers naturally from chapters towards letters by following the general rules as described in Chapter 3.2. Again, according to the rules described in Chapter 3.2, there are only two ways we can pair these two main descriptive numbers by concatenating them either way as follows:

  1. \[c, v, w, l, c, V, W, L\]

\[114623677797330709114634878245332837\]

  1. \[c, V, W, L, c, v, w, l\]

\[114634878245332837114623677797330709\]

There are only two possible pairings and both of the number pairs above are multiple of 19. This means that they both are in harmony and with the 19 based coding system. As per the rules, I consider them as the key coding patterns and will test the same coding pattern over the full text of Quran considering both verse and chapter level data.

Verifying the key coding patterns of Chapter 4.2.4: For testing the mode of big numbers, I always use the special R package, gmp (Lucas et al. 2019), for the computation of big numbers. As a double check, one can also manually copy and paste these big numbers into a web application (“Good Calculators” 2019) for a double check if wished. I test both of the big numbers of the key coding patterns below:

#First number
tmp <- paste0(c, v, w, l, c, V, W, L, collapse = '')
tmp
## [1] "114623677797330709114634878245332837"
cat("The mod 19 of this long number is ", as.numeric(as.bigz(tmp) %% 19))
## The mod 19 of this long number is  0
cat("The precise result of the division is found as follows:") 
## The precise result of the division is found as follows:
cat(as.character(div.bigz(tmp, 19)))
## 6032825147227932058664993591859623

Similarly, we can prove for the second number.

#First number
suppressWarnings(require(gmp)) 
tmp2 <- paste0(c, V, W, L, c, v, w, l, collapse = '')
tmp2
## [1] "114634878245332837114623677797330709"
cat("The mod 19 of this long number is ", as.numeric(as.bigz(tmp2) %% 19))
## The mod 19 of this long number is  0
cat("The precise result of the division is found as follows:") 
## The precise result of the division is found as follows:
cat(as.character(div.bigz(tmp2, 19)))
## 6033414644491201953401246199859511

We witnessed that the two big key coding numbers of Chapter 4.2.4 are multiple of 19. Feel free to double check it by running the codes yourself or by just copying and pasting that big number into an independent big number calculator, such as this (“Good Calculators” 2019) and test it yourself.

In the following two subchapters, I present two different evidence codes that are based on the above mentioned 2 key coding patterns of Chapter 4.2.4. I will add the total numbers of trials and successes into the counters here for both of the subchapters. Considering the aboe twp key coding patterns, we observe two evidence codes in the full text of Quran, one at chapter and the other at verse level data and both pairings are from the text type of 6348 verses towards the numbered 6236 verses. Overall, we have 4 trials and 2 successes considering the two key coding patterns and their follow up successor trial codes. Let’s add them into the counters as well.

# Counters for all the key coding patterns
key_codings_tested_nums <- key_codings_tested_nums +  4
key_codings_success_nums <- key_codings_success_nums + 2

4.2.4.1 Pairing all the numbers per chapter

In Chapter 4.2.4, I showed the pairing key coding pattern based on the total numbers of the text of Quran. As per the rules we have to test those key coding patterns in the full text of Quran considering chapter and verse level numbers. In this subchapter, I will present the evidence code that is the successor code of those key coding patterns in the full text of Quran considering the chapter level data. As we see below, when we pair all the numbers of the chapter level data from the text type of 6348 verse towards to the text type of 6236 verses and the resulting big evidence code number is also multiple of 19.

tmp1 <- paste0(dfVCwl$Chapter_index,dfVCwl$Verse_sum,
              dfVCwl$cwords, dfVCwl$cletters)
cat("Head of numbers from the numbered verses", head(tmp1))
## Head of numbers from the numbered verses 1729143 2286614026249 3200350114985 4176376316332 5120283712206 6165305612726
tmp2 <- paste0(dfVCWL$Chapter_index,dfVCWL$Verse_sum,
              dfVCWL$cWords, dfVCWL$cLetters)
cat("Head of numbers from all the verses", head(tmp2))
## Head of numbers from all the verses 1729143 2287614426268 3201350515004 4177376716351 5121284112225 6166306012745
tmp <- paste0(tmp1, tmp2)
cat("Head of the paired numbers", head(tmp))
## Head of the paired numbers 17291431729143 22866140262492287614426268 32003501149853201350515004 41763763163324177376716351 51202837122065121284112225 61653056127266166306012745
cat("Tail of the paired numbers", head(tmp))
## Tail of the paired numbers 17291431729143 22866140262492287614426268 32003501149853201350515004 41763763163324177376716351 51202837122065121284112225 61653056127266166306012745
tmp <- paste0(tmp, collapse = '')
cat("Mod 19 of the number is 0 as seen:")
## Mod 19 of the number is 0 as seen:
as.integer(as.bigz(tmp) %% 19)
## [1] 0
cat("The number of digits of the final number is: ", nchar(tmp))
## The number of digits of the final number is:  2415

As we witnessed, this big evidence code number is multiple of 19. Here is the “2415” digits length number of this evidence:

“172914317291432286614026249228761442626832003501149853201350515004417637631633241773767163515120283712206512128411222561653056127266166306012745720633411443572073345144548751242538787612465406912925051111591292505111151010918397589101101843760811123194678171112419507836121111795730712112179973261343853354513448573564145283035391453834355815996572882151006612901161281844783216129184878511711115586643171121562666218110158365521811115876571199897139351999975395420135135353992013613575418211121174509421113117851132278127953142279128353332311810524483231191056450224641319575424651323577325778963878257890038972622713205630262281324564927931159479027941163480928881438593028891442594929699784317297098243363060817347230618213491313455021713135554219032303721563323137615823373130357883374130758073454884359434558883613354577832383546782325736837303068368473430873718286538993718386939183888735306538897393084397511774869397611814888408512265108408612305127415479433654155798338442538603522425486435414389836360943908403628445934614744460350149345374882085453849221044635645266746366492686473854224234739546244248295602510483056425294918353153349193571552504537315075046377152651603601546516136415655249312132452503161343536236014335363364145254553421469545634614885578352164755793561666569637917565697383177557295752545573057925645822475204658234792065592444719705925451198960133521560601435615796114226966611523098562111777686212181787631118180163121858206418242109164192461110651228912036513293122266122541105661325811246730333134767313371366685230112896853305130869522601133695326411527044217971704522199071282279657129231984722828611097229290112873202008547321204873745625610357457260105475401646767541168695763124310877632247110677501818417751185860784017479678411788157946179785794718380480421335528043137571812910443581301084548219813338220853528336169750833717376984251084458426112464852210946985231134888617612548618652738719722968720763158826923828827964018930139584893114360390208234290218636191155425391165827292217131492227533393114016593124418494827102949311219583416295938181961972288962076307975301159763413498894404989984239983615899940177100114016910012441881011136160101124017910282812310293214210331473103418921049331341041037153105523971056271161064177710652196107725114107829133108310431084146210962799109731118110319801104239911152381111627100112415471125196611352373113627921146208011472499”

In the following Evidence 4.2.4.2, we will see that this pairing coding pattern also exist at verse level too and not specific to only chapter level, both of which are based on the predecessor pair key coding pattern of the total numbers as shown in Chapter 4.2.4. Also, ee already added the numner of trials to the counters in Chapter 4.2.4.

For the reference, to the best of my knowledge, as all the others, Evidence 4.2.4.1 is first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself. In case if I find out Evidence 4.2.4.1 had been available in another article, then, in such a case, I surely add a citation and update the online version of this book.

4.2.4.2 Pairing all the numbers per verse: Evidence

In Chapter 4.2.4, I showed the pairing key coding pattern based on the total numbers of the text of Quran. As per the rules we have to test those key coding patterns in the full text of Quran considering chapter and verse level numbers. In this subchapter, I will present the evidence code that is the successor code of those key coding patterns in the full text of Quran considering the verse level data. As we see below, when we pair all the numbers of the verse level data from the text type of 6348 verse towards to the text type of 6236 verses and the resulting big evidence code number is also multiple of 19.

In the previous chapter, Evidence 4.2.4.1, we had witnessed a similar evidence code in the chapter level data. In this subchapter, I will present that a similar pairing key coding pattern based evidence code also exist in the verse level data too. This is despite the fact that the two text types have different total verse counts as 6348 and 6236 and their data lengths do not match to pair and concatenate. I had already described how the unequal data are paired in the rules section. Let’s first see again the table that shows the total numbers of each category per verse in the numbered verses as I will concatenate these numbers of both category.

knitr::kable(head(unQuran, n = 9), booktabs = TRUE,
  caption = 'Table head of all 6348 verses of Quran.')
Table 4.9: Table head of all 6348 verses of Quran.
VerseI chapter verse vwords vletters text
1 1 1 4 19 بسم الله الرحمن الرحيم
2 1 2 4 18 الحمد لله رب العالمين
3 1 3 2 12 الرحمن الرحيم
4 1 4 3 12 مالك يوم الدين
5 1 5 4 19 إياك نعبد وإياك نستعين
6 1 6 3 19 اهدنا الصراط المستقيم
7 1 7 9 44 صراط الذين أنعمت عليهم غير المغضوب عليهم ولا الضالين
8 2 0 4 19 بسم الله الرحمن الرحيم
9 2 1 1 3 الم
knitr::kable(head(nQuran,  n = 9), booktabs = TRUE,
  caption = 'Table head of numbered 6236 verses of Quran.')
Table 4.9: Table head of numbered 6236 verses of Quran.
VerseI chapter verse vwords vletters text
1 1 1 4 19 بسم الله الرحمن الرحيم
2 1 2 4 18 الحمد لله رب العالمين
3 1 3 2 12 الرحمن الرحيم
4 1 4 3 12 مالك يوم الدين
5 1 5 4 19 إياك نعبد وإياك نستعين
6 1 6 3 19 اهدنا الصراط المستقيم
7 1 7 9 44 صراط الذين أنعمت عليهم غير المغضوب عليهم ولا الضالين
8 2 1 1 3 الم
9 2 2 7 27 ذلك الكتاب لا ريب فيه هدى للمتقين

Now, in a similar manner to Evidence 4.2.4.1, I will concatenate numbers of all categories regarding all and only numbered verses. Since, this evidence is about the total verse numbers 6348 and 6236 of both text types, as an exceptional usage per the defined general rules, I will use the general verse indexes to be able to concatenate the unnumbered Basmala verses as well. Because otherwise, there is no real representative number to be assigned to the unnumbered Basmala verses within the total of 6348 verses and thus we can not correctly concatenate their corresponding counterpart in the numbered verses at the 6236 verses. Otherwise, the one-to-one verse data corresponding in the pairing of the key coding pattern but we cannot represent the additioal 112 unnumbered Basmala verses in the verse level data. Therefore, in order to represent them as well as per the rules, in any such pairing we use the general verse indexes instead of the special verse indexes.s Let’s elaborate on this more.

So far, we have observed that the evidences were mainly by concatenating the numbered verses version of the text of Quran and the full version of the text that includes the unnumbered Basmala verses too. This seems to be one of the main patterns in the 19 based coding system of the text of Quran. We have observed this pattern at every level so far, from total numbers of each of the descriptor numbers of the text to per chapter level too. Now, the question is, can we see the same paired concatenation coding pattern in the verse level as well. While pairing, we need to consider what numbers we are going to assign to the unnumbered Basmala verses at the beginning of the 112 chapters while pairing to its corresponding pair as we did in the predecessor key coding pattern. Since the unnumbered Basmala verses are unnumbered, we should not use any other number, even 0, to really represent them. As a single solution to this point, we can fairly utilize the general verse index of each verse for all the verses, because even the unnumbered verses have a unique general verse index in an order out of the 6348 verses. I mentioned this process as a general rule in Chapter 3.2.1 for the paired codings at verse level. This way, we solve the first problem but how about the other issue of concatenating the unequal length verse numbers of both text types (6348 vs 6236)? As per the rules, we use a natural approach as usual. If you try to concatenate two vectors where one of the vectors is longer than the other, then by default, R programming language keeps concatenating by starting over the smaller vector again. In a sense, the larger vector wraps the smaller vector as a circle. As an example, let’s say we have two vectors a an b. The longer vector a has 5 elements as this a=(1,2,3,4,5) and the shorter vector b has three elements as this b=(7,8,9). Then, if we concatenate a and b, the natural way is to start using the elements of the shorter vector from the beginning again. A a result, the concatenation of a and b gives us this vector ab=(17, 28, 39, 47, 58). This is the natural way and also the default behavior of R as well. This means I did not even need to write a special code to perform this concatenation task and just simply concatenated them as if they are equal. In this evidence, we will test exactly this and see if the pairing of the descriptive numbers of the text of Quran per verse level data is also under the 19 based coding system of the text of the Quran. Here is the proof that shows success on this evidence code too:

# unQuran for 6348 verses
x<- data.table(unQuran)
tmp1 <- paste0(x$chapter, x$VerseI,x$vwords, x$vletters)
# nQuran for 6236 verses
x<- data.table(nQuran)
tmp2 <- paste0(x$chapter, x$VerseI,x$vwords, x$vletters)
tmp<-paste0(tmp1,tmp2)
# To see what is going on in concatenation
head(tmp)
## [1] "1141911419" "1241812418" "1321213212" "1431214312" "1541915419"
## [6] "1631916319"
tmp1[6235:6238]
## [1] "996235419" "996236420" "996237318" "996238416"
tmp2[6235:6236]
## [1] "1146235520" "1146236313"
tmp[6235:6238]
## [1] "9962354191146235520" "9962364201146236313" "99623731811419"     
## [4] "99623841612418"
#
tmp <- paste0(tmp, collapse = '')
print("Test if mod 19 of the code number is 0:")
## [1] "Test if mod 19 of the code number is 0:"
as.integer(as.bigz(tmp) %% 19) 
## [1] 0
#Digitsum is not used as evidence but just presented as a fact.
as.integer(digitsum(tmp) %% 19) 
## [1] 0
cat("number of digits on this big number is", nchar(tmp))
## number of digits on this big number is 117196

In the above analysis, you can see that the digit sum of this big number is also multiple of 19 as a fact.

For the reference, to the best of my knowledge, Evidence 4.2.4.2 is first time presented to the literature in this book, and it has been hypothesized, tested and discovered by myself. In case if I find out Evidence 4.2.4.2 had been available in another article, then, in such a case, I surely add a citation and update the online version of this book.

You can access this big number from the following link: https://github.com/quran2019/Quran19/blob/master/5_5_BigNumber.txt

One can just copy the big number and paste it into a web based big number calculator and test it herself.

As we witnessed, this big evidence code number is multiple of 19. Here is the “117196” digits length number of this evidence:

“1141911419124181241813212132121431214312154191541916319163191794417944284192813291329727210727210847211847211125221212522128332138332131147214114721412532151253215114721611472161049217104921712512181251218114321911432197292207292201977221197722116732221673222734223734223115722411572241772225177222561922661922619862271986227251022282510222812532291253229239923023992302078231207823113662321366232341452333414523339155234391552342082235208223513602361360236197023719702372811123828111238157023915702391248240124824023101241231012411363242136324219802431980243198624419862441143245114324517682461768246105124710512471469248146924818792491879249842250842250741251741251105525210552528472538472538382548382541258255125825519692561969256188425718842571050258105025812532591253259830260830260737261737261271212622712126215602631560263730264730264189026518902652095266209526618772671877267281182682811826860257269602572692410827024108270157027115702711354272135427212542731254273945274945274208327520832752380276238027618712771871277176227817622782497279249727910452801045280115728111572813714128237141282197728319772832310128423101284936285936285114528611452862410228724102287239128823912881354289135428910522901052290291502912915029115712921571292492312934923129313632941363294281382952813829510462961046296261082972610829727107298271072983011929930119299115121001151210027131210127131210117672102176721029442103944210325102210425102210418722105187221051255210612552106104421071044210710442108104421082289210922892109743082110743082110124921111249211113652112136521122598211325982113196121141961211417592115175921151873211618732116331232117331232117177621181776211818722119187221191758212017582120311412121311412121301132122301132122125221231252212314562124145621241147212511472125241032126241032126104621271046212731112212831112212815702129157021291258213012582130186721311867213119832132198321322211521332211521333012221343012221341465213514652135177621361776213616812137168121371874213818742138933213993321391770214017702140271142141271142141155421421554214215632143156321433113521443113521441979214519792145103721461037214614632147146321473012721483012721481554214915542149218921502189215045196215145196215134146215234146215232130215332130215314732154147321547272155727215519752156197521561766215717662157311382158311382158178721591787215963221606322160115321611153216113502162135021621266216312662163104521641045216494221659422165248921662489216620912167209121671157216811572168136421691364216993721709372170935217193521714318721724318721723112321733112321731257217412572174239621752396217517682176176821761150217711502177228921782289217818662179186621791562218015622180259321812593218129122218229122218211612183116121831458218414582184512662185512662185381632186381632186939218793921871677218816772188135421891354218916552190165521901561219115612191321232192321232192441852193441852193177721941777219465286219565286219517872196178721962712021972712021971359219813592198251302199251302199624220062422001565220115652201221072202221072202146622031466220373290220473290220430121220530121220526110220626110220612492207124922072497220824972208145722091457220983522108352210251032211251032211176522121765221214592213145922131252221412522214114922151149221516672216166722161249221712492217177222181772221820742219207422192093222020932220492142221492142221301272222301272222221042223221042223259322242593222457247222557247222516722226167222262612322272612322272611822282611822283918222293918222292712222302712222301681223116812231146622321466223214652233146522331354223413542234729223572922354017722364017722364619322374619322373011422383011422384520322394520322393314722403314722406428822416428822412512222422512222424720022434720022432511122442511122443514022453514022458442246844224615652247156522472711622482711622486342249634224973122507312250281062251281062251938225293822521669225316692253542172254542172254431652255431652255301142256301142256602402257602402257157722581577225827122225927122225994122609412260522082261522082261228722622287226250189226350189226324102226424102226424118226524118226543169226643169226667249226767249226739148226839148226824972269249722692492227024922270114422711144227139174227239174227227123227327123227335148227435148227430125227530125227513682276136822761665227716652277155722781557227820892279208922792811222802811222803013422813013422811779228217792282451862283451862283114522841145228419872285198722851454228614542286177222871772228714522288145222881554228915542289129551229012955122903213822913213822912810322922810322922711822932711822934919622944919632941332954193295724329613329611533297724329718743298115332981137329918743299135033001137330046197330113503301155433024619733021347330315543303166633041347330414683305166633059433306146833062911633079433307241253308291163308241073309241253309115033102410733106543311115033111872331265433122610733131872331326122331426107331418883315261223315115033161888331620813317115033171565331820813318155333191565331925923320155333202186332125923321271133322218633222279332327113332326963324227933241462332526963325114733261462332611483327114733277273328114833281866332972733292410933301866333035138333124109333115523332351383332209233331552333317633334209233342080333517633335136033362080333683733371360333720813338837333821913339208133397333340219133402379334173333415353342237933424518733435353343198033444518733448343345198033452086334683433469463347208633476303348946334831132334963033491360335031132335011593351136033517323352115933521547335373233537253354154733542511433557253355155433562511433566283357155433573212933586283358167033593212933592075336016703360146133612075336113663362146133621354336313663363939336413543364115233659393365177933661152336632115336717793367834336832115336836144336983433699363370361443370271163371936337129120337227116337228120337329120337313673374281203374331463375136733757293376331463376146233777293377291263378146233781352337929126337918833380135233809473381188333819373382947338211433383937338314623384114333842491338514623385155633862491338624993387155633871144338824993388114733891144338910423390114733902599339110423391135033922599339220773393135033931569339420773394177433951569339513543396177433963415733971354339714703398341573398146533991470339917813400146534001043340117813401114934021043340211443403114934032311334041144340411483405231133405351523406114834061459340735152340715843408145934089403409158434091877341094034102398341118773411311253412239834122812734133112534132188341428127341411493415218834151257341611493416104734171257341713603418104734181569341913603419176834201569342094334211768342112453422943342216613423124534231362342416613424527342513623425529342652734261155342752934271371342811553428231043429137134291570343023104343013543431157034316293432135434329413433629343324105343494134346333435241053435136034366333436125134371360343727107343812513438249934392710734392188344024993440198734412188344110503442198734421364344310503443626344413643444198434456263445401663446198434462510634474016634477529134482510634482189344975291344937157345021893450145334513715734517283452145334523012134537283453187534543012134542168345518753455135334562168345683234571353345725107345883234582073345925107345994734602073346033151346194734611674346233151346213543463167434631978346413543464114734651978346515693466114734661777346715693467156434681777346811543469156434692287347011543470125334712287347117743472125334723614634731774347330122347436146347422953475301223475937347622953476281203477937347712553478281203478239934791255347924108348023993480219934812410834812086348221993482938348320863483115734849383484211003485115734851145348621100348620953487114534871458348820953488431883489145834897293490431883490730349172934912185349273034923012134932185349311573494301214494291253495115744951682449641944962811544972912544971458449816824498167944992811544993718645001458450019914501167945011370450237186450215714503199145031363450413704504712714505157145058829945061363450618794507712714507135545088829945082210745091879450914704510135545102090451122107451124106451214704512351574513209045131783451424106451411494515351574515176345161783451654265451711494517421854518176345185826445195426545191461452042185452013604521582644521834452214614522249945231360452313534524834452412564525249945252710845261353452619884527125645274019245282710845282292452919884529321584530401924530157845312292453118854532321584532156845331578453315554534188545341243453515684535146145361555453649205453712434537146445381461453894445394920545393817745401464454029121454194445412069454238177454214544543291214543104045442069454420944545145445451143454610404546103745472094454718804548114345481138454910374549209545501880455020100455111384551251024552209545522913245532010045533012545542510245541565455529132455516734556301254556166545571565455723105455816734558197745591665455927107456023105456062745611977456132145622710745621892456362745637284564321456411494565189245651763456672845661975456711494567219345681763456831139456919754569209845702193457048204457131139457136143457220984572187345734820445731249457436143457424101457518734575135645761249457630135457724101457722874578135645782277457930135457915574580228745801761458122774581228845821557458228128458317614583361684584228845843216245852812845856023545863616845861670458732162458740170458860235458833172458916704589837459040170459027128459133172459112644592837459210404593271284593311224594126445942396459510404595622814596311224596201064597239645972294459862281459815674599201064599730460022944600145446011567460121824602730460219794603145446031350460421824604114646051979460514544606135046063313546071146460726974608145446082081460933135460920674610269746101143461120814611836461220674612211094613114346137354614836461473246152110946152195461673546162072461773246171666461821954618177346192072461912454620166646204017846211773462129126462212454622221024623401784623114346242912646243212946252210246251040462611434626124946273212946271462462810404628381634629124946292913046301462463020784631381634631628463229130463214714633207846333313746346284634361614635147146351991463633137463616584637361614637188546381991463811454639165846391892464018854640114846411145464114534642189246421449464311484643221004644145346448434645144946451778464622100464637162464784346471990464817784648221034649371624649631465019904650341284651221034651832465263146521457465334128465314604654832465414734655145746552613646561460465625131465714734657145846582613646581566465925131465913614660145846601143466115664661125046621361466211444663114346632499466412504664542164665114446651887466624994666261294667542164667125046681887466815734669261294669501914670125056702497467115735671532424672501915672612785673419567331137567424975674432015675532425675622815676612785676198656773113756772711756784320156781047567962281567974056801986568024107568127117568145207568210475682321415683740568325119568424107568424925685452075685188056863214156864215756872511956873013456882492568829107568918805689239256904215756901570569130134569118755692291075692211005693239256931769569415705694135256951875569514625696211005696249956971769569716645698135256981356569914625699938570024995700261065701166457014016257021356570234140570393857031352570426106570414685705401625705248857063414057061249570713525707136457081468570814495709248857091971571012495710682815711136457112611357121449571215685713197157134119557146828157143114057152611357152611757161568571616665717411955717512285718311405718331365719261175719104557201666572023104572151228572128116572233136572215805723104557233815857242310457241368572528116572511485726158057262410957273815857271254572813685728217757291148572927110573024109573016685731125457311363573221775732136757332711057334721857341668573412625735136357352410457361367573625945737472185737311295738126257382092573924104573919895740259457401978574131129574134139574220925742259657431989574384057441978574425985745341395745165857462596574624905747840574717715748259857481042574916585749197857502490575015705751177157512612857521042575221895753197857531663575415705754146757552612857557405756218957561869575716635757125257581467575845205575974057591682576018695760209257611252576113725762452055762241165763168257632410457642092576451196576513725765208657662411657662711957672410457679375768511965768114557692086576916735770271195770261005771937577193457721145577221855773167357732410057742610057742086577593457755221357762185577626128577724100577722995778208657781559577952213577964280578026128578013615781229957812286578215595782156657836428057832297578413615784177057852286578545153578615665786291085787229757871147578817705788241025789451535789114257902910867901469579111476791144957922410267921252579311426793114267944196794125367951469679531138679614496796166667971252679713536798114267989446799125367991356680031138680010416801166668012510068021353680293768039446803249268041356680492968051041680593668062510068061756680793768077326808249268083713768099296809136868109366810145468111756681112576812732681212436813371376813104168141368681432133681514546815114768161257681617686817124368171660681810416818939681932133681919766820114768202711168211768682113606822166068221466682393968232290682419766824281146825271116825105068261360682619676827146668272282682822906828177168292811468291562683010506830124668311967683111576832228268321463683317716833207968341562683494268351246683523906836115768361456683714636837156468382079683884368399426839281036840239068401765684114566841251056842156468421571684384368432710868442810368446356845176568452174684625105684622776847157168471459684827108684831113684963568492295685021746850177168512277685112486852145968521773685331113685310366854229568542710568551771685593268561248685652168571773685723103685810366858124768592710568594517568609326860391606861521686183868622310368622410668631247686314586864451756864950686539160686515546866838686618696867241066867186568681458686812536869950686925926870155468702293687118696871115268721865687214586873125368732110068742592687473468752293687584468761152687695668771458687716596878211006878178168797346879166668808446880441716881956688122102688216596882492016883178168832912868841666688417696885441716885126268862210268861669688749201688713596888291286888441876889176968891568689012626890186568911669689116536892135968929436893441876893155968941568689484468951865689513446896165368961353689794368972510368981559689821906899844689913606900134469002210069011353690123956902251036902126269032190690323105690413606904114869052210069051863690623956906113969071262690710406908231056908301166909114869091259691018636910209669111139691124100691210406912156969133011669132911869141259691428110691520966915941691624100691610416917156969173615169182911869188386919281106919281346920941692010386921104169219376922361516922187169238386923727692428134692419756925103869253112869269376926209669271871692726117692872769282295692919756929208369303112869303114569312096693116706932261176932231066933229569334016769342083693439128693531145693528122693616706936135169372310669373714269384016769388366939391286939271186940281226940421806941135169413514969423714269421775694383669431775694427118694484469454218069451461694635149694635144694717756947371386948177569481977694984469491664695014616950166669513514469519396952371386952832695319776953291046954166469542186695516667955146956939795613506957832795714576958291047958104369592186795912467960419796063679611479616277962135079629457963145779631156796410437964114879651246796516737966636796617577967627796713507968945796852179691156796941679701148797073679711673797115667972175779721254797313507973177079745217974251057975416797552679767367976281307977156679771254797812547978124879791770797973479802510579802083798152679813113879822813079822294798312547983166979841248798416787985734798516647986208379862611179873113879872911079882294798811477989166979891974799016787990115879911664799137157799226111799240161799329110799314627994114779942310479951974799510427996115879961570799737157799736150799840161799828110799914627999104871000231047100018877100110427100113627100215707100214727100336150710031568710042811071004208771005104871005199571006188771006104571007136271007381467100814727100832145710091568710098357101020877101015657101119957101129123710121045710121772710133814671013217671014321457101493271015835710151139710161565710161144710172912371017135971018177271018147171019217671019165771020932710201458710211139710211139710221144710227307102313597102327113710241471710241771710251657710252510771026145871026136671027113971027351327102873071028251137102927113710292396710301771710308377103125107710311666710321366710326337103335132710331563710342511371034135371035239671035114671036837710361354710371666710377367103863371038840710391563710393815671040135371040241077104111467104119837104213547104222937104373671043421597104484071044125371045381567104563371046241077104613597104719837104716647104822937104813597104942159710491882710501253710501885710516337105194071052135971052938710531664710531044710541359710541979710551882710552310271056188571056941710579407105716717105893871058934710591044710591865710601979710601136710612310271061624710629417106262671063167171063932710649347106473071065186571065734710661136710664167106762471067114671068626710685227106993271069114071070730710701155710717347107111417107241671072625710731146710734257107452271074317710751140710754207107611557107631271077114171077197771078625710788417107942571079522710803177108016667108142071081211007108231271082167671083197771083228871084841710841047710855227108522947108616667108612477108721100710871380710881676710882390710892288710891143710901047710901160710912294710912913971092124771092249971093138071093103671094239071094940710951143710951885710961160710962310971097291397109741165710982499710981565710991036710992089711009407110036153711011885711011363711022310971102228971103411657110318747110415657110439172711052089711051146711063615371106156971107136371107145971108228971108156371109187471109411707111039172711103012971111114671111432227111215697111232141711131459711138327111415637111443200711154117071115209371116301297111617737111743222711172711871118321417111819817111983271119187971120432007112011417112120937112119807112217737112214777112327118711234017271124198171124105271125187971125197971126114171126261047112719807112715647112814777112852771129401727112913647113010527113030132711311979711319477113226104711321042711331564711333012271134527711341469711351364711357317113630132711368407113794771137518711381042711381140711393012271139228871140146971140104071141731711413715371142840711422810471143518711432912571144114071144125571145228871145728711461040711467337114737153711471256711482810471148146471149291257114926997115012557115093971151728711511047711527337115212527115312567115373271154146471154104471155269971155125071156939711567317115710477115723897115812527115884171159732711591669711601044711601148711611250811611889711627318116217827116323898116363471164841811641147711651669811651147711661148811661151811674198116723101811681889811687338116917828116911528117063481170186781171114781171229981172114781172231038117311518117313588117423101811746308117573381175125481176115281176208181177186781177218681178229981178626811792310381179249781180135881180125481181630811818368118212548118210398118320818118311498118421868118421958118562681185135881186249781186199581187125481187126181188836811881048811891039811891982811901149811901674811912195811911769811921358811921972811931995811931252811941261811942193811951048811951358811961982811962198811971674811971881811981769811981659811991972811991666812001252812001046812012193812013315081202135881202351498120321988120320888120418818120419888120516598120513618120616668120613678120710468120717768120833150812083614081209351498120918748121020888121013678121119888121193781212136181212177481213136781213186881214177681214178281215361408121510388121618748121612448121713678121710438121893781218145581219177481219835812201868812203313481221178281221125081222103881222125381223124481223207681224104381224937812251455812252711581226835812262610781227331348122720788122812508122810398122912538122911468123020768123025948123193781231135481232271158123245209812332610781233135781234207881234188581235103981235229581236114691236941812372594912371464812381354912383213581239452099123922988124013579124026133812411885912411874812422295912422310591243941912431677912441464912441356912453213591245103991246229891246136891247261339124718799124818749124820939124923105912491159912501677912501145912511356912512410291252103991252188391253136891253239991254187991254241109125520939125516809125611599125610449125711459125783191258241029125820979125918839125933170912602399912602396912612411091261188391262168091262124091263104491263281139126483191264291239126520979126523107912663317091266231029126723969126715649126818839126814609126912409126929139912702811391270198491271291239127136160912722310791272311349127323102912732912291274156491274167091275146091275431769127629139912761571912771984912772311391278361609127813529127931134912791477912802912291280147091281167091281157191282431769128217869128315719128316649128423113912841563912851352912851665912861477912861456912871470912872293912881571912881247912891786912892295912901664912901781912911563912911045912921665912921144912931456912931662912942293912941982912951247912952211891296229591296261149129717819129712559129810459129816649129911449129917739130016629130013649130119829130116679130222118913021910591303261149130316799130412559130432168913051664913052612591306177391306241329130713649130724107913081667913081262913091910591309461909131016799131012529131132168913119379131226125913121567913132413291313114791314241079131420939131512629131525103913164619091316271189131712529131784391318937913182511291319156791319187191320114791320167491321209391321188291322251039132211469132327118913231476913248439132413569132525112913251780913261871913262610391327167491327239091328188291328198691329114691329301329133014769133018889133113569133114599133217809133216699133326103913331671913342390913342711391335198691335251289133630132913362299913371888913371774913381459913381665913391669913391667913401671913401685913412711391341125491342251289134224117913432299913432386913441774913442710191345166591345156191346166791346371749134716859134716109913481254913482084913492411791349228891350238691350186191351271019135117619135215619135227109913533717491353311279135416109913549419135520849135552199913562288913561877913571861913572210291358176191358177891359271099135918829136031127913601254913619419136116569136252199913622179913631877913631460913642210291364155491365177810136552291366188210136626999136712541013672911391368165610136828126913692179101369231019137014601013701462913711554101371157110137241910137263010137352210137315741013742699101374146610137529113101375188610137628126101376271041013772310110137717871013781462101378104210137915711013793913810138063010138018651013811574101381145410138214661013822912310138318861013831771101384271041013841668101385178710138522841013861042101386411661013873913810138726113101388186510138843198101389145410138911451013902912310139016721013911771101391271181013921668101392188910139322841013931046101394411661013941663101395261131013952711410139643198101396114810139711451013971039101398167210139817631013992711810139929971014001889101400176010140110461014012283101402166310140216661014032711410140319811014041148101404124510140510391014051560101406176310140611471014072997101407114510140817601014081042101409228310140920871014101666101410156310141119811014111249101412124510141273010141315601014132281101414114710141412531014151145101415113910141610421014161352101417208710141711431014181563101418218410141912491014191658101420730101420522101421228110142115631014221253101422104410142311391014232073101424135210142419761014251143101425421411014262184101426103610142716581014274211014285221014281565101429156310142910421014301044101430259010143120731014311561101432197610143225961014334214110143393510143410361014341359101435421101435341361014361565101436166010143710421014371787101438259010143822931014391561101439146910144025961014401038101441935101441114810144213591014421677101443341361014436261014441660101444103910144517871014451764101446229310144673310144714691014472285101448103810144813521014491148101449104810145016771014505261014516261014511683101452103910145229131101453176410145311511014547331014542711810145522851014557281014561352101456146110145710481014572410910145852610145822851014591683101459104410146029131101460830101461115110146183310146227118101462219410146372810146315601014641461101464145310146524109101465146010146622851014661564101467104410146710451014688301014682710010146983310146993810147021941014701655101471156010147124851014721453101472238710147314601014731145101474156411147410361014751045111475935101476271001114762598101477938111477828101478165511147819851014792485111479166410148023871114803112710148111451114812293111482419111482114711148310361114831356111484935111484104811148525981114852795111486828111486187511148719851114871664111488166411148814621114893112711148916651114902293111490391461114911147111491231001114921356111492115011149310481114932410011149427951114949411114951875111495727111496166411149614671114971462111497116111149816651114989351114993914611149911401115002310011150029113111501115011150120811115022410011150223921115039411115031038111504727111504311231115051467111505145911150611611115061038111507935111507186611150811401115081252111509291131115091758111510208111151011551115112392111511197311151210381115121042111513311231115132694111514145911151411481115151038111515207311151618661115162386111517125211151719841115181758111518155611151911551115192476111520197311152019631115211042111521197211152226941115221975111523114811152318631115242073111524145211152523861115251882111526198411152616611115271556111527166511152824761115287281115291963111529186511153019721115302181111531197511153114611115321863111532125011153314521115331768111534188211153428111111535166111153522831115361665111536238511153772811153718701115381865111538114711153921811115391873111540146111154084111154112501115411244111542176811154215631115432811111154318681115442283111544948111545238511154513481115461870111546146011154711471115471148111548187311154852211154984111154915541115501244111550134811155115631115512710911155218681115521343111553948111553113011155413481115543011811155514601115551257111556114811155683111155752211155727110111558155411155815741115591348111559114211156027109111560218211156113431115613613711156211301115622378111563301181115639371115641257111564197911156583111156516651115662711011156620821115671574111567188611156811421115681037111569218211156963111157036137111570104411157123781115719461115729371115729421115731979111573936111574166511157424941115752082111575124411157618861115761657111577103711157752011157863111157810361115791044111579937111580946111580155711158194211158118751115829361115822077111583249411158318721115841244111584104311158516571115851246111586520111586176611158710361115871468111588937111588729111589155711158926110111590187511159083511159120771115911042111592187211159215611115931043111593176911159412461115949411115951766111595318111596146811159616731115977291215975221115982611012159863111159983512159916641116001042121600166311160115611216011663111602176912160225106111603941121603730111604318121604155711160516731216051459121606419121606166812160752212160712431216086311216088341216091664121609135412161016631216109381216111663121611177612161225106121612420121613730121613198012161415571216141873121615145912161517771216161668121616942121617124312161732138121618834121618943121619135412161923911216209381216201976121621177612162123891216224201216221968121623198012162310361216241873121624134312162517771216251042121626942121626187312162732138121627321311216289431216281984121629239112162917681216301976121630104112163123891216311138121632196812163227115121633103612163326112121634134312163426104121635104212163510461216361873121636321271216373213112163720861216381984121638187012163917681216392510512164010411216408411216411138121641115012164227115121642229612164326112121643145712164426104121644155312164510461216451139121646321271216462292121647208612164729110121648187012164812471216492510512164915541216508411216501461121651115012165183312165222961216521772121653145712165373512165415531216549391216551139121655177212165622921216561035121657291101216576291216581247121658147412165915541216591771121660146112166017661216618331216612611412166217721216622488121663735121663281111216649391216643011012166517721216651662121666103512166615651216676291216675271216681474121668124412166917711216691248121670176612167062512167126114121671114512167224881216723312312167328111121673248412167430110121674166312167516621216751350121676156512167637139121677527121677187212167812441216781153121679124812167918701216806251216801351121681114512168112491216823312312168213471216832484121683218112168416631216842210112168513501216851039121686371391216862384121687187212168793912168811531216881146121689187012168912561216901351121690124712169112491216916271216921347121692207212169321811216939391216942210112169493512169510391216951455121696238412169647169121697939121697211051216981146121698145712169912561216996261217001247121700103612170162712170111491217022072121702730121703939121703145912170493512170417671217051455121705291231217064716912170619791217072110512170723941217081457131708156012170962613170926115121710103613171024101121711114913171127111121712730131712251121217131459131713209012171417671317141556121715291231317151558121716197913171653012171723941317171454131718419131718351211317191560131719942131720261151317201986131721241011317212710713172227111131722115513172325112131723451881317242090131724421821317251556131725271181317261558131726155813172753013172773413172814541317281354131729351211317291910113173094213173015721317311986131731730131732271071317322394131733115513173316741317344518813173419671317354218213173511521317362711813173683813173715581317372810613173873413173851193131739135413173913551317401910113174039139131741157213174114531317427301317421989131743239413174325101131744167413174419741317451967131745218213174611521317468321317478381317471358131748281061317481668131749511931317491871131750135513175015641317513913914175116721317521453141752145413175319891417531676131754251011417541975131755197414175521861317562182141756261171317578321417571148131758135814175813501317591668141759371571317601871141760331431317611564141761291121417624191417621778141763167214176316781417641454141764104314176516761417655231417661975141766725141767218614176716621417682611714176822901417691148141769145614177013501417705181417713715714177134138141772331431417724418714177329112141773178314177417781417741559141775167814177512551417761043141776134914177752314177718841417787251417781250141779166214177942114178022901417801253141781145614178121861417825181417822510714178334138141783943141784441871417841561141785178314178513551417861559141786155814178712551417872611414178813491417881861141789188414178913541417901250141790939141791421141791839141792125314179213601417932186141793945141794251071417942610914179594314179514641417961561141796125114179713551417971142141798155814179810501417992611414179963214180018611418006311418011354141801103614180293914180213601418038391518036251418041360151804730141805945151805739141806261091518068311418071464151807727141808125115180893714180911421518098341418101050151810939141811632151811729141812631151812728141813103615181383314181413601518145231518154191518157261518166251518169391518177301518178361518187391518187371518198311518195211518207271518207291518219371518211152151822834151822834151823939151823114215182472915182412631518257281518256291518268331518267421518275231518277251518287261518288331518299391518297281518308361518301245151831737151831936151832521151832422151833729151833727151834115215183493115183583415183511391518361142151836520151837126315183762415183862915183862415183974215183941715184072515184041815184183315184110461518427281518424201518431245151843519151844936151844114115184542215184542015184672715184683015184793115184752015184811391518483171518495201518491040151850624151850830151851624151851626151852417151852522151853418151853418151854104615185493715185542015185572815185651915185683515185711411518577321518584201518588291518598301518595231518605201518606261518613171518616241518621040151862629151863830151863520151864626151864416151865522151865729151866418151866423151867937151867146215186872815186894015186983515186942215187073215187062315187182915187141815187252315187252315187362615187362515187462415187452415187562915187531915187652015187684115187741615187752115187872915187831515187942315187951915188014621518805241518819401518815281518824221518825251518836231518835301518844181518846301518855231518853191518866251518866241518875241518871469151888319151888519151889841151889736151890521151890156315189131515189152115189251915189242115189352415189342015189452815189431915189552515189531415189653015189662715189763015189731915189831915189883415189962415189972815190014691519006241519015191519015221519027361619029421519031563161903186815190452116190473615190542116190583015190642016190684015190731916190773115190831416190814591519096271619099481519103191619101044151911834161911134715191272816191216711519136241619131571151914522161914134916191541916191521100161916942161916114916191718681619174221619187361619187271619198301619191039161920840161920625161921731161921104116192214591619227321619239481619231155161924104416192413491619251347161925940161926167116192615691619271571161927218616192813491619282198161929211001619291982161930114916193084416193142216193120901619327271619321567161933103916193312641619346251619342291161935104116193510431619367321619363211816193711551619372812216193813491619381446161939940161939187316194015691619401153161941218616194110371619422198161942187816194319821619435251619448441619441561161945209016194512631619461567161946166716194712641619477281619482291161948831161949104316194917671619503211816195014581619512812216195173216195214461619521251161953187316195311481619541153161954124316195510371619551038161956187816195663416195752516195712571619581561161958734161959126316195993716196016671619601965161961728161961125816196283116196223961619631767161963177116196414581619641772161965732161965146316196612511619661661161967114816196717691619681243161968156516196910381619691354161970634161970249316197112571619712074161972734161972229216197393716197321981619741965161974156216197512581619751042161976239616197627103161977177116197729109161978177216197819711619791463161979157516198016611619801868161981176916198125119161982156516198225110161983135416198362916198424931619847391619852074161985145116198622921619861145161987219816198719911619881562161988104316198910421619891359161990271031619902410316199129109161991168116199219711619922089161993157516199332131161994186816199417681619952511916199519831619962511016199615571619976291619971564161998739161998187616199914511619998401620001145162000104116200119911620019411620021043162002176716200313591620031356162004241031620041669162005168116200512481620062089162006115216200732131162007249416200817681620081362162009198316200911561620101557162010727162011156416201118651620121876162012155116201384016201324107162014104116201494416201594116201513571620161767162016228416201713561620172294162018166916201852016201912481620191566162020115216202019711620212494162021114316202213621620227351620231156162023942162024727162024124916202518651620251775162026155116202622911620272410716202712531620289441620281451162029135716202983216203022841720302195162031229417203112571620325201720329311620331566172033136016203419711720341776162035114317203511571620367351720362311016203794217203711491620381249172038167116203917751720399421620402291172040843162041125317204123116162042145117204213591620438321720437311720444191720442182172045219517204514681720461257172046135317204793117204718711720481360172048125217204917761720491245172050115717205011501720512311017205193617205211491720522510817205316711720531251172054942172054125317205584317205510451720562311617205694817205713591720571250172058731172058135517205921821720591248172060146817206013591720611353172061834172062187117206222901720631252172063177117206412451720641156172065115017206516571720669361720661348172067251081720677241720681251172068186717206912531720691159172070104517207010441720719481720711348172072125017207263017207313551720732187172074124817207412581720751359172075198217207683417207619761720772290172077942172078177117207894517207911561720795191720801657172080251001720811348172081944172082724172082167117208318671720831455172084115917208415681720851044172085135217208613481720861884172087630172087187417208821871720882192172089125817208925113172090198217209013581720911976172091156417209294217209210411720939451720931996172094519172094935172095251001720951454172096944172096187317209716711720971557172098145517209822871720991568172099178117210013521721001570172101188417210111391721021874172102136317210321921721039371721042511317210412481721051358172105136017210615641721061142172107104117210714601721081996172108124617210993517210914561721101454172110936172111187317211113571721121557172112125317211322871721131140172114178117211414541721151570172115135017211611391721169301721171363172117197617211893717211814531721191248172119103717212013601721201145172121114217212112531721221460172122269217212312461721231558172124145617212414601721259361721251147172126135717212627114172127125317212714711721281140172128239217212914541721291463172130135017213019781721319301721311667172132197617213294017213314531721331461172134103717213494617213511451721359451721361253172136187017213726921721378351721381558172138530172139146017213922901721401147172140217217214127114182141114217214214711821421569172143239218214331317214414631821446271721451978182145165817214616671821461146172147940182147114417214814611821486271721499461821491042172150945182150166117215118701821517301721528351821529391721535301821531148172154229018215419781721552172182155187518215641918215619801821571142182157341271821581569182158221091821593131821593817318216062718216013561821611658182161321421821621146182162331511821631144182163725182164627182164175818216510421821658371821661661182166238118216773018216715541821689391821683012918216911481821692812918217019781821701248182171187518217128123182172198018217214701821733412718217311501821742210918217413501821753817318217512411821761356182176125018217732142182177165718217833151182178828182179725182179196318218017581821801562182181837182181830182182238118218220791821831554182183113918218430129182184937182185281291821852310218218612481821861367182187281231821871152182188147018218816631821891150182189281221821901350182190261111821911241182191135918219212501821921365182193165718219310511821948281821941454182195196318219519831821961562182196189218219783018219730118182198207918219819751821991139182199843182200937182200134918220123102182201114918220213671822021249182203115218220320851822041663182204934182205281221822051251182206261111822061137182207135918220762118220813651822088241822091051182209103618221014541822101243182211198318221115651822121892182212827182213301181822131038182214197518221416641822158431822159291822161349182216134618221711491822172410318221812491822181248182219208518221917761822209341822201051182221125118222194018222211371822223514818222362118222393818222482418222410341822251036182225291822261243182226259118222715651822271346182228827182228135018222910381822293101822301664182230155318223192918223162318223213461822323101822332410318223313511822341248182234207818223517761822351249182236105118223619771822379401822378351822383514818223815491822399381822391148182240103418224052718224129182241114718224225911822421465182243134618224352518224413501822441149182245310182245146618224615531822469421822476231822471048182248310182248625182249135118224918681822502078182250249218225112491922511518225219771922525191822538351922535171822541549192254145218225511481922551352182256527192256830182257114719225713451822581465192258145218225952519225914431822601149192260134518226114661922611146182262942192262834182263104819226362518226462519226462618226518681922659341822662492192266104219226741919226711511922681519226883019226951919226993219227051719227011381922711452192271155719227213521922725241922738301922731457192274134519227410381922751452192275835192276144319227618761922771345192277114119227811461922781240192279834192279103819228062519228083419228162619228111491922829341922826291922831042192283936192284115119228493419228583019228516531922869321922868351922871138192287114719228815571922881148192289524192289124619229014571922908341922911038192291835192292835192292165019229318761922931450192294114119229410401922951240192295124619229610381922961354192297834192297103519229811491922981455192299629192299146019230093619230093719230193419230110411923021653192302736192303835192303729192304114719230411481923051148192305941192306124619230683319230783419230731619230883519230829129192309165019230911521923101450192310125119231110401923111146192312124619231211461923131354192313933192314103519231418611923151455192315125619231614601923168311923179371923171038192318104119231884319231973619231910361923207291923208291923211148192321934192322941192322836192323833192323167419232431619232493519232529129192325259819232611521923261362192327125119232783919232811461923287281923291146192329931192330933192330522192331186119233183319233212561923326331923338311923339411923341038192334725192335843192335627192336103619233652419233782919233793719233893419233842019233983619233941419234016741923409441923419351923414161923422598192342624192343136219234310381923448391923444171923457281923455231923469311923469431923475221923471045192348833192348144619234963320234912192350941202350523192351725202351415192352627202352631192353524202353419192354937202354124419235542020235573019235641420235682919235794420235741519235841620235818681923596242023595191923601038202360937192361417202361523192362523202362114419236394320236310391923641045202364103719236514462023655182023664192023661348202367122023674142023685232023685202023694152023697322023706312023701140202371419202371419202372124420237251820237373020237351520237482920237431020237541520237541620237618682023762102023775192023775182023789372023782820237952320237931020238011442023803122023811039202381312202382103720238221120238351820238341420238413482023846202023854142023855192023865202023866202023877322023872293202388114020238835130202389419202389213202390518202390831202391515202391519202392310202392830202393416202393103520239421020239472720239551820239521872023962820239610352023973102023975172023983122023989292023993122023995212024002112024001135202401414202401197420240262020240293920240351920240384120240462020240462820240522932024058342024063513020240614602024072132024078332024088312024086232024095192024091559202410830202410530202411103520241113672024127272024121042202413218720241312392024141035202414124920241551720241551920241692920241662120241752120241716592024181135202418837202419197420241926115202420939202420197620242184120242114612024226282024221342202423834202423104620242414602024241249202425833202425186920242662320242683720242715592024275192024285302024281575202429136720242917652024301042202430935202431123920243162020243212492024329332024335192024339362024346212024342710520243516592024351575202436837202436124820243726115202437124420243819762024381768202439146120243993720244013422024408282024411046202441418202442124920244220712024431869202443517202444837202444166220244551920244528104202446157520244612392024471765202447134420244893520244883120244962020244973020245093320245083620245193620245162720245227105202452124720245315752024537322024541248202454315202455124420245562020245617682024561356202457937202457124420245882820245810382024594182024599352024602071202460114220246151720246114622024621662202462176520246328104202463113620246412392024649422024651344202465134920246683120246672220246773020246762120246883620246814522024696272024691565202470124720247062320247173220247118702024723152024721247202473620202473828202474135620247483820247512442024751250202476103820247617672024779352024779352024781142202478208520247914622024791875202480176520248012592024811136202481135320248294220248219792024831349202483115020248472221248473120248562121248511422024861452212486157220248715652124871044202488623212488145820248918702124898352024901247212490145920249182821249194220249283821249284520249312502124938372024941767212494104420249593521249572920249620852124961048202497187521249762420249812592124988372024991353212499735202500197921250011422025011150212501135321250241921250213572125037312125035262125041142212504727212505157221250513522125061044212506622212507145821250722822125088352125081553212509145921250983821251094221251062921251184521251115592125128372125121351212513104421251318802125147292125141357212515104821251583921251662421251611472125178372125171040212518735212518104921251911422125191772212520135321252083721252113572125217302125225262125221661212523727212523104521252413522125241356212525622212525135021252622822125261455212527155321252718822125288382125281146212529629212529124721253015592125302083212531135121253184321253218802125328372125331357212533733212534839212534937212535114721253511452125361040212536525212537104921253783121253817722125387312125398372125391355212540730212540735212541166121254183721254210452125428342125431356212543732212544135021254483521254514552125457322125461882212546939212547114621254773721254812472125489362125492083212549114221255084321255093421255183721255173521255273321255283321255393721255352921255411452125548422125555252125558392125568312125561583212557731212557167521255813552125586292125597352125591251212560837212560126121256183421256114612125627322125621472212563835212563104521256473221256414652125659392125651251212566737212566104121256793621256716692125681142212568734212569934212569631212570735212570238321257183321257184021257252921257211432125738422125731992212574839212574115721257515832125758332125761675212576630212577629212577124921257812512125787322125791261212579103721258014612125802075212581147221258111422125821045212582935212583146521258372621258412512125849382125851041212585938212586166921258611572125877342125871666212588631212588125221258923832125896232125908402125905252125911143212591114221259219922125921350212593115721259383221259483321259482921259563021259510432125961249222596104021259773222259722862125981037222598124421259920752225991144212600114222260070262212601935222601134621260272622260212432126039382226031345212604938222604156121260511572226059352126061666222606251012126071252222607144821260862322260810412126095252226091772212610114222261022852126111350222611938212612832222612221022126138292226133714421261410432226141769222615419222615623222616104022261641522261722862226171252222618124422261822982226191144222619938222620702622226202510822262113462226211676222622124322262214512226231345222623209422262415612226248462226259352226252410022262625101222626218122262714482226279362226281041222628114322262917722226292089222630228522263015762226319382226312712822263222102222632208922263337144222633134422263417692226341045222635623222635351482226364152226361785222637125222263793622263822982226384182226399382226391151222640251082226401461222641167622264123972226421451222642146022264320942226431145222644846222644931222645241002226458412226462181222646841222647936222647271062226481143222648167422264920892226492189222650157622265016642226512712822265112592226522089222652841222653134422265318772226541045222654735222655351482226551656222656178522265615602226579362226571760222658418222658155522265911512226591245222660146122266027101222661239722266110432226621460222662176722266311452226637292226649312226649412226658412226651860222666841222666186322266727106222667291362226681674222668291222226692189222669931222670166422267011452226711259222671104122267284122267212632226731877222673441992226747352326743142226751656232675521222676156023267652122267717602326774202226781555232678421222679124523267910422226802710123268073022268110432326815282226821767232682525222683729232683315222684941232684629222685186023268572822268618632326866222226872913623268721104222688291222326885182226899312326895222226901145232690104122269110412326911356222692126323269213562226934419923269394023269441923269415662326953142326954212326965212326961763232697521232697261042326984202326981030232699421232699519232700104223270032138232701730232701156223270252823270283723270352523270372523270431523270462423270562923270514552327067282327062511123270762223270773223270821104232708942232709518232709419232710522232710104223271110412327111241232712135623271251923271313562327135222327149402327148482327151566232715625232716421232716727232717176323271719852327182610423271883923271910302327197372327205192327207382327213213823272142423272215622327226302327238372327231148232724725232724125223272562423272583323272614552327269392327272511123272751923272873223272872823272994223272972723273041923273072523273110422327315232327321241232732521232733519232733104523273452223273473323273584823273512492327366252327361447232737727232737836232738198523273872823273983923273994123274073723274042123274173823274110422327424242327427272327436302327431042232744114823274416752327451252232745937232746833232746524232747939232747838232748519232748114523274972823274984423275072723275012442327517252327511048232752523232752730232753521232753104723275410452327546222327557332327558402327561249232756124723275714472327578292327588362327585222327597282327598332327609412327605212327614212327611448232762104223276252223276372723276352623276410422327642480232765167523276563223276693723276662023276752423276762623276883823276872723276911452327699362327708442327707262327711244232771517232772104823277283023277373023277316652327741047232774104323277562223277563023277684023277610472327771247232777628232778829232778834232779522232779837232780833232780731232781521232781522232782144823278214612327835222327838432327845262327848362327852480232785724232786632232786834232787620232787934232788626232788840232789727232789114223279093623279018632327917262327917292327925172427929512327938302427932612223279416652427941873232795104324279519942327966302427961143232797104724279717812327986282427989372327998342427991150232800837242800937232801731242801938232802522242802281022328031461242803125923280484324280414652328058362428051563232806724242806167023280783424280714562328089342428089382328098402428097312328101142242810208523281118632428119382328127292428123515024281341924281326121242814951242814136824281526122242815947242816187324281611492428171994242817169924281811432428181985242819178124281922872428209372428201770242821115024282115662428229372428227835024282393824282317832428242810224282448217242825125924282513612428261465242826482032428271563242827145524282816702428281987242829145624282914582428309382428302299242831731242831331082428322085242832218324283393824283373524283435150242834381402428352612124283510442428361368242836311062428379472428371147242838114924283815702428391699242839114824284019852428407282428412287242841166724284217702428421883242843156624284310452428447835024284417762428451783242845231022428464821724284638173242847136124284784824284848203242848115324284914552428495021924285019872428501987242851145824285123103242852229924285276315242853331082428533918024285421832428542712024285573524285522862428563814025285694424285710442528571973242858311062528582292242859114725285916662428601570252860947242861114825286112512428627282528621670242863166725286317652428641883252864942242865104525286517622428661776252866839242867231022528679372428683817325286894224286984825286983824287011532528701350242871502192528711040242872198725287216682428732310325287321872428747631525287415652428753918025287520962428762712025287619852428772286252877105125287841925287893825287994425287973425288019732528807392528812292252881944252882166625288212492528839472528837282528841251252884114825288516702528851041252886176525288611492528879422528871569252888176225288883725288983925288911482528909372528909422528919422528919492528928382528921369252893135025289383725289410402528947332528951668252895166925289621872528961144252897156525289717682528982096252898937252899198525289915552529001051252900165725290193825290152225290273425290211492529037392529031355252904944252904104625290512492529059432529067282529067262529071148252907733252908104125290815642529091149252909124725291015692529101455252911837252911524252912114825291214442529139422529131352252914949252914177225291513692529151361252916837252916114825291773325291713502529181669252918126125291911442529195272529201768252920114725292193725292142025292215552529221147252923165725292322852529245222529248362529251149252925166925292613552529269352529271046252927942252928943252928104525292972625292913642529307332529309442529311564252931526252932124725293212452529331455262933132529345242629344192529351444262935627252936135226293611452529371772262937114325293813612629388382529391148262939113925294013502629408292529411261262941521252942527262942832252943114726294341625294442026294462025294511472629458352529462285262946623252947836262947733252948166926294873225294993526294952025295094226295010382529511045262951732252952136426295262525295394426295311462529545262629548322529551245262955521262956419262956940262957132629575202629584192629585232629596272629597302629601145262960939262961114326296183726296283826296251926296311392629637232629648292629646242629655212629656262629668322629667262629674162629678352629686202629687342629698352629694162629706232629705242629717332629715222629727322629727322629735202629731251262974103826297462526297573226297572626297662526297694826297711462629778312629788322629783172629795212629794202629809402629803122629815202629812196262982523262982727262983730262983114326298493926298483526298583726298552526298651926298641926298772326298731526298862426298831526298962626298942026299072626299031426299183526299142326299273426299221426299341626299383826299452426299462026299552226299513572629967322629963162629971251262997523262998625262998315262999726262999829263000948263000521263001831263001419263002317263002623263003420263003628263004312263004520263005219626300541726300672726300662826300711432630075222630088352630083192630095252630096232630104192630104172630113152630114192630123152630124162630134202630134182630143142630148312630154232630156262630162142630166232630178382630175222630186202630186242630191357263019417263020316263020619263021523263021620263022315263022318263023829263023318263024521263024622263025419263025728263026623263026421263027628263027316263028520263028419263029417263029621263030628263030419263031522263031419263032319263032414263033623263033311263034417263034726263035419263035829263036416263036521263037418263037418263038831263038724263039626263039414263040623263040317263041522263041114026304262426304231726304341726304352626304461926304462426304562026304572526304631826304641926304731826304751626304862226304893626304972826304951626305042126305094026305131626305162826305241926305241826305362126305382926305441926305452126305541926305531526305641426305672426305731126305741426305872626305831726305982926305911402630605212630605212630614182630614232630627242630624202630634142630633172630643172630645242630651140263065316263066317263066210263067526263067623263068624263068936263069725263069518263070419263070313263071516263071104426307293626307252126307351626307331626307494026307472526307562826307541426307641826307631726307782926307711402630785212630785212630793152630793112630807242630804182630814142630815262630823172630823172630831140263083420263084521263084627263085423263085522263086420263086113826308731726308793126308852426308873126308931626308932026309021026309010412630916232630915212630929362630924182630935182630937242630943132630944142630951044263095317263096521263096114026309731626309742326309872526309811412630994142630999352631003172631005212631011140263101520263102521263102318263103311263103418263104418263104314263105526263105631263106317263106829263107420263107521263108627263108422263109522263109620263110113826311041426311193126311131726311273126311211402631133202631136292631141041263114321263115521263115942263116418263116529263117724263117522263118414263118935263119317263119937263120114026312051926312142326312110412631221141263122829263123935263123521263124521263124420263125520263125416263126318263126522263127418263127313263128314263128417263129631263129935263130829263130523263131521263131625263132422263132524263133620263133729263134414263134522263135317263135418263136114026313621726313762926313741926313832126313852026313994226313962326314052926314072726314152226314141626314293526314241826314393726314352226314451926314441926314510412631459342631468292631463192631475212631476282631484202631487262631494162631494202631505222631504152631513132631513162631524172631524172631539352631536252631545232631545172631556252631554232631565242631563212631577292631577222631585222631585212631594182631591992263160217273160624263161419273161316263162520273162947263163623273163104526316472727316410432631654162731657282631664182731661665263167522273167145626316841927316872826316993427316920742631703192731701135263171628273171197226317272627317283626317342027317311582631744152731741569263175316273175197726317641727317694326317762527317720852631785172731782410626317942327317912442631803212731809452631817222731811447263182521273182114226318319922731831777273184419273184146227318562427318582727318631627318672827318794727318711472731881045273188933273189104327318983427319072827319052327319116652731911350273192145627319212532731937282731931361273194207427319483927319511352731951669273196197227319613602731978362731971147273198115827319816552731991569273199381362732001977273200124727320194327320114592732022085273202124327320324106273203281102732041244273204135827320594527320513612732061447273206135127320711422732071042273208177727320814682732091462273209731273210827273210943273211728273211114427321211472732125282732139332732138392732148342732141147273215523273215155827321613502732167392732171253273217631273218136127321812492732198392732192710427322016692732202189273221136027322116702732221147273222208227322316552732231978273224381362732241457273225124727322514442732261459273226944273227124327322712472732282811027322894027322913582732299322732301361273230730273231135127323193227323210422732321038273233146827323383127323473127323410372732359432732351247273236114427323642127323752827323783427323883927323872827323911472732391145273240155827324014562732417392732411670273242631273242114227324312492732431357273244271042732448332732452189273245156427324616702732461866273247208227324718712732481978273248114027324914572732491352273250144427325017632732519442732511561273252124727325211512732539402832531327325493228325441927325573028325593827325693228325619852732571038283257125927325883128325812552732591037283259229227326012472832601363273261421283261186727326283428326217672732637282832631037273264114528326416642732651456283265176527326616702832661049273267114228326738148273268135728326813462732698332832699362732701564283270167227327118662832713311927327218712832721976273273114028327310422732741352283274114427327517632832752710827327615612832761550273277115128327726106283278419283278114828327913283279291102832804192832801559283281938283281271092832821985283282208228328312592832832073283284125528328425100283285229228328593328328613632832861457283287186728328715752832881767283288177328328910372832891869283290166428329029108283291176528329112522832921049283292105128329338148283293944283294134628329410482832959362832951675283296167228329613522832973311928329718812832981976283298207728329910422832991886283300114428330026106283301271082833011349283302155028330223922833032610628330362928330411482833048342833052911028330515552833061559283306126528330727109283307157428330820822833081350283309207328330925972833102510028331017732833119332833112082283312145728331215662833131575283313177528331417732833148402833151869283315188428331629108283316136428331712522833176332833181051283318735283319944283319114228332010482833201458283321167528332172828332213522833221558283323188128332319782833242077283324218728332518862833251362283326261062833268402833271349283327177028332823922833282910928332962928332926105283330834283330281022833311555283331217828333212652833321670283333157428333317652833341350283334261132833352597283335146728333617732833361875283337208228333719662833381566283338155928333917752833391660283340840283340196328334118842933411328334213642933421040283343633293343115628334473529334410432833451142293345124528334614582933461042283347728293347127028334815582933482190283349197829334974328335021872933503112028335113622933516372833528402933521886283353177029335311612833542910929335416692833552610529335564028335628102293356135628335721782933572711828335816702933581352283359176529335913472833602611329336019722833611467293361832283362187529336217592833631966293363136028336415592933642076283365166029336527117283366196329336612442933674192933671887293368132933681457293369104029336923103293370115629337062729337110432933711570293372124529337216672933731042293373239029337412702933741250293375219029337573029337674329337617742933773112029337773929337863729337816772933791886293379136929338011612933802812429338116692933811988293382640293382124329338313562933838422933842711829338410452933851352293385218929338613472933862511229338719722933871989293388832293388135229338917592933891459293390136029339016622933912076293391156429339227117293392199129339312442933931265293394188729339463829339514572933951356293396231032933969402933976272933977282933981570293398178629339916672933995252934002390293400125329340112502934011364293402730293402145029340317742934032284293404739293404156529340516772934051664293406136929340663629340728124293407157329340819882934081765293409124329340994729341084230341013293411104530341129293412218930341283129341325112303413124629341419893034148332934151352303415114229341614593034161044293417166230341722982934181564303418321522934191991303419136029342012653034208322934216383034215262934221356303422943293423940303423526293424728303424943293425178630342511582934265253034266282934271253303427839293428136430342814602934291450303429114029343022843034302083293431156530343113672934321664303432146429343363630343321852934341573303434166529343517653034358312934369473034361879303437419303437271133034381330343816603034392930343922923034408313034409483034411246303441114530344283330344218713034431142303443634303444104430344410433034452298303445156230344632152303446155730344713603034471672303448832303448228730344952630344922853034509433034501567303451526303451145730345294330345216563034531158303453939303454628303454115130345583930345517833034561460303456188730345711403034572811530345820833034581037303459136730345919713034601464303460941303461218530346111463034621665303462145530346383130346324813034641879303464125530346527113303465208630346616603034669423034672292303467197630346894830346883230346911453034691039303470187131347013303471634313471419303472104331347231630347315623134739473034741557313474833303475167231347518723034762287313476166730347722853134778393034781567313478835303479145731347927105303480165631348014543034819393134811870303482115131348215543034831783313483177630348418873134842911230348528115313485258230348610373134861869303487197131348716543034889413134881145303489114631348930111303490145531349021873034912481313491156630349212553134921564303493208631349373030349494231349415653034951976313495104030349683231349621783034971039313497114131349841931349825973134991331349916583135004193135001968313501316313501229231350294731350231122313503833313503271003135041872323504133135051667323505831313506839323506186631350783532350724923135082710532350817633135091454323509632313510187032351010363135111554323511825313512177632351214603135132911232351314553135142582323514114231351518693235151675313516165432351616663135171145323517146431351830111323518156631351921873235191156313520156632352013463135211564323521831313522730323522125931352315653235232195313524104032352494931352521783235251351313526114132352614593135272597323527105231352816583235281145313529196832352918693135302292323530177531353131122323531730313532271003235321144323533419323533526323534133335341461323535831333535124332353618663335366263235372492333537281273235381763333538281263235396323335392914332354010363335401780323541825333541842323542146033354222983235431455333543167632354411423335446363235451675333545135832354616663335462610532354714643335471460323548156633354813553235491156333549155732355013463335502480323551831333551146832355212593335523515532355321953335532310232355494933355417653235551351333555188532355614593335561875323557105233355716723235581145333558167432355918693335591677323560177533356013613235617303335611679323562114433356214643235635263335631769333564419333564146433356514613335652081333566124333356625122333567626333567145633356828127333568302233335692812633356924923335702914333357048196333571178033357122753335728423335721361333573229833357317663335741676333574835333575636333575316333576135833357613653335772610533357783533357814603335788383335791355333579629333580155733358083333358124803335811258333582146833358223103333583351553335836226733358423102333584351373335851765333585258533358618853335867029433358718753335871139333588167233358830126333589167433358914633335901677333590146333359113613335911267333592167933359222993335931464333593198733359417693335946343335951464333595124333359620813335961562333597251223335977293335981456333598833333599302233335991255333600249233360084633360148196333601837333602227533360217713336031361333603940333604176633360414593336058353336051892333606316333606159333360713653436071767333608835343608186833360983834360932123333610629343610105033361183334361111463336121258343612166633361323103343613166133361462267343614166633361535137343615291053336162585343616135333361770294343617125133361811393436182710733361930126343619198733362014633436202710933362114633436212074333622126734362216753336232299343623835333624198734362417823336256343436251987333626124334362610453336271562343627217033362872934362826933336298333436292285333630125534363017623336318463436319353336328373436321146333633177134363312483336349403436341254333635145934363573033363618923436361041333637159334363732143343638419343638156934363917673436393416034364018683436401454343641321233436418393436421050343642134934364311463436432310034364416663436449453436451661343645207334364616663436461051343647291053436471358343648135334364818773436491251343649341303436502710734365011473436511987343651145934365227109343652248934365320743436531752343654167534365472634365583534365582934365617823436561657343657198734365710353436581045343658936343659217034365910383436602693343660155734366122853536612410034366217623536621968343663935353663228534366411463536641143343665124835366515633436661254353666135834366773035366713623436681041353668259134366932143353669177634367015693536702410834367134160353671341153436721454353672281273436738393536732811534367413493536741881343675231003536751147343676945353676623343677207335367751834367810513536783413834367913583536794213436801877353680418343681341303536814163436821147353682166234368314593536834123436842489353684124834368517523536851367343686726353686727343687829353687229434368816573536881778343689103535368916763436909363536908373436911038353691166534369215573536922199353693419353693135735369424100353694114535369519683536951455353696228535369618723536971143353697251083536981563353698104435369913583536992410035370013623537003313235370125913537011976353702177635370219833537032410835370326111353704341153537043012035370528127353705259735370628115363706123537071881363707213353708114736370831435370962336370931335371051836371031735371134138363711730353712421363712830353713418363713104535371441636371412513537151662363715836353716412363716125435371712483637171458353718136736371883835371972736371911573537202294363720155535372117783637216283537221676363722523353723837363723125535372416653637249383537252199363725114635372613573637267293537271145363727831353728145536372815583537291872363729517353730251083637304193537311044363731830353732241003637327273537333313236373313473537341976363734830353735198336373512473537362611136373611453537373012036373762335373825973637381050363739419363739104436374012363740837363741213363741135636374231436374293736374331336374383936374431736374473736374573036374515583637468303637468353637471045363747623363748125136374893336374983636374962236375012543637501145363751145836375111423637528383637522492363753115736375373036375415553637548353637556283637557333637565233637561039363757125536375713533637589383637581039363759114636375911423637607293637607283637618313637617323637621558363762623363763517363763516363764419363764425363765830363765145036376672736376652336376713473637678363637688303637685213637691247363769524363770114536377011573637716233637719463637721050363772104936377310443637737303637748373637741243363775135636377583336377693736377612503637778393637776333637787373637786293637791558363779731363780835363780730363781623363781936363782933363782114236378362236378311413637841145363784103736378511423637851144363786249236378614633637877303637871034363788835363788835363789733373789211363790103937379021336379113533737912133637921039373792312363793114237379373536379472837379463136379573237379551836379662337379693736379751637379741736379842537379872836379914503737991246363800523373800313363801836373801417363802521373802419363803524373803621363804115737380473536380594637380521536380610493738064163638077303738077283638081243373808624363809833373809727363810125037381073836381163337381172936381262937381231736381373137381341436381473037381441736381593637381552436381611423738166283638171141373817521363818103737381810363638191144373819625363820146337382042036382110343738215253638228353738224203738234193738231038373824211373824633373825213373825522373826213373826422373827312373827623373828735373828419373829631373829416373830518373830314373831937373831312373832417373832314373833728373833519373834124637383431637383531337383572437383641737383642037383741937383731337383862137383852437383973537383972337384021537384041937384141637384173437384272837384241537384362437384352137384472737384451937384573837384562637384672937384631337384731737384762837384841437384851937384941737384942137385052437385062337385162837385142237385252137385262337385310363738534213738546253738546323738554203738557233738565253738565203738574203738574203738581038373858418373859633373859522373860522373860420373861422373861524373862623373862419373863419373863526373864416373864525373865314373865420373866312373866419373867314373867520373868519373868419373869316373869419373870724373870315373871420373871418373872313373872516373873524373873625373874723373874522373875419373875418373876734373876416373877415373877311373878521373878315373879519373879626373880626373880413373881313373881420373882628373882316373883519373883418373884421373884419373885623373885732373886422373886529373887623373887623373888421373888516373889632373889316373890723373890281003738915203738914193738924203738924193738934183738937313738945223738945203738954203738953153738965243738964193738974193738973143738985263738983163738995253738994193739004203739005273739014193739011048373902520373902521373903419373903529373904419373904424373905315373905323373906418373906323373907516373907421373908625373908417373909522373909419373910418373910421373911416373911419373912311373912518373913315373913528373914626373914524373915413373915318373916420373916419373917316373917419373918418373918414373919419373919419373920732373920419373921529373921418373922623373922419373923516373923418373924316373924314373925281003739254223739264193739263173739274193739274183739287313739285203739295203739294193739303153739304193739314193739315213739323143739326223739333163739334213739344193739345223739355273739356263739361048373936420373937521373937529373938529373938629373939424373939521373940323373940419373941323373941420373942421373942414373943417373943210373944419373944414373945421373945524373946419373946104737394751837394741737394852837394841937394952437394931437395031837395041737395141937395151637395241937395262037395341437395331537395441937395431637395541937395531537395641837395662237395741937395742037395841837395841837395931437395952937396042237396031637396131737396141937396241837396241437396352037396331737396441937396421737396541937396563037396652137396641437396762237396731537396842137396862337396952237396931637397062637397041937397142038397141537397252938397262237397362938397310373739745213839741044373975419383975832373976420383976125137397741438397710383739782103839781550373979414383979731373980524383980104837398110473839816243739824173839828343739834193839837363739843143839847223739854173839851035373986516383986832373987620383987114437398831538398873637398931638398952037399031538399063337399162238399173037399242038399223933739934183839931560373994529383994321373739953163839959333739964193839963112237399741438399716703739983173839981366373999217383999950374000630384000733374001414384001629374002315384002114237400362338400363037400431638400493937400541938400515493840064193840068333840074153840074203840086223840084213840091037384009728384010104438401062238401183238401111463840121251384012626384013103838401310463840141550384014145438401573138401584838401610483840165263840176243840175283840188343840188383840197363840196233840207223840205223840211035384021735384022832384022422384023114438402352138402473638402472138402552038402551938402663338402642138402773038402742038402823933840284153840291560384029103838403032137384030114538403193338403111403840323112238403210383840331670384033630384034136638403462138403595038403511403840367333840367373840376293840374113840381142384038313384039630384039933384040939384040827384041154938404193238404283338404293638404342038404342238404442138404462838404572838404515543840466223840461034384047114638404752038404862638404862338404910463840496243840501454384050417384051848384051418384052526384052423384053528384053420384054838384054417384055623384055731384056522384056103638405773538405751838405842238405841738405952139405962938406072139406010453840615193940613312638406242139406216633840634203940632310538406441539406436138384065103839406531126384066114539406634122384067114039406724105384068103839406822953840696303940699313840706213940705233840711140394071929384072737394072621384073411394073198538407431339407417613840759333940751260384076827394076136738407793239407710383840789363940782080384079422394079311203840806283940802077384081155439408134132384082103439408213613840835203940831040384084623394084125938408562439408511443840864173940867283840874183940871981384088423394088416384089420394089730384090417394090155838409173139409183438409210363940928333840935183940931258384094417394094155739409541939409512413940966293940963614839409710453940971040394098331263940988323940991663394099187739410023105394100261073941013613839410114543941023112639410211483941033412239410318763941042410539410417763941052295394105259739410693139410611433941075233941072283394108929394108114339410962139410915683941101985394110155939411117613941112185394112126039411213523941131367394113166439411410383941141551394115208039411593239411631120394116124239411720773941171045394118341323941181465394119136139411911503941201040394120928394121125939412111573941221144394122734394123728394123146239412419813941246243941254163941251786394126730394126227739412715583941271574394128834394128932394129833394129341513941301258394130945394131155739413120943941321241394132167339413336148394133177739413410404041341239413583240413562939413618774041361456394137261074041371352394138145440413821983941391148404139104239414018764041402712839414117764041411676394142259740414212533941431143404143156739414422834041441365394145114340414515623941461568404146145339414715594041478373941482185404148166339414913524041491559394150166440415013473941511551404151156739415293240415262839415312424041531562394154104540415430119394155146540415513633941561150404156631394157928404157734394158115740415819873941597344041591869394160146240416013483941616244041613914639416217864041622710139416322774041631141394164157440416414553941659324041657273941663415140416616523941679454041673010539416820944041682393394169167340416910403941701777404170239440417141940417193740417212404172124840417362940417323884041741456404174104140417513524041751561404176219840417622864041771042404177125040417827128404178104240417916764041791361404180125340418019824041811567404181124540418213654041821353404183156240418316734041841453404184115340418583740418510464041861663404186841404187155940418742040418813474041881253404189156740418923934041906284041901253404191156240419113694041923011940419211434041931363404193136240419463140419420824041957344041951241404196198740419673340419718694041972198404198134840419814534041993914640419920764042002710140420030118404201114140420112444042021455404202103940420372740420394440420416524042046324042053010540420562340420623934042067234042071040404207176040420823944042081146404209937404209842404210124840421014584042112388404211321234042121041404212943404213156140421312594042142286404214628404215125040421525104404216104240421615674042171361404217125140421819824042181770404219124541421912404220135341422041940422116734142217334042221153414222733404223104641422317754042248414142241674404225420414225836404226125341422694040422723934142271462404228125341422815674042291369414229166740423011434142301989404231136241423194040423220824142322394404233124141423325102404234733414234198940423521984142351474404236145341423652740423720764142378344042383011841423812564042391244414239187840424010394142402084404241944414241946404242632414242114840424362341424325994042447234142441152404245176041424510554042461146414246146140424784241424716794042481458414248199340424932123414249167040425094341425041440425112594142511351404252628414252177140425325104414253114240425415674142541150404255125141425519884042561770414256125541425741941425722914142581241425826101414259419414259939414260733414260134641426173341426117534142621775414262301294142631674414263187241426483641426411464142659404142652810741426614624142661240414267156741426711434142681667414268321304142691989414269135641427094041427017514142712394414271197341427225102414272123941427319894242731241427414744242741341427552742427510434142768344242761038414277125642427719904142781878424278125341427920844242792290414280946424280197141428111484242811660414282259942428215594142831152424283198941428410554242841356414285146142428538152414286167942428630114414287199342428734149414288167042428818714142894144242891152414290135142429022964142911771424291938414292114242429222754142931150424293228441429419884242942410741429512554242952911841429622914242962291414297261014242971251414298939424298126441429913464242991768414300175342430013524143013012942430116634143021872424302104141430311464243031448414304281074243046294143051240424305155541430611434243067264143073213042430793641430813564243081774414309175142430910504143101973424310116441431112394243116294243124194243121457424313124243139354243141342431415664243151043424315828424316103842431620724243171990424317271234243181253424318165642431922904243192168424320197142432027115424321166042432115624243221559424322114742432319894243232277424324135642432427109424325381524243251556424326301144343261242432734149434327213424328187143432863042432911524343297274243302296434330835424331938434331623424332227543433283242433322844343337324243342410743433410524243352911843433511454243362291434336125042433712514343371149424338126443433820844243391768434339419424340135243434093742434116634343417314243421041434342124642434314484343439344243446294343441266424345155543434515534243467264343468334243479364343471146424348177443434821834243491050434349146042435011644343507364243516294343519404243521457434352522424353935434353732424354156643435493942435582843435593642435620724343561042424357271234343572511142435816564343581777424359216843435953042436027115434360125342436115624343611138424362114743436273842436322774343631249424364271094343649404243651556434365114043436641943436662643436712434367734434368213434368836434369630434369626434370727434370135343437183543437112554343726234343727314343738324343731355434374732434374124743437510524343757304343761145434376186743437712504343771134434378114943437811464343792084434379736434380419434380636434381937434381424434382731434382933434383124643438314484343849344343841042434385126643438583643438615534343861045434387833434387729434388114643438817794343892183434389936434390146043439011474343917364343911040434392940434392734434393522434393934434394732434394529434395939434395529434396936434396156943439710424343977354343982511143439862743439917774343996264344005304344006224344011253434401629434402113843440293743440373843440373443440412494344045224344059404344051148434406114043440683143440762643440783643440873443440884243440983643440911444344106264344101363434411135343441113524344121255434412837434413731434413827434414135543441462643441512474444151243441673044441621343441718674444178344344181134444418517434419114644441962343442073644442072643442163644442183743442242444442210394344239334444235144344241448444424628434425104244442552043442683644442662643442710454444277284344287294444286254344291779444429629434430936444430629434431114744443183543443210404444329314344337344444339354344349344444346244344355294444355214344365294444366234344371569444437524434438735444438627434439627444439518434440626444440314434441622444441420434442629444442422434443937444443837434444734444444733434445522444445728434446114844444662943444783144444772943444883644444831443444984244444983243445011444444505244344511363444451125043445213524444527374344538374444538364344548274444545234344556264444551034444456419444456829444457124444573124444582134444582104444598344444594184444605174444602104444616234444615244444627264444627254444638374444635204444641039444464619444465514444465519444466628444466311444467520444467527444468626444468419444469728444469522444470625444470104844447162944447172544447262944447252944447383544447331744447493145447412444475935454475629444476624454476631444477521454477934444478623454478208944447952445447912534444806274544804144444815184544811457444482314454482114544448342045448319724444844224544841142444485837454485146344448673345448616604444877284544871461444488629454488114444448972945448913744444903144544902410244449183245449113554444925244544921564444493125045449373244449473745449417854444958364544951356444496523454496249444449710344544972178444498829454498166844449931245449918704445002104545001052444501418454501145444450221045450211474445035244545031362444504725454504125944450552045450522784445066194545061143444507519454507146144450831145450816764445095274545098374445104194545108424445115224645111244451210484645126294445137254645131572444514529464514291064445153174645151864454516419464516945454517124645171459454518629464518259945451963146451924744545209344645202495454521208946452119764545221253464522167545452341446452313524545241457464524943454525114546452545193454526197246452618814545271142464527281134545281463464528176645452916604645299434545301461464530271294545311144464531259545453213744645321254454533241024645331355454534135546453418754545351564464535146045453673246453632138454537178546453710474545381356464538177345453924944645391880454540217846454020784545411668464541156045454218704645421865454543105246454322854545441454464544187945454511474645452710745454613624745468354545471259474547188145454822784745481881454549114347454938167454550146147455031745455116764745514204545528374745521046454553842474553630464554419474554835464555124745551675464556629474556114446455715724745572210846455829106474558145446455918644745591348464560945474560441724645611459474561241044645622599474562632464563247447456315654645642495474564147346456519764745652711746456616754745661248464567135247456710454645689434745687374645694519347456973346457018814745701663464571281134745711565464572176647457274146457394347457310484645742712947457411404645752595474575126646457612544745768504645771355474577218646457818754745781155464579146047457915554645803213847458012584645811047474581136546458217734745826354645831880474583301294645842078484584519464585156048458515614645861865484586419464587228548458719944645881879484588199346458927107484589211164745904194845908404745918354845915274745921881484592849474593188148459325105474594381674845943715147459531748459520854745964204845969434745971046484597146147459863048459831141474599835484599281244746001675484600271104746011144484601198647460222108484602737474603145448460318894746041348484604145247460544172484605125247460624104484606124147460763248460719774746081565484608401794746091473484609281304746102711748461028120474611124848461114604746121045484612542494746137374946131664474614733494614239847461516634946151777474616156549461694147461774149461712484746181048494618187947461911404946192812747462012664946207284746218504946213014447462221864946221053474623115549462340159474624155549462432129474625125849462521934746261365494626271164746276354946271891474628301294946281665484629419494629197648463051949463010454846311561504631314484632419504632114448463319945046337274846341993504634936484635211165046359324846368405046361253484637527504637115148463884950463852048463925105504639104548464037151504640522484641208550464183748464294350464273048464314615046434194846443114150464493648464528124504645103648464627110504646145748464719865046478374846487375046488264846491889504649934484650145250465062348465112525046516234846521241504652124548465319775046536214846544017950465462148465528130504655417484656281205046561041484657146050465710374846585424950465883449465941950465983149466016645046609334946612398504661525494662177750466262249466394150466372949466412485046645244946651879504665625494666281275046661554494667728504667134149466830144504668135449466910535046691249494670401595046705254946713212950467172949467221935046727324946732711650467362749467418915046749364946751665504675135349467619765146762134946771045514677213504678419514678213504679314514679213504680114451468031550468172751468131350468293651468231550468393251468341550468412535146844125046851151514685211504686520514686518504687104551468741850468852251468851950468983751468973250469073051469052050469141951469193750469293651469262550469310365146933195046941457514694526504695837514695420504696826514696419504697934514697523504698623514698937504699623514699628504700124551470093850470162151470162350470262151470252250470341751470393850470410415147049395047051037514705832504706834514706523504707831514707626504708933514708520504709525514709419504710622514710626504711729514711728504712524514712736504713625514713834504714155451471462550471513415147157345047161354514716730504717124951471793250471852551471882750471972951471983750472073251472073250472162751472183150472293651472252950472313535147234255147244195147247295147252135147258295147262135147261139514727213514727134651472821351472862151472931551472951951473031351473052551473131551473162751473241551473293051473341251473372751473421151473494351473551851473573151473641852473616514737519524737210514738732524738395147395205247392135147409375247402135147416255247412135147423195247424145147435265247434105147444205247444175147454195247453155147465235247463175147479375247475185147486285247486215147499385247496255147506235247506225147515225247511253514752938524752520514753939524753838514754832524754629514755523524755733514756626524756198451475752052475752851475841952475883351475962652475973251476072852476052451476173652476172751476283452476262851476362552476393151476473452476483151476573052476572851476693252476662751476782752476783151476883752476862351476973252476962951477083152477082751477152952477173151477242552477272851477372952477394051477482952477452051477511395247757275147761346524776521514777621524777733514778519524778933514779525524779939514780627524780732514781930524781933514782727524782104251478394352478310415147847315247845255247854195347853125247861653478651652478721053478741452478839534788514524789213534789313524790213534790311524791213534791315524792414534792310524793410534793518524794417534794518524795315534795516524796317534796417524797518534797415524798621534798314524799625534799314524800622534800518524801125353480151652480252053480262152480383853480331852480462953480431852480573353480541852480619845348064145248075285348072599524808833534808415524809732534809317524810524534810186552481172753481194752481262853481216515248139315348131141524814831534814165452481572853481516735248166275348163112952481783153481731452481862353481831552481962953481951952482082753482072052482173153482131552482272853482251852482394053482362152482452053482441352482572753482541952482652153482641652482773353482741552482893353482841552482993953482952652483073253483041352483193353483141952483210425348324155248331041534833414524834525534834418534835419534835312534836312534836932534837516534837213534838414534838311534839514534839417534840313534840520534841311534841210534842315534842620534843310534843419534844518534844315534845518534845211534846516534846317534847417544847422534848415544848731534849314544849631534850314544850728534851518544851520534852516544852828534853621544853840534854318544854835534855318544855943534856418544856521534857414544857526534858259954485893853485941554485952253486031754486062453486118655448616235348629475448624165348631651544863729534864114154486462353486516545448659365348661673544866627534867311295448674165348683145448687295348693155448693145348705195448701041534871720544871932534872315544872523534873518544873735534874621544874832534875413544875422534876419544876416534877416544877841534878415544878729534879415544879416534880526544880938534881413544881724534882419544882529534883415544883943534884414544884522534885418544885315534886312544886729534887932544887519534888213544888736534889311544889935534890417544890520534891520544891421534892210544892629534893620544893520534894419544894935534895315544895518534896211544896626534897317544897626544898419544898518544899422544899417544900731544900519544901631544901621544902728554902165449035205549032954490482855490421054490584055490521054490683555490631754490794355490731854490852155490842354490952655490941754491093855491063454491152255491131754491262455491252554491362355491342054491441655491441954491572955491552454491662355491662054491793655491741954491862755491842154491941655491941954492072955492031754492131455492141854492210415549224195449239325549234235449245235549244195449257355549256315449268325549264195449274225549274125449284165549286275449298415549294195449307295549301035544931416554931419544932938554932418544933724554933419544934529554934177854493594355493541954493652255493683454493731555493741954493872955493863154493951955493941954494073655494082754494193555494141954494252055494264054494342155494341954494462955494462654494552055494552154494693555494641954494751855494751954494862655494841954494962655494921054495051855495041954495141755495131654495251955495241954495362155495351955495441955495441955495516554955941554956295549564195549572105549579375549582105549584195549593175549593205549603185549604195549614235549615235549624175549624195549636345549633145549643175549644195549655255549651855496642055496641955496741955496731755496852455496841955496962055496941955497041955497041955497142155497131355497241955497241955497331755497341855497441855497441955497541955497562255497642355497641955497741955497762655497863155497841955497941955497962755498041256498031455498162756498131555498241956498221055498310355649834145549844195649843135549854185649853145549864195649863165549871778564987527554988419564988527554989834564989217554990419564990213554991631564991312554992419564992312554993827564993314554994419564994312554995640564995319554996419564996420554997626564997523554998521564998521554999419564999316555000519565000416555001419565001275550022105650023195550034195650034185550043165650046255550054195650054175550065195650065255550074195650073105550089415650082955500941956500928555010937565010295550114195650112115550123205650124175550134195650132105550145235650143165550154195650152145550163145650162105550174195650172125550181856501831255501941956501931355502031756502052555502141956502131155502241956502231055502341956502341355502431356502452155502541956502552555502641856502694755502741956502721555502862256502841955502941956502952455503062656503052555503141956503151755503262756503231756503341956503341956503431456503431556503531556503541656503621056503642156503741456503731456503831356503852556503931456503973256504031656504093556504152756504163256504252756504231556504321756504352556504421356504462956504531256504521056504631256504631256504731456504742256504831256504873356504931956504962856505042056505042156505152356505163056505252156505252856505331656505341756505441656505441956505527565055520565056319565056312565057418565057311565058625565058417565059417565059417565060525565060422565061310565061422565062295650624195650632856506331656506429565064728565065211565065520565066417565066420565067210565067519565068316565068418565069214565069622565070210565070520565071212565071626565072312565072310565073313565073210565074525565074516565075311565075417565076310575076939565077413575077114356507852157507894056507952557507936134565080947575080837565081215575081125256508241957508215745650835245750831569565084525575084176956508551757508537153565086317575086124356508741957508722109565088315575088271325650894165750892099565090421575090156456509131457509128118565092525575092135556509373257509312575650949355750942010556509563257509539180565096315575096251085650975255750972169565098629575098155856509921057509912565651003125751002813856510142257510114745651027335751023919156510362857510322945651044215751042285565105630585105187356510652858510623103565107417585107219056510841958510826115565109520585109188156511031258511015645651113115851114716356511241758511238167565113417585113201055651144225851141782565115422585115311395651164195851162392565117316585117241155651187285851181973565119520585119104056512042058512010435651215195851211564565122418585122177356512362258512315725651245205851248375651256265851259345651263105851265122156512721059512711435651285165951284118556512941759512914605751304195951301251575131939595131136057513211435951322590575133940595133371665751343613459513418985751358375951353113457513612525951362310657513715745951372812957513815695951381673575139176959513912455751403715359514023945751411243595141114757514222109595142176857514327132595143105057514420995951441872575145156459514510515751462811859514610485751471355595147188457514812575951481351575149201055951491987575150391805951501778575151251086051514922057515221696051521368575153155860515313625751541256605154522215751552813860515513565751561474605156197357515739191605157156357515822946051582191575159228560515921101585160419605160562585851611873605161219458516223103605162391735851632190605163208058516426115615164114358516518816151659345851661564615166932585167471636151671146585168381676151682410158516920105615169321295851701782615170166858517131139615171115458517223926151721460585173241156151731247585174197361517415725851751040615175177558517610436151769415851771564615177361645851781773625178125258517915726251792192585180837625180837585181934625181103958518251221625182231055951834196251831871595184114362518494559518541185625185187959518614606251862288595187125162518715725951881360625188218859518925906351891782595190371666351901251595191189863519111445951923113463519222104595193231066351931466595194281296351941870595195167363519520905951961245635196179059519723946351971875595198114763519821855951991768635199114459520010506452001759595201187264520111475952021051645202949595203104864520314625952041884645204135359520513516452051682595206198764520618695952071778645207105160520841964520827122605209492206452091159605210136864521016586052111362645211115960521252221645212937605213135664521319876052141973645214839605215156364521516796052162191645216125060521721101645217529605218562586552184217360521921946552193013260522039173655220217360522120806552212811861522241965522214546152231143655223321466152249346552242590615225932655225146461522611466552267326152272410165522717726152283212965522834153615229166865522925966152301154665230155761523114606652311149615232124766523229114615233157266523321926152341775665234178261523594166523523107615236361646652361251625237419665237461946252381252665238126262523921926652392712162524083766524024976252411039665241177962524223105675242933625243187167524311536252449456752441865625245187967524510426252462288675246126862524715726752477346252482188675248832635249419675249135363525017826752501863635251125167525111396352521144675252531635253221046752539386352541466675254938635255187067525572763525620906752561459635257179067525711406352581875675258124863525921856752598306352601144675260156264526141967526115546452621759675262124264526311476752631247645264949675264125564526514626752658316452661353675266730645267168267526793464526818696752681352645269105167526915586452702712267527013496452711159675271104064527216586852724166452731159685273519645274937685274518645275198768527541564527683968527621364527716796852772136452781250685278113964527952968527931465528041968528041765528142173685281516655282301326852823136552832173685283417655284281186852844136552851454685285515655286321466852867336552872590685287315655288146468528810506552897326852892106552901772685290727655291341536852912136552922596685292213665293419685293727665294155768529431966529511496852956266652962911468529641766529721926852975236652981782685298312665299231076852997286653001251685300626665301461946853015246653021262685302623665303271216853031039665304249768530483966530517796853056266753064196853063236753079336853074146753081153685308518675309186568530951767531010426853101247675311126868531141667531273468531283867531383268531393867531413536853141152675315186368531510446753161139685316518675317531685317727675318938685318521675319938685319114267532072768532010406753211459685321525675322114068532212626753231248685323519675324830695324166753251562695325286753261554695326416675327124269532742067532812476953284236753291255695329627675330831695330156867533173069533151667533293469533263467533313526953336286753341558695334730675335134969533562967533610406953366236853374196953376306853384166953383176853395196953395256853405186953409436853414156953416266853422136953429426853432136953435206853441139695344414685345314695345310685346417695346211685347516695347840685348313695348114468534941769534941468535041369535041868535151569535141468535273369535231368535331569535329685354105069535431268535521069535573168535672769535662368535721369535752068535821369535852068535972769535951768536031969536041868536162669536141668536241769536231168536352369536341568536431269536472668536572869536562468536662669536641768536752469536752368536862369536831668536910396953694176853708396953706216853716266953713176853723236953725216853734146953734206853745186953743136853755176953754176853761247705376416685377416705377417685378838705378415685379938705379114768538011527053803146853811044705381314685382518705382210685383727705383419685384521705384317685385114270538541668538610407053869406853875257053872126853881262705388316685389519705389622695390419705390310695391167053912106953922870539241569539341670539329695394420705394417695395423705395415695396627705396417695397156870539721069539851670539852269539963470539952269540062870540021469540173070540142169540262970540262469540362370540351869540463070540442169540531770540510426954065257054067306954079437054075286954086267054084236954099427054095246954105207054104176954114147054115246954123107054125216954132117054138286954148407054145226954151144705415735695416414705416831695417418705417842695418414705418940695419313705419944695420297154201451695421312715421722695422731715422525695423623715423186569542452071542472669542552071542552169542651771542614796954274187154274166954284167154287286954293117154296276954304157154304216954317267154319446954326247154326206954334177154333146954345237154348316954353167154357316954364177154365236954376217154375256954383177154385216954395217154394206954404207154401349695441313715441315695442417715442135370544341971544383570544441671544412547054454177154451037705446415715446104170544711477154471571705448314725448134970544931472544993570545021072545093370545141972545172870545231772545210377054534167254531146705454940725454933705455212725455841705456316725456135170545762272545713447054583107254589377054592107254591139705460415725460145270546129725461104970546241772546252770546341572546383970546441772546410397054652107254658317054665227254661041705467522725467826705468214725468824705469421725469124070547062472547016647054715187254711145705472421725472113670547310427254737277054747307254741344705475528725475135270547642373547631270547752473547741570547841773547851870547952473547962470548052173548052170548182873548183070548252273548262170548373573548362670548483173548493670548584273548573270548694073548663570548794473548741971548841973548852271548914517354898407154907227354901151715491525735491631715492186573549283571549372673549362671549452173549493171549514797354957832971549641674549631271549772874549727715498627745498287154994217454992107155009447455002117155016207455013137155023147455022107155038317455034167155047317455044167155055237455054187155065257455064167155075217455074177155084207455082107155091349745509313715510315745510412715511135374551152171551283574551221171551312547455133107155141037745514310715515104174551541171551615717455162572551741974551739725518134974551831372551993574551961972552093374552051672552172874552129725522103774552241372552311467455234127255249337455242107255258417455253127255261351745526572507255271344745527297255289377455283127255291139745529313725530145274553031472553110497455312107255325277455327247255338397455335177255341039745534314725535831745535314725536104174553621072553782674553741272553882474553851872553912407455394167255401664745540418725541114574554141772554211367455423147255437277455434227255441344745544521725545135274554531573554641974554631073554731274554793173554841574554851973554951874554931173555062474555031073555152174555111447355528307555524177355536217555534207355546267555545247355559367555556237355567327555565237355576357555574187355584197555583127355595227555592973556084075556031573556111517555615247355626317555623873556383575556341873556462675556462673556593175556552173556678329755566314745567419755567620745568312755568417745569277555694207455702875557041474557121075557141774557221175557221274557331375557331474557421075557431274557541675557531574557641675557651774557741875557741774557841675557839745579417755579312745580210755580317745581313755581417745582412755582412745583521755583312745584211755584517745585310755585311745586310755586413745587411755587521745588257555886187455893975558951774559031375559052674559161975559172774559251676559211407455932976559310497455944137655947327455954127655956357455962107655968357455973127655977337455985725076559873574559929765599737745600312765600104074560131376560172974560231476560283674560321076560352374560472476560410447456055177656056347456063147656068377456073147656075237456082107656086307456094127656094197456105187656109477456114167656117297456124187656121359745613417765613830745614314765614627745615422765615933745616521765616521745617315765617729745618310765618840745619931765619947745620519765620931745621311765621114174562231076562210427456231144775623213755624419775624213755625417775625213755626420775626213755627524775627213755628623775628310755629523775629315755630418775630314755631312775631314755632297756323147556333157756333137556345247756343107556353877563529755636418775636518755637626775637316755638521775638314755639314775639315755640620775640317755641417775641316755642420775642518755643414775643417755644417775644311755645212775645318755646314775646316755647312775647417755648315775648212755649517775649738755650417775650316755651397756516247556523127756526217556533177756536207556544177756544187556554127756553127556563127756563167556575177756574147556583117756584187556594137756593167556605217756605267556616187756615187556625177756623167556635267756635207556647277756643157656654197756656297656661140775666419765667104977566731676566873277566852676566963577566931676567083577567062476567173377567131676567273577567241876567373778567321076567410407856743137656757297856754167656768367856762107656775237856773127656781044785678417765679634785679213765680837785680214765681523785681316765682630785682316765683419785683317765684947785684420765685729785685316765686135978568652576568783078568741676568862778568821176568993378568951976569052178569062676569172978569142276569284078569242176569394778569341676569493178569421176569511417856953167656961042785696624775697419785697314775698213785698297756992137856995217757002137857003187757012137857014187757022137857025237757033107857033147757043157857042127757053147857052127757063147857062107757073147857076247757083137857085187757093107857091047775710297857101458775711518785711932775712316785712166977571331479571321377571431579571421377571531779571521377571631679571621377571751879571721377571841779571831477571931179571921377572031879572031477572131679572121277572241779572252777572321279572341677572473879572451977572531679572541677572662479572631477572762179572741477572862079572862577572941879572951877573031279573061677573131679573141777573241479573231677573341879573328775734316795734310775735526795735297757365187957364177757373167957375267757385207957386197757393157957396257757406297957403147757414197957414207757423167957424177757435267957434207757443167957442137757456247957453177757463167957464207757474187957475207857484197957484177857492107957493978575031379575031678575141679575141778575221079575293278575331279575341678575441779575452578575521379575541478575621479575631378575731679575751978575831679575893678575931780575928785760420805760312785761316805761416785762525805762418785763416805763311785764211805764310785765519805765414785766626805766414785767422805767277857684218057683117857694168057693127857702118057703107857713168057713107857726248057722117857733148057732978577429805774287857755218057754177857763188057764117857774188057774157857785238057783127857793148057793137857802128057804137857812128057815157857822108057824217857836248057834167857845188057844157857851047805785314785786145880578621078578793280578721278578816698057882107957894198057892107957902138057903177957912138057913147957922138057925177957932138057932979579421380579421279579531480579562479579621380579631479579731480579721279579821280579841979579952780579921079580041680580041979580151981580131279580241681580231679580331481580331479580441481580431479580562581580531479580651881580631479580761681580731479580841781580831679580931681580931079581028815810313795811310815811314795812298158123147958134178158133147958145268158144147958156198158153137958166258158162117958173148158173137958184208158183137958194178158194157958204208158206197958212138158213107958223178158223157958234208158234197958245208158245187958254178158255187958263981582621079582731681582751879582841781582851879582993281582983279583041682583031579583152582583131779583241482583231479583331382583331579583451982583451879583593682583572880583641982583641880583728825837617805838312825838417805839416825839315805840418825840211805841311825841314805842310825842416805843414825843416805844414825844315805845278258454168058463118258465188058473128258476198058483108258489348058493108358492118058502118358506308058512983585152480585228835852522805853417835853288058544118358545238058554158358556228058563128358564148058573138358572980585841383585831680585951583585942080586042183586072280586141683586173380586241583586283080586331483586362680586421083586441780586521283586572580586621083586662480586721083586741580586831783586829805869314835869213805870517835870416805871298358713168058722128358725228058736248358734168058743148358746328058752128358753138058764198358764198058772108358778368058784198358784198158794198358796318158803128358806278158813168358814208158823148358826308158833148358833168158843148358846248158853148458853148158863148458863148158873168458873128158883108458884168158893138458893148158903148458909378158913148458915218158923148458924198158934148458934198158943138458946238158952118458953138158963138458962108158973138458975188158984158458985138158996198458996188159003108459003138159013158459013128159024198459023138159035188459034158159045188459044148159052108459056268159065188459064188159075188459074178159088328459083158259094198459099418259103158559103168259113178559112138259123148559122118259133158559133158259145188559143148259157288559154138259164188559166278259176178559179408259184178559181040825919315855919146582592021185592014658259213148559214138259224168559224148259234168559233158259243158559243138259254168559253118259265188559264168259276198559272108259289348559285198359294198559294178359302118559304128359316308559313108359325248659322148359335228659334168359342886593421183593552386593561983593662286593641883593741486593741283593829865938522835939316865939415835940420865940314835941722865941617835942733865942315835943830865943314835944626865944310835945417865945311835946725865946314835947624865947298359484158659484238359492987594941583595021387595031183595141687595131283595231687595231583595352287595331383595441687595431383595563287595593183595631387595621283595741987595741683595883687595831183595941987595921483596063187596041983596162787596161983596242087596241283596363087596341483596431687596442083596562487596531584596641987596651984596731487596731584596831488596841784596931288596931484597041688597021084597131488597131384597293788597241384597352188597361984597441988597461884597541988597531484597662388597621184597731388597731084597821088597841584597951888597931284598051388598031384598161888598121284598231388598221284598331288598321284598431388598462584598541588598541784598641488598641784598762688598741684598841888598841584598941788598931484599031588599041384599194188599142285599241988599231385599331688599341585599421389599416855995211895995288559963158959962128559973148959973128559984138959986168559996278959996188560009408960003128560011040896001623856002146589600252685600314658960033158560044138960044178560054148960053178560063158960065188560073138960073148560083118960081149856009416896009104085601021089601051985601151989601152385601241789601242085601341289601341785601431089601462086601541989601551986601621489601694386601741689601752186601821189601852086601961989601941586602041889602042086602141289602152186602252289602231386602341589602321086602431490602441586602561790602541586602631590602631186602731490602752086602831090602862086602931190602941786603031490603051586603129906031414866032423906032212876033419906033214876034415906034314876035311906035416876036312906036268760373159060376198760383139060383128760393139060394158760409319060409458760412129060413178760424169060426328760433119060433138760442149160442128760454199160453148760466199160463158760474129160473158760484149160483158760494209160493148760503159160503128760515199160513208760523159160524138860534199160534138860544179160543158860553149160553138860562109160567308860573139160577398860584139160583138860596199260593138860606189260603148860613149260614188860622119260623118860633109260634158860644159260642118860653129260652138860663139260664168860672129260672118860682129260682138860692129260696218860706259260703128860714179260714198860724179260723168860734169260734178860744159260743128860753149260752148860764139260764178860774229260776218860783139260785218860794159260792989608041993608016896081169360813128960822893608251589608321293608352089608431293608441889608561693608541689608661893608631389608731293608731589608862393608841789608952693608941789609031593609041689609141794609141389609231794609231389609351894609331289609431494609431289609511499460954148960961040946096413896097519946097313896098523946098312896099420956099214896100417956100298961016209561013158961025199561026268961039439561034188961045219561049428961055209561054178961064159561064218961074209661075188961085219661084158961093139661093148961102109661103139061114199661115189061124159661124179061134159661133119061143119661144149061155209661153139061166209661163109061174179661175189061185159661183129061194149661194159061202129661205179061212149661216269061223149661223159061234169661232109061242696612421290612561996612552090612631297612652190612741597612751990612894597612862090612931797612993790613063297613051890613131398613112569161324199861326239161332129861333119161343149861341145916135315986135167891613631598613616669161373159861379429161383149861382183916139312996139420916140320996140318916141413996141416916142413996142316916143315996143413916144313996144632916145730996145622916146739996146621916147313100614721392614841910061482139261493131006149213926150314100615031192615141810061513119261523111006152418926153415100615341592615421110061544179261552131006155725926156416100615641492615721110061575199261582131016158179261596211016159299261603121016160417926161419101616152692616231610161624249261634171016163417926164312101616441492616521410161654169261664171016166299261676211016167413926168521101616828926169291026169213936170419102617031493617116102617131293617231210261724149361735151026173520936174520102617421193617541810261754189361764161026176521936177313103617716936178315103617841593617941710361799529361804171046180414936181416104618141694618241910461824159461834131046183417946184313104618441694618531210461853149461863121046186418946187414104618731494618841310461883109461893131056189725946190312105619051995619141910561914209561922141056192418956193291056193315956194315106619421095619562610661954239561964181066196418956197942106619772695619841710761984199561994211076199417966200419107620052096620151810762012119662024151076202520966203314107620331396620431310762042149662055181086205316966206417108620631296620731110862074159662084141096208416966209313109620941496621031010962105199662115181096211517966212312109621251996621341510962134149662145171106214519966215626110621573196621631511062167309662172101116217515966218212111621861996621952011162194159762204191116220317976221521111622151597622251911262224119762236201126223299762249371126224412976225518112622551598622641911362264149862271256113622749986228623113622851598622931111362295209862301145113623051598623116781146231414986232166611462322898623394211462332898623421831146234417996235419114623552099623642011462363139962373181141999623841612418996239316132129962404131431299624163215419996242622163199962436211794410062444192813100624521329727100624621321084710062472132111252100624831121283310062493112131147100625041821412531006251415215114710062524172161049100625372521712511006254414218114310062555192197291016256419220197710162571722116731016258292227341016259417223115710162605262241772101626142422561910162624172261986101626341422725102101626441622812531016265292292399101626641323020781016267282311366102626841923234145102626921323339155102627031423420821026271312235136010262724142361970102627352023728111102627421123815701026275418239124810262765212402310110362774192411363103627816242198010362794152431986103628095224411431046281419245176810462824142461051104628341624714691046284415248187910462854172498421046286416250741104628731425110551046288418252847104628931425383810462903102541258105629141925519691056292725256188410562935192571050105629442025812531056295418259830105629631526073710662974192612712110662982102621560106629942326373010663004182641890106630172626520951076302419266187710763034192672811810763044172686025710763055202692410810763062112701570107630752027113541076308313272125410763092142739451086310419274208310863113162752380108631231227618711086313415277176210963144192782497109631541627910451096316414280115710963175192813714110963185172821977109631951928323101109632041428493611063214192851145110632251928624102110632373128723911106324730288135411163254192891052111632651529029150111632761929115711116328415292492311116329317293136311163305152942813811263314192951046112633241129626108112633329297271071126334412298301191126335515299115111363364192100271311136337414210117671136338492102944113633951521032510211363405202104187211363415152105125511463424192106104411463434142107104411463442821082289114634528210974308114634641721101249114634752021111365114634831321122598”

4.2.4.3 Pairing Abjads of verses along with chapter, verse and words with both text types of Quran: Evidence

The exact same coding pattern of the previous letters pairing code, Evidence 4.2.4.2 also exist if we use the Abjad numbers instead of the natural numbers of letters as before. In this chapter, I present this abjad based coding, Evidence 4.2.1.1, as it has the exact same coding pattern of the presented evidence code, Code 4.2.4.2 but now with abjad numbers instead of natural letter numbers. I will consider this particular code as evidence as it has the exact same coding pattern as in Evidence 4.2.1.1 but with abjad numbers.

In this code, basically we first replace each word in a verse with its corresponding abjad number. We then concatenate them per verse along with their corresponding chapter index, verse index and number of words of that words, which gives us representation numbers of each verse using abjad numbers. We do this for both text types of Quran (6348 and 6236 verses). We then pair the two vector that contains the representation numbers of each verse of both text types. As you might remember, the longer vector, wraps the shorter vector as if a circle from its beginning. The resulting big number is multiple of 19. Here is the proof.

x<- nQuran
tv <-c()
for(j in 1:nrow(x)) {
  #for all the numbered verses
  tmplett <- AbjadSeqofaWordSumValue(x$text[j])
  tmplett <- paste0(rev(tmplett), collapse = "" )
  tmp <- paste0(x$chapter[j],x$VerseI[j],x$vwords[j],tmplett)
  tv <- c(tv,tmp)}
tmp1 <- tv
#now for unQuran
x<- unQuran
tv <-c()
for(j in 1:nrow(x)) {
    tmplett <- AbjadSeqofaWordSumValue(x$text[j])
    tmplett <- paste0(rev(tmplett), collapse = "" )
    tmp <- paste0(x$chapter[j],x$VerseI[j],x$vwords[j],tmplett)
    tv <- c(tv,tmp)
    }
# PAIRING both 6236-6348 
tmp <- paste0(tmp1,tv)
# Concatenate
tmp <- paste0(tmp, collapse = "") 
# Test if multiple of 19 with mod 19:
as.bigz(tmp) %% 19 
## Big Integer ('bigz') :
## [1] 0
cat("Number of digits of this big number is", nchar(tmp))
## Number of digits of this big number is 510431

As we witnessed, the 510431” digits length big number is multiple of 19. It can be seen in the end of this chapter below. One can just copy the big number and paste it into a web based big number calculator and test it herself.

It may be helpful to understand what is going on in the coding if I print out the outputs of a few steps using the first verse, Basmala, of Quran as follows:

x<- unQuran 
j<-1 # First verse, BASMALA is input
tmplett <- AbjadSeqofaWordSumValue(x$text[j])
cat("Abjad number for each words of Basmala: ", rev(tmplett))
## Abjad number for each words of Basmala:  289 329 66 102
tmplett <- paste0(rev(tmplett), collapse = "" )
cat("When indexes and words information added: ", 
    paste0(x$chapter[j],x$VerseI[j],x$vwords[j],tmplett))
## When indexes and words information added:  11428932966102
#For 6236 verses we get the same number
# as the first Basmala is numbered. 
cat("Pairing of Basmala verse representation is: ", 
    paste0( paste0(paste0(x$chapter[j],x$VerseI[j],x$vwords[j],tmplett),
                   paste0(x$chapter[j],x$VerseI[j],x$vwords[j],tmplett)), collapse = ""))
## Pairing of Basmala verse representation is:  1142893296610211428932966102

I will add one success and two trials into the global counters for the global probability calculation in the end.s

global_tested_nums <- global_tested_nums + 2 
global_success_nums <- global_success_nums + 1 

Lastly, below is the “510431” digits length big number of this interesting code.

“11428932966102114289329661021242322026583124232202658313228932913228932914395569114395569115464038126321546403812632163681331611636813316117992237155187912101555617913001799223715518791210155561791300281712842893296610229766019952123145475029171210829640387157222104516279121076601995212314547502111222245845152908847618843162797211829640387157222104516279121282454573247901911067212122224584515290884761884316279721311162311395704113971557730779151213824545732479019110672141210207738113123391162151161831106610402141116231139570411397155773077915121511198454783295689214690142962151210207738113123391162151161831106610402161063647236327404798797667412161119845478329568921469014296217127887843817738110416613710401839021710636472363274047987976674121811224108921381032905513175140708218127887843817738110416613710401839021976363110627145963221911224108921381032905513175140708220192063110618745963218791611471381429161987514070822076363110627145963222116578108921705213842541637708921389879113770822119206311061874596321879161147138142916198751407082227181111590105474926622216578108921705213842541637708921389879113770822311509784710496101215289790879167223718111159010547492662241735831137190671303667074941121215125257174159061522411509784710496101215289790879167225633931125120621302251735831137190671303667074941121215125257174159061522619394677247790829890797902091693082801371951429012272266339311251206213022725314320501106651345217737663114214815597170895347758129133969933335227193946772477908298907979020916930828013719514290122722812956190192907977907412628414217112282531432050110665134521773766311421481559717089534775812913396993333522923596497616551011190308117290788451142909463148582103290103741229129561901929079779074126284142171123020255510516660903808857590273488127110138812129051057230235964976165510111903081172907884511429094631485821032901037412311342147525414212244128258858786587701312312025551051666090380885759027348812711013881212905105723234691965125918968174974141329035874170613830874590963149128881490613454755156115398791508232134214752541421224412825885878658770131233393323278404773173573178405717086620674228230779148247901395628698791122192121883415711012514983166512333469196512591896817497414132903587417061383087459096314912888149061345475515611539879150823420948456710329021613651766241412516567690667910167912343933232784047731735731784057170866206742282307791482479013956286987911221921218834157110125149831665123513729465409854052054016044951668756110235209484567103290216136517662414125165676906679101679123619150320521750813220214241477540124103290419073074111236137294654098540520540160449516687561102372859631411416113150220741201148617696154909650413872510329010461166222131707237191503205217508132202142414775401241032904190730741112381525551051521141292111371101115540561434514623828596314114161131502207412011486176961549096504138725103290104611662221317072391210918145171591413281140311411382391525551051521141292111371101115540561434514624023916510474624114710385391012141619013171131159991511591084511131240121091814517159141328114031141138241133929077689131033215475751661817072412391651047462411471038539101214161901317113115999151159108451113124219106290557539710703377515181205965789424511314511187242133929077689131033215475751661817072431968415178001032909680902932241879572819301264011642431910629055753971070337751518120596578942451131451118724411289440115611548349120790456202441968415178001032909680902932241879572819301264011642451713145371556861112047217019100531122124962418124511289440115611548349120790456202461069196452821026746573530779724617131453715568611120472170191005311221249624181247143442814187911001705614415709283126211247106919645282102674657353077972481863728171591424130737730137483371707123548843104248143442814187911001705614415709283126211249859649713987375139499372491863728171591424130737730137483371707123548843104250738211030464414157164250859649713987375139499372511065611245488649725157223514269825173821103046441415716425281062110322676316332560425210656112454886497251572235142698253833046102247177961016791253810621103226763163325604254122321101370671705614415709283126211254833046102247177961016791255194064537104961316374569614237321190120190420315751425512232110137067170561441570928312621125618102026290437909618155012477680476232406319017470725619406453710496131637456961423732119012019042031575142571016064974063113582552416243170725718102026290437909618155012477680476232406319017470725812102749781901342141540753331161327072581016064974063113582552416243170725989761907507690180207540259121027497819013421415407533311613270726078651904684541164627072608976190750769018020754026127289440115617048327312490810790251618273414951341764251141011114611181116131707261786519046845411646270726215160649729718412136626041850146801161157070726227289440115617048327312490810790251618273414951341764251141011114611181116131707263797619050676906835402631516064972971841213662604185014680116115707072641810362367810610274741841422905714312117014511121701017264797619050676906835402652024913768190133022149683664812057505189613734671064218170726518103623678106102747418414229057143121170145111217010172661830678431429021197779111021975140741121013797779111626620249137681901330221496836648120575051896137346710642181707267282441032909773766307905165758711250140104131575952958142421831003261181116631707267183067843142902119777911102197514074112101379777911162686054084167437501391212153602664143667898750669018042621276615514085314190131331248101174365117419531311341461386231389010328528181813222811551912011034280116115707072682824410329097737663079051657587112501401041315759529581424218310032611811166317072692413145371556863724712424915513014683293689190200388177979879151269605408416743750139121215360266414366789875066901804262127661551408531419013133124810117436511741953131134146138623138901032852818181322281155191201103428011611570707270159561909541934113522411307246246407711135270727024131453715568637247124249155130146832936891902003881779798791512711395290540659170669101477507690886540271159561909541934113522411307246246407711135270727212731309837526149390150482791580140272139529054065917066910147750769088654027396601027716473062711022402731273130983752614939015048279158014027420130907751687771311921521383071117513116651181116131707274966010277164730627110224027523702412687506212722237108131307571465613115418172222817513827520130907751687771311921521383071117513116651181116131707276181242660922513813075714656131924181722228175138276237024126875062127222371081313075714656131154181722228175138277175356631151581617083335115418172222817513827718124266092251381307571465613192418172222817513827824246324780214141382138963153117573957037103211107663130757146561312781753566311515816170833351154181722228175138279109165104184372967271919707072792424632478021414138213896315311757395703710321110766313075714656131280116561904172864876638770880101426128010916510418437296727191970707281375961111113664766915902671965782958935107196572889569371248905717130572689575076901985605402811165619041728648766387708801014261282192065121141769035954066912361353907111090113516562823759611111136647669159026719657829589351071965728895693712489057171305726895750769019856054028323656112262124711817066488431014138872419176317089213898791137708283192065121141769035954066912361353907111090113516562849216473264115066512063828423656112262124711817066488431014138872419176317089213898791137708285111016324557102324542063110714128592164732641150665120638286241488175527082281751261715917947661249070620254072454488820126286111016324557102324542063110714128723596314166110592418466720160806612421411301295332282551801442872414881755270822817512617159179476612490706202540724544888201262881369196452821021471034742585829042288235963141661105924184667201608066124214113012953322825518014428910691964589102675611539879728913691964528210214710347425858290422902911664971501713288654064414157164119171149218498343716121140663253231312626511352707290106919645891026756115398797291157654979415402759025112593711561631711135270729129116649715017132886540644141571641191711492184983437161211406632532313126265113527072924959611111136647804305412701876296559061732150750190902112187476245487463385017028817536272477571685741551562260901503911265251986524915402921576549794154027590251125937115616317111352707293134064537804165770111839965590879167293495961111113664780430541270187629655906173215075019090211218747624548746338501702881753627247757168574155156226090150391126525198652491540294289863971162471112325142131432967417219521677494290531504683238190247454116462140294134064537804165770111839965590879167295101624125134766195321110189144295289863971162471112325142131432967417219521677494290531504683238190247454116462140296263921106623573073574159151307791110101413290841557123466124904235977296101624125134766195321110189144297271057734271802110180410082903219011091590669751101366884331751236790811329726392110662357307357415915130779111010141329084155712346612490423597729830196510511329066749861501301557123513917222433721618843146138668843987514070829827105773427180211018041008290321901109159066975110136688433175123679081132991110274978190134214154049611674140299301965105113290667498615013015571235139172224337216188431461386688439875140708210027196510511627311113130347134183905162272211381841135224113072462464077111352707210011102749781901342141540496116741402101172555105147757714260907266612483723690471511302101271965105116273111131303471341839051622722113818411352241130724624640771113527072102910641507270544438511862102172555105147757714260907266612483723690471511302103252064330272320518049077114711511132036582052879196241101422995382103910641507270544438511862104182565182529627123566753152110921362758171901302104252064330272320518049077114711511132036582052879196241101422995382105124218066131107251301512658171902105182565182529627123566753152110921362758171901302106103283283104746341261139140210612421806613110725130151265817190210710162317663213539075780879821071032832831047463412611391402108222063111611562176642345441479190390752155712346612490296597721081016231766321353907578087982109742067836236750741108731908379035419071201471402553710554161266753321390710634547272816274464113668670011153510892147418139020147653612371811108847299142206307411106191300471919011041183641486210922206311161156217664234544147919039075215571234661249029659772110122067836810661249058351498964221107420678362367507411087319083790354190712014714025537105541612667533213907106345472728162744641136686700111535108921474181390201476536123718111088472991422063074111061913004719190110411836414862111138177342718412021493225433198791171121111220678368106612490583514989642211225105194170672321906551100722629081090170975165137454369030779120412112138177342718412021493225433198791171121131931432050110665154071576796812451166716907604121132510519417067232190655110072262908109017097516513745436903077912041211417350374690666090904710385399035665154071211419314320501106651540715767968124511667169076041211518133778301841353314469613290116100613564985167041211517350374690666090904710385399035665154071211633314320501106651248664214181922381397546241769023612490733021627690330364543690730102116181337783018413533144696132901161006135649851670412117173025964366516612441881090281551476441415716421173331432050110665124866421418192238139754624176902361249073302162769033036454369073010211818255510513184131301474503517167190328964480144211817302596436651661244188109028155147644141571642119171314537155686372071242091151581765191319042211918255510513184131301474503517167190328964480144212031117695781311875610778146181570206317911317704544965132011056500382537320110382500565372120171314537155686372071242091151581765191319042212130102077383790816179690757513265651757141678099014610696930516610816013097196212131117695781311875610778146181570206317911317704544965132011056500382537320110382500565372122121501376651661462044318212796717121223010207738379081617969075751326565175714167809901461069693051661081601309719621231460735501038539904135321264166170114421231215013766516614620443182127967171212411166703514617224291070810385398621241460735501038539904135321264166170114421252422217644363104183110818157017790791131770168627661516720631791137212511166703514617224291070810385398621261092102120491379675131413625221262422217644363104183110818157017790791131770168627661516720631791137212731350374690669050411719034741766887396501166195113051587241838237561401410862127109210212049137967513141362522128159484514773109671626784210850145450779121283135037469066905041171903474176688739650116619511305158724183823756140141086212912232110137067170561441570928312621121291594845147731096716267842108501454507791213018406453745660637104961423732119012019042031575142130122321101370671705614415709283126211213119106289913113113209613183171124611315764932072594437072131184064537456606371049614237321190120190420315751421322210432726822042221551218259411361702591819017149817154844315470721321910628991311311320961318317112461131576493207259443707213330371782827734110155401715963009613183293681359190117290413149237706104202259131707213322104327268220422215512182594113617025918190171498171548443154707213414181211451719153225321844390212259360707213430371782827734110155401715963009613183293681359190117290413149237706104202259131707213517289440451711614082222585017546136196502301612532135141812114517191532253218443902122593607072136161091254517198110454201432155446135297135579253213617289440451711614082222585017546136196502301612532137182201208379062969024614019514590322597512012129621371610912545171981104542014321554461352971355792532138923223253113113120735131701213818220120837906296902461401951459032259751201212962139172264973289611195901906651621119467259811221399232232531131131207351317012140272263511420371762182593442561261388690532419713170147718810087013205104121401722649732896111959019066516211194672598112214115206781115473752241964824136103010446450214127226351142037176218259344256126138869053241971317014771881008701320510412142156519071471492597532130816351716831442142152067811154737522419648241361030104464502143312263511413513624303124790149417471561164174711019417621825941884792884768921432143156519071471492597532130816351716831442144191812111766325501904517244357417184753141572981312144312263511413513624303124790149417471561164174711019417621825941884792884768921432145101333511410976690119966610972145191812111766325501904517244357417184753141572981312146148163511420296193872682531766905201302146101333511410976690119966610972147305961111113664766901293154601309719666411414921303517167811019417621825951592412147148163511420296193872682531766905201302148152067811154737522419648241361030104464502148305961111113664766901293154601309719666411414921303517167811019417621825951592412149216503004132190291279671651301167844157712082411429018720621491520678111547375224196482413610301044645021504525832614466511629206671476619791110322674715718711019213032748290220321164704411681544732017032792142110320513764621477621502165030041321902912796716513011678441577120824114290187206215134206111111366472479013956236454414791575148012351041524280138509341161407137276142903453226010421514525832614466511629206671476619791110322674715718711019213032748290220321164704411681544732017032792142110320513764621477621523210621207027117190344176906887396872137475917475774754514755247941165245441479181196215234206111111366472479013956236454414791575148012351041524280138509341161407137276142903453226010421531420651139556135391571094166142145450779121533210621207027117190344176906887396872137475917475774754514755247941165245441479181196215477719052611122290139215414206511395561353915710941661421454507791215519314320501106651124666241148341611242650921119862155777190526111222901392156175961111113664722290168622801385093411612035189621561931432050110665112466624114834161124265092111986215731865196170570477973135111113597779132161701718671514801235104152428013850934116120351896215717596111111366472229016862280138509341161203518962158175964837041216110454216113463170446150297150342612158318651961705704779731351111135977791321617017186715148012351041524280138509341161203518962159675637405349811067215917596483704121611045421611346317044615029715034261216011384110665116332559898791171121606756374053498110672161131026311063032448661029054012054337216111384110665116332559898791171121621238450811782281099024611671790322234216213102631106303244866102905401205433721631033046586552138147539702791216312384508117822810990246116717903222342164953645732592479052715567216410330465865521381475397027912165241505216613181148596481055111562111711744311170665819028820251216595364573259247905271556721662023821166205674549017168417690564949013941526791512166241505216613181148596481055111562111711744311170665819028820251216711289440581554091477514241079132216720238211662056745490171684176905649490139415267915121681317414814366155155673015145430779151216811289440581554091477514241079132216991216453780416577031966952169131741481436615515567301514543077915121709289329113236311936102217091216453780416577031966952171432661764421038142629311082507861250909650845276103271005190142906688471422104324190613441167293101111810385397309051217192893291132363119361022172318043186657124651425180426670197779122042651130598797663012161666090171090142962172432661764421038142629311082507861250909650845276103271005190142906688471422104324190613441167293101111810385397309051217312974798580421448079190480791603701217331804318665712465142518042667019777912204265113059879766301216166609017109014296217423282908664547155669187662657709161961135733225815136480791137217412974798580421448079190480791603701217517102809056401101687937227010329081571421711217523282908664547155669187662657709161961135733225815136480791137217611596314166110543574361093119221761710280905640110168793722701032908157142171121772247537321266315571436511517241522321386688414807514070821771159631416611054357436109311922178182663112512062130718532180314323074159030779157621782247537321266315571436511517241522321386688414807514070821791553217510516553441841422905798791171121791826631125120621307185321803143230741590307791576218025258128666511155411117537100312101010170661240736478988481486170248922180155321751051655344184142290579879117112181298177381923718756661453728232112901174167171591797245490668841526791512181252581286665111554111175371003121010101706612407364789884814861702489221821128211033812113588105289790879167218229817738192371875666145372823211290117416717159179724549066884152679151218314865011204549011187915714145487665375021831128211033812113588105289790879167218451627457320179167947410481059039087702126219644171571483349619813359218498343716151101024171594601438329368919023310612796711328044351233100218414865011204549011187915714145487665375021853881773115750764851702592629011707501224622429554320616903516017059459810911324123957190312170422987911711218551627457320179167947410481059039087702126219644171571483349619813359218498343716151101024171594601438329368919023310612796711328044351233100218699561906747112431290962186388177311575076485170259262901170750122462242955432061690351601705945981091132412395719031217042298791171121871663111010942940016114281162051477731008702170422218799561906747112431290962188131501806651107791110546172175117411702188166311101094294001611428116205147773100870217042221891625812866651115541111107209542713413690681170218913150180665110779111054617217511741170219015956190192907911104226117217042298791171121901625812866651115541111107209542713413690681170219132596510519081054357358109181148517018012099190791116801529015934011071051150711705255321911595619019290791110422611721704229879117112192449761967041110666651105333616222437301626622480152901593401107105171962555361503091704685090469171193829588741109150521923259651051908105435735810918114851701801209919079111680152901593401107105115071170525532193175701751214940602125702106851631214113087111708219344976196704111066665110533361622243730162662248015290159340110710517196255536150309170468509046917119382958874110915052194655661751714176672770714111662245013990227497964371014117244854031490102650908446509047241851663906642241141656416218015717048325115075101116614085934979093551814181117275903921941757017512149406021257021068516312141130871117082195175964975741427890391488100418447751221384583721956556617517141766727707141116622450139902274979643710141172448540314901026509084465090472418516639066422411416564162180157170483251150751011166140859349790935518141811172759039219627574190665141890449414511902331061117904498085323310648171557151307212017721961759649757414278903914881004184477512213845837219713605203166518813765779166102905442197275741906651418904494145119023310611179044980853233106481715571513072120177219825392217706625971319560741828013812498237561903055728705189086111715185882198136052031665188137657791661029054421996258128666131463131219925392217706625971319560741828013812498237561903055728705189086111715185882200151062110321311114631316595925354763141858822006258128666131463131220122631110665115466514170485415721155621704851702816862805382805362201151062110321311114631316595925354763141858822021424920665113249141875373766102902442202226311106651154665141704854157211556217048517028168628053828053622037320431866511546651428013810194180701207509657545071370214342905210362211770170509073112142413489101705317821307199714190179266907117710511507117083501042418336545375090731121739131653524245422031424920665113249141875373766102902442204306747115635474381013143066155810905874742903837246377801114214510801705875064222047320431866511546651428013810194180701207509657545071370214342905210362211770170509073112142413489101705317821307199714190179266907117710511507117083501042418336545375090731121739131653524245422052692212013790510577061938280641124661008751901321782262909111809516217010022053067471156354743810131430661558109058747429038372463778011142145108017058750642220612258128666516617541428825189089854022062692212013790510577061938280641124661008751901321782262909111809516217010022072473190837903547969045225314690142170921305774100066100823113507822207122581286665166175414288251890898540220814282773157123837961239690452253146901412208247319083790354796904522531469014217092130577410006610082311350782220981023407289811527567220914282773157123837961239690452253146901412210259644611115466514511120115541111120196115541111116905031705255290669342210810234072898115275672211177623517137904111066325965590141105901429622112596446111154665145111201155411111201961155411111169050317052552906693422121417620317217773971961841032901404467082212177623517137904111066325965590141105901429622131281108981555741131706665013514070822131417620317217773971961841032901404467082214111102967266144114141955209014296221412811089815557411317066650135140708221516102809056401101687937106161906429879117112215111102967266144114141955209014296221612789466512284944744176905071312216161028090564011016879371061619064298791171122171727867366472729161431112909609066466513212163522171278946651228494474417690507131221820204318661314194176906616546966716905076031262902218172786736647272916143111290960906646651321216352219207112123219031772187562315087979879190932965530782067221920204318661314194176906616546966716905076031262902220496503004132190297275813990951118719879166991071013494459417690418791329511114795111813114262108141454155941056602153666522446142712220207112123219031772187562315087979879190932965530782067222130312663405132663404501159879732714641887104810554519290637791570471778910415151041222149650300413219029727581399095111871987916699107101349445941769041879132951111479511181311426210814145415594105660215366652244614271222222150766131810905874713359218498400241810906714113029674217722223031266340513266340450115987973271464188710481055451929063779157047177891041515104122232559631497150729050017321417511469081017321632511469022517562170422222322150766131810905874713359218498400241810906714113029674217722245769196452821027384396901874191473011753069120150618965485112412028041865710437561902235726612422395418112801447306661021201002329553113095531280536120177222425596314971507290500173214175114690810173216325114690225175621704222225162581286726664826967661029026216797987915122255769196452821027384396901874191473011753069120150618965485112412028041865710437561902235726612422395418112801447306661021201002329553113095531280536120177222626115619044390667277018713029674218324690223593171247232541136130347871120177222616258128672666482696766102902621679798791512227267894665161166311421999021515072798109157810751301304921201838439690222726115619044390667277018713029674218324690223593171247232541136130347871120177222839138617517141778758136289419072282411406713642560908101361121134186514853753642565908101418210641899248537222826789466516116631142199902151507279810915781075130130492120183843969022292774526500206651663015189054266478227441876337889901525957111113088912018322293913861751714177875813628941907228241140671364256090810136112113418651485375364256590810141821064189924853722301622750818211115466514281157750617684889070817722302774526500206651663015189054266478227441876337889901525957111113088912018322311415018072142625419136095119210756651037223116227508182111154665142811577506176848890708177223214881286721984824313771061629010696613773122321415018072142625419136095119210756651037223313258128666131981315062786921669010282022331488128672198482431377106162901069661377312234715018066131171124572234132581286661319813150627869216690102820223540789472212165300429165741570911312135175090261109569832936810670513059066730415205185483731610362487526172235715018066131171124572236461058451476622484968861116622450788513115662111662216132112013166221613269251323219128117085190483712267873982026911712236407894722121653004291657415709113121351750902611095698329368106705130590667304152051854837316103624875261722373020617678662245666221615195151685511566211114513112151747841876903543811114513122374610584514766224849688611166224507885131156621116622161321120131662216132692513232191281170851904837122678739820269117122384515032052665115466514710401104549017088471706656093419664122107371959701847501909691112025813739832973982628911621525797082238302061767866224566622161519515168551156621111451311215174784187690354381111451312239335963149715072221903879083293681061507190798675042910714087027313851136111189116215257970822394515032052665115466514710401104549017088471706656093419664122107371959701847501909691112025813739832973982628911621525797082240643025964366511546651442985141570702170621111021937516455715662111913136140112020220713175057073811647358637484614013114232190530314295473623511711611074505120612015110497113047922403359631497150722219038790832936810615071907986750429107140870273138511361111891162152579708224125812596437242924690230131170621118910827825775062782487521997215055279722416430259643665115466514429851415707021706211110219375164557156621119131361401120202207131750570738116473586374846140131142321905303142954736235117116110745051206120151104971130479224247881286665115410002519041150665115439454104241811017952437397137543513226154231106149111166140251905617152616907151013117062372242258125964372429246902301311706211189108278257750627824875219972150552797224325249110109429512309771116309207110577109585148775617041152579511706231224347881286665115410002519041150665115439454104241811017952437397137543513226154231106149111166140251905617152616907151013117062372244353025964366511229415173757630355757110179217411667216513215204130010958515201105615113290640572244252491101094295123097711163092071105771095851487756170411525795117062312245861165159116163558110996224535302596436651122941517375763035575711017921741166721651321520413001095851520110561511329064057224615596483704120061661008531782274731511201312246861165159116163558110996224727789472396902469023041901706211185313180512107541512931111997215055279722471559648370412006166100853178227473151120131224866311101094295116462248277894723969024690230419017062111853131805121075415129311119972150552797224976561904179066727702249663111010942951164622502858631142721106142110910736665165540453667521147790811751260908107914160071225076561904179066727702251915018066511546610290544225128586311427211061421109107366651655404536675211477908117512609081079141600712252167295287912727359533510461191101661110741701902252915018066511546610290544225354106415072135171324435621554221511212669085511066102905813281471389383256217042251580351316610290581918157375921387011167690312629010241600712253167295287912727359533510461191101661110741701902254431501377232190954267214017190762317018666511311029013541676951231091141611213586611389144690572104665110775137225454106415072135171324435621554221511212669085511066102905813281471389383256217042251580351316610290581918157375921387011167690312629010241600712255301965105190467509051137483262371163162081123262901459584048151951651107751372255431501377232190954267214017190762317018666511311029013541676951231091141611213586611389144690572104665110775137225660384110726675373595143217595906066177961016791131744428781115311381159879711221511351713295589211285168190321001361347096100180955021702575426651131964462001512256301965105190467509051137483262371163162081123262901459584048151951651107751372257153921771103981979082931611281253138744702167722576038411072667537359514321759590606617796101679113174442878111531138115987971122151135171329558921128516819032100136134709610018095502170257542665113196446200151225827232110910706661061032574874917142661547332181151110121664134402153666753183225815392177110398197908293161128125313874470216772259942112077141130492664124502259272321109107066610610325748749171426615473321811511101216641344021536667531832260522244119066106938416631142300901419190215111810649445941769012190791931416631142195216774942905315046860891735666909013587211091796132145022609421120771411304926641245022612210584539445637635379582315642151132904188123898791171122615222441190661069384166311423009014191902151118106494459417690121907919314166311421952167749429053150468608917356669090135872110917961321450226250105114117103435371038539295136311433214590322933775547706241150758321294607417019010329047539904135963711517063118749113236316622622210584539445637635379582315642151132904188123898791171122632415018072362623164731458118468112144931017010419053546210495902273122635010511411710343537103853929513631143321459032293377554770624115075832129460741701901032904753990413596371151706311874911323631662264246919645282102671402412879091414479930779728741140290858987914666226424150180723626231647314581184681121449310170104190535462104959022731226543106217729317230074148712739084816719043342166131259131457295213146638741212259131701121664075120790259127414160071226524691964528210267140241287909141447993077972874114029085898791466622666731432050110665114113135462151791425404131101042411157171162092694111575257052914041123111156932321315687275793213193260131577540111566652745276667103861131582110622213151102407617226643106217729317230074148712739084816719043342166131259131457295213146638741212259131701121664075120790259127414160071226739789466511471414911305402114535501101045406142525090278138013114214910642131496771314874281102612022591317072267673143205011066511411313546215179142540413110104241115717116209269411157525705291404112311115693232131568727579321319326013157754011156665274527666710386113158211062221315110240761722682415013772321120961721556147509014313285315590661029012329679157022683978946651147141491130540211453550110104540614252509027813801311421491064213149677131487428110261202259131707226924131453715568637247124249757113791238415383154066102901232967912269241501377232112096172155614750901431328531559066102901232967915702270118810607271148819990810133139613622702413145371556863724712424975711379123841538315406610290123296791227139392177293172898132011037031125705391796031152275906558329368106371422217624076174812365544831987911711227111881060727114881999081013313961362272273025964372119391087013110105788139100215585902369013196614411414123296791576227239392177293172898132011037031125705391796031152275906558329368106371422217624076174812365544831987911711227335115619044390667277011892519536218096191541253105117250909635288814906131306909058354765173212273273025964372119391087013110105788139100215585902369013196614411414123296791576227430621060665115495224751321318536686951143497371032909085587522414229023898791171122743511561904439066727701189251953621809619154125310511725090963528881490613130690905835476517321227513150137729179513251447243231741114440122753062106066511549522475132131853668695114349737103290908558752241422902389879117112276166743329304773181141718410441696321901044262276131501377291795132514472432317411144401227715342901091471556613195090139072359067147227716674332930477318114171841044169632190104426227820812596437254190180316908109142282410925715241626413512278153429010914715566131950901390723590671472279281426314971019681090637476614141432686473618109063747321902966106551301002279208125964372541901803169081091422824109257152416264135122803015076613181090637471211421573115879566190107270125103290100361531661029030679145122802814263149710196810906374766141414326864736181090637473219029661065513010022811713145371556863724712424915517226129310312329679122813015076613181090637471211421573115879566190107270125103290100361531661029030679145122824569196452821021477596664125217041115546207901021191702342541136645234570113921389875013190401102674115661322123123411779122821713145371556863724712424915517226129310312329679122831155130150203172626228234661582283456919645282102147759666412521704111554620790102119170234254113664523457011392138987501319040110267411566132212312341177912284191314537155686372471242497564414157155561153987915122841155130150203172626228234661582285141965105123490112419136650898791171122851913145371556863724712424975644141571555611539879151228617142637142631138276170842573076690212838587701312286141965105123490112419136650898791171122871459651051908106015731541123533570671572287171426371426311382761708425730766902128385877013122881510363151482411905049654066419572957514228814596510519081060157315411235335706715722891291503205272662166651462246136587573193742310113792370232383432621701801226761014609476513210103271375153661241707903941233713018335150837814170235113378426014006012305135190145613069931329387701312949037978313751220118051559317961715613911574171131321956723720766546139115741146542661456143251423133713742312246851415034416690570298791171122891510363151482411905049654066419572957514229032150596437213754113647696346867372076654649749774113087393291131953336424414763401105105722901291503205272662166651462246136587573193742310113792370232383432621701801226761014609476513210103271375153661241707903941233713018335150837814170235113378426014006012305135190145613069931329387701312949037978313751220118051559317961715613911574171131321956723720766546139115741146542661456143251423133713742312246851415034416690570298791171122912831432050110723219078832112013706671411091725190414135710329047539904165229132150596437213754113647696346867372076654649749774113087393291131953336424414763401105105722922737167253135113722114429590136243031301433512689150229207904688433279122922831432050110723219078832112013706671411091725190414135710329047539904165229349392177110472128451306811287121157781115314152937253183907911104836129216147837253662717151175831253883411224824136142321916614031229327371672531351137221144295901362430313014335126891502292079046884332791329417122944939217711047212845130681128712115778111531415293725318390791110483612921614783725366271715117583125388341122482413614232191661403132957187491132363166329542893296610232961113164394296271235141454130873296171329718592706947231877375664143077915146294171191329032977187491132363166329811142903710329032011570031665132981113164394296271235141454130873299131091251132363132111028190366741113299185927069472318773756641430779151462941711913290330046674332930472531249050792202171909546632452150474521420566141495708416181017183907911221149807454415550941295454130887411133001114290371032903201157003166513301154545171253104908113470701761891407312533301131091251132363132111028190366741113302131567203166519521231861421147125333024667433293047253124905079220217190954663245215047452142056614149570841618101718390791122114980745441555094129545413088741113303162821164573321669087371231651460803077915133031545451712531049081134707017618914073125333041420431872805661426465729177907974063127330413156720316651952123186142114712533305981789841970154830782013033051628211645733216690873712316514608030779151330629325773077509051321903473072161211625311306817661029093195932550901690711043306142043187280566142646572917790797406312733072474118129729655511750745199182677922738904354071491529074310171673307981789841970154830782013033082411030272669010632592496695288814906134542471245088207909081212913033082932577307750905132190347307216121162531130681766102909319593255090169071104330911282773157809811361921022532027913309247411812972965551175074519918267792273890435407149152907431017167331063031877367648292384331024110302726690106325924966952888149061345424712450882079090812129130331118109125113236312021521714914311323631566630933111128277315780981136192102253202791331226102340661316641431096107101317159417690324544147911111471636612495513312630318773676482923843313261103027210641301724435741718413813157214845441482013652396652453121038131331318109125113236312021521714914311323631566630933141881775627142902023077916021081212153602664143667915133142610234066131664143109610710131715941769032454414791111147163661249551331511401907547843969018741979167331526110302721064130172443574171841381315721484544148201365239665245312103813133162011665113539045654010710866423411404549015341479141600713316188177562714290202307791602108121215360266414366791513317157467841109901251525533228255180138987503317114019075478439690187419791673318151036315148241190505029521231862097021903318201166511353904565401071086642341140454901534147914160071331925314320501107184136711901136711904837111301215337119012181612191106130331915746784110990125152553322825518013898750332021711212711907134990481120948190491209101902874452879010143933201510363151482411905050295212318620970219033212737166471956698450613590751323209066901807501909622760905839222317103133212531432050110718413671190113671190483711130121533711901218161219110613033222231432050110721032904753990411566615541773609041108751130332221711212711907134990481120948190491209101902874452879010143933232611029672195669848746736851364107690540471049810905404119050407563323273716647195669845061359075132320906690180750190962276090583922231710313324142581286728189012966682619664665105113033242231432050110721032904753990411566615541773609041108751130332511392203166131443131333669713033252611029672195669848746736851364107690540471049810905404119050407563326112321103613725937714519066513326142581286728189012966682619664665105113033277150180728729087891533271139220316613144313133366971303328181812114517110061244971904150135061202361642531701332811232110361372593771451906651332924284401901322227876729051667612951106127643141725611282612025311282151332971501807287290878915333035711212321903176651661249011531706506129011131308130132822381166349123814211945446511814020861833301818121145171100612449719041501350612023616425317013331151161807126915104904072021312072387510633312428440190132222787672905166761295110612764314172561128261202531128215133322022090693118166909723540532665128290140151171375403332357112123219031766516612490115317065061290111313081301328223811663491238142119454465118140208618333317321411906677013137165825310921101071408661202131333315116180712691510490407202131207238751063334202614137673122292724832521036142490324311311640104202131333420220906931181669097235405326651282901401511713754033351323212111020724020166512901113753170733351732141190667701313716582531092110107140866120213133368382110307842525612901133362026141376731222927248325210361424903243113116401042021313337201196701894704729014056217196701894704761791043649075033371323212111020724020166512901113753170733382143396843969025290531501491069597532665129011137531701333883821103078425256129011333972209662809014210633392011967018947047290140562171967018947047617910436490750334023166703514617224291070232141740667701315022307640408661202531334021433968439690252905315014910695975326651290111375317013341513164911045416133417220966280901421063342451965105190467509051478901260475074312966753487353309721966753220166958112505010090907316126290184731046131262413033342231667035146172242910702321417406677013150223076404086612025313343191526658826290184791702487418729075643902462712413343513164911045416133448650300706168268212665133444519651051904675090514789012604750743129667534873533097219667532201669581125050100909073161262901847310461312624130333452022654316689266342108312131664135290131331135150691513345191526658826290184791702487418729075643902462712413346940111055432753048843922533346865030070616826821266513347635281072662662733347202265431668926634210831213166413529013133113515069151334831156695510131122149373415401875641307791186499791110307791902804137755661150116613170133489401110554327530488439225333491340190754784396903197748983077911223349635281072662662733350111062203172255231561153987914833503115669551013112214937341540187564130779118649979111030779190280413775566115011661317013351710995744390130491750335113401907547843969031977489830779112233521516670351315406039073545590661241505705133521110622031722552315611539879148335377719047011122290139335371099574439013049175033542581411066550233487540257248187178130115124508210171903441769095321703354151667035131540603907354559066124150570513355151091254166576632369047139311417065133557771904701112229013933566277150661314431313356258141106655023348754025724818717813011512450821017190344176909532170335732226543172234431316660902078739231710373217570376632126321281137795415084543611130335715109125416657663236904713931141706513358166561128190321316434884725990468704543611335862771506613144313133592059631497150721407901001314681501407901314555249163359322265431722344313166609020787392317103732175703766321263212811377954150845436111303360146519071471711497110640237362597141336016656112819032131643488472599046870454361133611322746729879793712484820261142475133612059631497150721407901001314681501407901314555249163362136364723632896479563645436901054103362146519071471711497110640237362597141336397654976641475670454361133631322746729879793712484820261142475133641159649713992275139548704543611336413636472363289647956364543690105410336517339175806314287149879111088743984543690105537336597654976641475670454361133663215013772321904316616941511302621248878574157013426516619505113012447212032503373366115964971399227513954870454361133678105194170672321906551100336717339175806314287149879111088743984543690105537336836206517536611020810214290161100138987501521154444132612531267496519014161253624965190454369633683215013772321904316616941511302621248878574157013426516619505113012447212032503373369963120661315178697904233698105194170672321906551100337027817738192371875686116037661453783790757313167171591153668196679151337036206517536611020810214290161100138987501521154444132612531267496519014161253624965190454369633712920651753661102086612490114766124901120845490114745490511456586102421135573371963120661315178697904233722872051049454596510433238310666609040788317114654010010545466431515327141337227817738192371875686116037661453783790757313167171591153668196679151337313226491701763333122071591372107513113733732920651753661102086612490114766124901120845490114745490511456586102421135573374334019017058397131552138301790110174794213183175761707123429674540794239087171153651661301707337428720510494545965104332383106666090407883171146540100105454664315153271413375732845147750764461703375132264917017633331220715913721075131137337614339522328610385399090131411068666412913376334019017058397131552138301790110174794213183175761707123429674540794239087171153651661301707337729226351141351362430312479015515611641747110194176218259110884716188476892130337773284514775076446170337813952908379017951421606516312101412963378143395223286103853990901314110686664129133791810621772931724946510832751322147763071476629110337929226351141351362430312479015515611641747110194176218259110884716188476892130338091741481436615515551626733801395290837901795142160651631210141296338191216453780416577031966953381181062177293172494651083275132214776307147662911033821125812866613114275076904107913233829174148143661551555162673383149184573853532803012454014776307791513383912164537804165770319669533842440190754781773756774954270810328058901421603015145430779151338411258128666131142750769041079132338515150766131320906374746681637418233488803385149184573853532803012454014776307791513386242555105152364548813064348751132901951103122484132312923971151503386244019075478177375677495427081032805890142160301514543077915133871110584514775076907536611069117033871515076613132090637474668163741823348880338811651907147149259755606619413033882425551051523645488130643487511329019511031224841323129239711515033891026125264297701718764123751338911105845147750769075366110691170339025232120106066131300961034654190443111421107192716399625918146341295339011651907147149259755606619413033911359641110319726641475670454361113033911026125264297701718764123751339220596111111366473204978014649190661021205507045436111303392252321201060661313009610346541904431114211071927163996259181463412953393153611627628045441479190391496519879117113393135964111031972664147567045436111303394176503004119184686109630115666412170840497756116339420596111111366473204978014649190661021205507045436111303395132264973289637906108665089879117113395153611627628045441479190391496519879117113396348651904179066727709699128290293381110516659567621198621918651070117066560934787371246642614339617650300411918468610963011566641217084049775611633971424545733411201274293138414114046150506339713226497328963790610866508987911711339814102077375734945941769011247878114833733983486519041790667277096991282902933811105166595676211986219186510701170665609347873712466426143399177565104380489316276741654717911222047620121256339914245457334112012742931384141140461505063400106919645662531706512137914834001410207737573494594176901124787811483373401112619712246647141130492664124503401177565104380489316276741654717911222047620121256340211278673664710329047539904171340210691964566253170651213791483403233287722231357581110145436914268558341120517429697171120446810510340311261971224664714113049266412450340411406315402391126075771132107680340411278673664710329047539904171340535540841674375010812121056026641436678987502061551408669018042614290466690423268741617661551402340523328772223135758111014543691426855834112051742969717112044681051034061413351101626641249615646454369077107340611406315402391126075771132107680340715220907312429040334112012742931383293681623407355408416743750108121210560266414366789875020615514086690180426142904666904232687416176615514023408963315072321160810901974734081413351101626641249615646454369077107340918691964528210273321669087371231651460803077915134091522090731242904033411201274293138329368162341023103623610666101547541236977146708494290962185909655710902964157034109633150723211608109019747341131656510514439063104223345109047138901844406104560411763415731120906721073198791171134111869196452821027332166908737123165146080307791513412283311103150665119724531301941901531708776377089213819670855456558136375114849163412231036236106661015475412369771467084942909621859096557109029641570341321672064366513217910703191369957830585552575111236205134133165651051443906310422334510904713890184440610456041176341573112090672107319879117113414111501807259121522741856901410707341428331110315066511972453130194190153170877637708921381967085545655813637511484916341512223576661169272811511505514457013415216720643665132179107031913699578305855525751112362051341610976190665887364972086640014034161115018072591215227418569014107073417131871379011210382621145118081256536701341712223576661169272811511505514457013418152061379011270726211870633190483913699514234181097619066588736497208664001403419171091256612490323714771985459051232661084734191318713790112103826211451180812565367013420967327947773077919029021934201520613790112707262118706331904839136995142342112102717682771554187320272905010034211710912566124903237147719854590512326610847342216258128672321907883211201290103290475399041713422967327947773077919029021934231357419066514996953234458319879117113423121027176827715541873202729050100342454214754412825143424162581286723219078832112012901032904753990417134255704190333661033425135741906651499695323445831987911711342611660475103853910766426290132541344342654214754412825143427132492072142120248194110581048302902967913427570419033366103342823206511874111030776663278912909683318286692723697773941877027973428116604751038539107664262901325413443429152322041669669528881490613460247901325626734291324920721421202481941105810483029029679134301385317871110123810329035716019290103010434302320651187411103077666327891290968331828669272369777394187702797343166601027251716370634311523220416696695288814906134602479013256267343291965105118849747237462373432138531787111012381032903571601929010301043433241062203172320150171698791661861426297834565753081771001843082305134336660102725171637063434639216498791661843434919651051188497472374623734351338415615020791661507789104151510413435241062203172320150171698791661861426297834565753081771001843082305134361216064976621845415113290477546510140343663921649879166184343727612669632166101016018711019296234110623530744113232113790103010429632924734371338415615020791661507789104151510413438246121369646183750921496964619650921496804246675332846512207147343812160649766218454151132904775465101403439213842072539479574766102901397168121730268115531629087343927612669632166101016018711019296234110623530744113232113790103010429632924734401939217711039819790829290399809811281253138513218171473440246121369646183750921496964619650921496804246675332846512207147344110249207283750912496509665273441213842072539479574766102901397168121730268115531629087344213921669234110280307791496519879117113442193921771103981979082929039980981128125313851321817147344364328101713766323443102492072837509124965096652734441910625567828299151797704168528433033077911389025034441392166923411028030779149651987911711344540227110910706721801511405421654305408372249015696224901504664126241769061627290974850702418758569701856625414034456432810171376632344625596438127215441375414111047291104210416448629015033313110492376207013446191062556782829915179770416852843303307791138902503447753311103150721989041184360904166488959415611554227912394789051036130625814132027290817136202507231412369074665552725113032090272908135202859501391210681016236491104111150105132018296107176901708854034474022711091070672180151140542165430540837224901569622490150466412624176906162729097485070241875856970185662541403448218812866651165661511408941874401543921955415615044379151344825596438127215441375414111047291104210416448629015033313110492376207013449373025964372466387218390273750661435374744841175783610177871032901009702733144307811483319879117113449753311103150721989041184360904166488959415611554227912394789051036130625814132027290817136202507231412369074665552725113032090272908135202859501391210681016236491104111150105132018296107176901708854034501417981810259669013554807661029097096345021881286665116566151140894187440154392195541561504437915134517964667197074809634513730259643724663872183902737506614353747448411757836101778710329010097027331443078114833198791171134523058720665166110536517782272905587517471652316490968163194098147042754806690253123345214179818102596690135548076610290970963453182235766611681904107417011701400579010331116641051345379646671970748096345421103631514824119050496540187561030434111070961040519271473454305872066516611053651778227290558751747165231649096816319409814704275480669025312334551337178985966906711311066105747317134551822357666116819041074170117014005790103311166410513456820643302726612460845345621103631514824119050496540187561030434111070961040519271473457251028611201329078571104542019841715544623690297135572701227110669013434571337178985966906711311066105747317134582031432050110665125112490111307066157058653310414755478345882064330272661246084534599227186668331955415615447345925102861120132907857110454201984171554462369029713557270122711066901343460335264314172183901004114020216213530376636045614532190361381627661029053850875146238791186346020314320501106651251124901113070661570586533104147554783461162555105147725112030213053741138361877331387913461922718666833195541561544734621337324712430324496610290537791520373462335264314172183901004114020216213530376636045614532190361381627661029053850875146238791186346319131453715568632755904715570793103491590664474334834631625551051477251120302130537411383618773313879134641122720489031665791666901671028346413373247124303244966102905377915203734651510202045141351268203391394176903336547479134651913145371556863275590471557079310349159066447433483466179716666121144103137103290120104142511427513179134661122720489031665791666901671028346715102091070672661057486762157091666901672703467151020204514135126820339139417690333654747913468111965105174311321116369640179092346817971666612114410313710329012010414251142751317913469221020773818379090975113326622432166101780963319039779195373469151020910706726610574867621570916669016727034701281773813216610178013533190879151347011196510517431132111636964017909234711710577381542637513092266810751309230779113037347122102077381837909097511332662243216610178096331903977919537347236102020417091350357301681783219029590425661061043110209667147529011436741811549141110227940667141347212817738132166101780135331908791513473308125964372103853975171187567639412417550011327581111915906644743698791130373473171057738154263751309226681075130923077911303734742234977381319210812121055811384153210721143906651138791136661701343474361020204170913503573016817832190295904256610610431102096671475290114367418115491411102279406671413475914697310066578554443750347530812596437210385397517118756763941241755001132758111191590664474369879113037347628255510511021150570749496142902907410413028245635547241832614632927966511387913476223497738131921081212105581138415321072114390665113879113666170134347712331460246496211529029072218474813134779146973100665785544437503478231437511329655478818489641282120301701875627054298477816190503478282555105110211505707494961429029074104130282456355472418326146329279665113879134792427811790750131913699577317115287919619290454414791906562571389051834791233146024649621152902907221847481313480219664115217159179141156217843921371715474544147916516613017073480231437511329655478818489641282120301701875627054298477816190503481208177381804901355651111977043695182408433547915203134812427811790750131913699577317115287919619290454414791906562571389051834829314320501107210385399071348221966411521715917914115621784392137171547454414791651661301707348311677744229310111181038539730905134832081773818049013556511119770436951824084335479152031348421282773231141437061130412531038539730907721061161871526698679134849314320501107210385399071348511342901091471023184282103490712533485116777442293101111810385397309051348620435110543532121306809811361253172264985116275106221102253348621282773231141437061130412531038539730907721061161871526698679134871415611103171187561058373101105314145825334871134290109147102318428210349071253348843540118129726612490510288814906134547665261653815435441129072026090817216871872909325617920901501411408813161247755473488204351105435321213068098113612531722649851162751062211022533489768903077915321280313489141561110317118756105837310110531414582533490781789893540170511349043540118129726612490510288814906134547665261653815435441129072026090817216871872909325617920901501411408813161247755473491214648106612447661249088966952888149061345475247508791100349176890307791532128031349230102340665124712424975671715916641496631651031868847101884768106120454369057349278178989354017051134931157419066514225306300987911711349321464810661244766124908896695288814906134547524750879110044942931317071665128775577416651412773123513650822967362419090790741262508142171134943010234066512471242497567171591664149663165103186884710188476810612045436905744951623317715613841123458375411438433712349241434951157419066514225306300987911711449628513326575016249041710451132112013127910376001529090124116649290576321120574496428932966102449714261761411919532012090611319365015241444972931317071665128775577416651412773123513650822967362419090790741262508142171144981639713775149138963651529066103441138187813374498162331771561384112345837541143843371234924144499378168116155397123865947824291713917196810106171962395121434346337123862425051355511311101039702418492446449928513326575016249041710451132112013127910376001529090124116649290576321120574500191127153720795130813961236208115218739612362081152294450014261761411919532012090611319365015241445011339713775149954392184983434323610087084501163971377514913896365152906610344113818781337450215791371896662715568895291575590627367919464502378168116155397123865947824291713917196810106171962395121434346337123862425051355511311101039702418492446450313341252252112901179297149278117791514503191127153720795130813961236208115218739612362081152294450471791517166516690109520190303566603112670647811611176901551566123571131106115615717403580701314035715162081155136198060251116244715762041103116510111861217013165290857098010290661764504133971377514995439218498343432361008708450588881507266901111041121064781161117690106190531125750907217813115513619160100176014124778671623371576478552111769010608162116540907113140908070511060813039164781661117690670813031704085711314085807051786204122096450515791371896662715568895291575590627367919464506181051124756966952888149061345464930766899666224504506133412522521129011792971492781177915145071310577341966362526492749030766170964507717915171665166901095201903035666031126706478116111769015515661235711311061156157174035807013140357151620811551361980602511162447157620411031165101118612170131652908570980102906617645082210385661137477552418449902623161311502781658571819042547147845088888150726690111104112106478116111769010619053112575090721781311551361916010017601412477867162337157647855211176901060816211654090711314090807051106081303916478166111769067081303170408571131408580705178620412209645091425941071665116611581364041318331504788184509181051124756966952888149061345464930766899666224504510207915166771556641814731290474540461072068206611044492451013105773419663625264927490307661709645112482774755266730151512791378280261131477581008702418512206820444506451122103856611374775524184499026231613115027816585718190425471478451235731811956611932163251220726131429638107396471513291241874114413613722615211075190483198791171145121425941071665116611581364041318331504788184513171035484591763321951708111361698571611116498645574513207915166771556641814731290474540461072068206611044492451411194165215013578724193289111017621164514248277475526673015151279137828026113147758100870241851220682044450645151710377547394715617010441321529070784148537451535731811956611932163251220726131429638107396471513291241874114413613722615211075190483198791171145165425912877166511701044132109262520571849079112485170621115710744837013157107447218190277904722811814531107901074118147251310324596324591098577107451950717064845161710354845917633219517081113616985716111164986455745174279151716651112676907185113117062371095265542145714111212491210248140180951790217419045170664231624904132152906264517111941652150135787241932891110176211645185825812867290810699571505519101207508049062011041220245396461131149782656214137590121058942926546891753220872909321641417256895190162490411705686208851461505497096451817103775473947156170104413215290707841485374519147815072170424192907911609590102662244519542591287716651170104413210926252057184907911248517062111571074483701315710744721819027790472281181453110790107411814725131032459632459109857710745195071706484520131021814875174353879123017041851224724520427915171665111267690718511311706237109526554214571411121249121024814018095179021741904517066423162490413215290626452189611937361807705166224452158258128672908106995715055191012075080490620110412202453964611311497826562141375901210589429265468917532208729093216414172568951901624904117056862088514615054970964522242596271665125193737150140112060947651327512213845831987911711452214781507217042419290791160959010266224452313281661107507725218522697713275019096452313102181487517435387912301704185122472452412271675750541180350125511412338625145248961193736180770516622445252715132052716651915906610553381152187490811522948721109327669104189737452524259627166512519373715014011206094765132751221384583198791171145261932032050110716651197532162574797396123620818715486452613281661107507725218522697713275019096452740233111716651103165140911119013110709459027611114181137478669884310721390952641123902384987211091766910431521102032654527122716757505411803501255114123386251452822813151716651108661961312255142907541906966010850111205745282715132052716651915906610553381152187490811522948721109327669104189737452932887107271902031665116249047133598813886241343710241218498343718121140321792737669045291932032050110716651197532162574797396123620818715486453015106774421532915906644741532665142313698791453040233111716651103165140911119013110709459027611114181137478669884310721390952641123902384987211091766910431521102032654531183611513613540180968328937681623714222112329679745312281315171665110866196131225514290754190696601085011120574532151514766776635281244832936898361557484532328871072719020316651162490471335988138862413437102412184983437181211403217927376690453315102120589904229671234205790567198031665145331510677442153291590664474153266514231369879145341232052110227032146509064702190453418361151361354018096832893768162371422211232967974535145236652637103247476363271733077912076645351515147667766352812448329368983615574845364912871577166519182196221755775141415015257171051901501314734011071050510571897418102283325637592415474182914971577093198791171145361510212058990422967123420579056719803166514537141331237512868979664549015341479141600714537123205211022703214650906470219045389351681164768116148141724538145236652637103247476363271733077912076645393817132162111347661951061537581110112081771372211389642959013658841328210121017722722120892212012135417791904539491287157716651918219622175577514141501525717105190150131473401107105051057189741810228332563759241547418291497157709319879117114540292276624177493102151612457214110340211595113290170712351384398454414791171145401413312375128689796645490153414791416007145412010215426911846853096321120750604112967530511290316651454193516811647681161481417245421452110363732190476632236937914160071454238171321621113476619510615375811101120817713722113896429590136588413282101210177227221208922120121354177919045431010354271167536611074611011514543292276624177493102151612457214110340211595113290170712351384398454414791171145442010398791902052307820208145343816245490153414791416007145442010215426911846853096321120750604112967530511290316651454511351354071606616096661957916745451452110363732190476632236937914160071454610361142472317821219015275414546101035427116753661107461101151454718102191513110454259314621849159066447411101421384145472010398791902052307820208145343816245490153414791416007145481134110011612594901417919021545481135135407160661609666195791674549207995716651804853121644132881253912522251464653077915145491036114247231782121901527541455020971931735259189675896695288814906134547895611539879745501810219151311045425931462184915906644741110142138414551253031817166517104016166511374755114262508708424152441751311665145511134110011612594901417919021545522944812581075083293685525105133366412953209096813115027253327103669798791171145522079957166518048531216441328812539125222514646530779151455330878628855140123073175124811014474148651280152908847618843989618379141600714553209719317352591896758966952888149061345478956115398797455415105140160362611327476688414150875140708455425303181716651710401616651137475511426250870842415244175131166514555166031213225651681844054070544431475397021904555294481258107508329368552510513336641295320909681311502725332710366979879117114556161043137236907513610211651151183904166150791674556308786288551401230731751248110144741486512801529088476188439896183791416007145572325941066503277517476618284023697770196426675312032296903424745571510514016036261132747668841415087514070845581954115313108121223690243154010750313110441816231228111455816603121322565168184405407054443147539702190455927131331175811101710424118796421351703219141275908117251538511554735242455916104313723690751361021165115118390416615079167456061021205859053770845602325941066503277517476618284023697770196426675312032296903424745613651301151456119541153131081212236902431540107503131104418162312281114562183916712422635730115390155661617911101473336689964562271313311758111017104241187964213517032191412759081172515385115547352424563715168116669094175045636102120585905377084564111243387903418968130798791171145643651301151456517320155717070111066161104131147554131111120150574565183916712422635730115390155661617911101473336689964566191021941741554705001155731224707071226669091015496456671516811666909417504567211021205471226104276206610290541968399655566791661029065145671112433879034189681307987911711456831351104908111047104908111042100234671090855253202791128158265901547661029098731904745681732015571707011106616110413114755413111112015057456920961714013451401586181447102905973077976610290597987914569191021941741554705001155731224707071226669091015496457048521142637511120810843170965111303123441125267562161822702531449153057669351429661353907025621554221516441415716485107751407914160071457021102120547122610427620661029054196839965556679166102906514571365232519131177521516612490501301449071015385537576612490710153123537573592119051042477294483102457131351104908111047104908111042100234671090855253202791128158265901547661029098731904745721832068116297171368210170859011447661701239011441457220961714013451401586181447102905973077976610290597987914573129991553621214469666811843278990457348521142637511120810843170965111303123441125267562161822702531449153057669351429661353907025621554221516441415716485107751407914160071457424676811666110462165115147841432725367411210135105412144902167828520845743652325191311775215166124905013014490710153855375766124907101531235375735921190510424772944831024575137311113955066121012490714238267211245751832068116297171368210170859011447661701239011441457630171324019436591706691073135592791175135272474732741215427779717712290241597084576129991553621214469666811843278990457722511311643057230779163110516614022710142103253031661029061145772467681166611046216511514784143272536741121013510541214490216782852084578225513205011066779613035808545646096961523580123456460904578137311113955066121012490714238267211245791581320501107166512167961211054254687084579301713240194365917066910731355927911751352724747327412154277797177122902415970845801752366901959695212311875641263113236316645802251131164305723077916311051661402271014210325303166102906114581221033540716066870966683190416516718943326725503629090121458122551320501106677961303580854564609696152358012345646090458228351374713521073750451858814314431316610290226418581352107111776123076175636174582158132050110716651216796121105425468708458336103155906610312116110114460715057413170717017466311421915487607513456988076511131221464118679132458317523669019596952123118756412631132363166458432103151155901541131171518588143170123161101153583701319628856641211415019111416751280861523458422103354071606687096668319041651671894332672550362909012145856079151667766904139735652211770170141307824414117599651113122146907157141307898136179080146907113121151324141175251413078986101375309661032137540511667147458528351374713521073750451858814314431316610290226418581352107111776123076175636174586161021774358116111566180896636981025551375409645863610315590661031211611011446071505741317071701746631142191548760751345698807651113122146411867913245874081359643716651549170661701329051077073511316620496551070185813749016210114112054337549661029014427029879117114587321031511559015411311715185881431701231611011535837013196288566412114150191114167512808615234588331021205266110144669161596680572122661102421251446691024212566102901461231471210227902624863145886079151667766904139735652211770170141307824414117599651113122146907157141307898136179080146907113121151324141175251413078986101375309661032137540511667147458982591287667725913319560845891610217743581161115661808966369810255513754096459027341477989314796696142661001470711381032901510711385101301382369811375327915145904081359643716651549170661701329051077073511316620496551070185813749016210114112054337549661029014427029879117114591121034753753615311281582659015413245913310212052661101446691615966805721226611024212514466910242125661029014612314712102279026248631459210128715766771651665166140147459282591287667725913319560845933125912876677661102091761844772395403076641250417908139614173112821032901766102902199645932734147798931479669614266100147071138103290151071138510130138236981137532791514594231038190783925130779160051112051157907975162170180103290144270845941210347537536153112815826590154132459562106774421756651968131355912775110505107249907116271511706237248517022697755912015663630779110550953135413024713770811105837277902037478254413541301351056501577562113547070845951012871576677165166516614014745962055342422711047115751157238591782121116187152661008157135078245963125912876677661102091761844772395403076641250417908139614173112821032901766102902199645972279151667726931416690665527611371765274835117714149046237459723103819078392513077916005111205115790797516217018010329014427084598157417814703766222431426249814145461139524598621067744217566519681313559127751105051072499071162715117062372485170226977559120156636307791105509531354130247137708111058372779020374782544135413013510565015775621135470708459972591287716651661747459920553424227110471157511572385917821211161871526610081571350782460014552658719020316651236111779112043837460022791516677269314166906655276113717652748351177141490462374601216820643667716790102031414787011551766901206371429012064601157417814703766222431426249814145461139524602196715586904118756165664817096559016547852491646027259128771665166174746031325912876617661750540195980777150964603145526587190203166512361117791120438374604117915166771951109717254292964604216820643667716790102031414787011551766901206371429012064605141035484594791842237250540542763492964605196715586904118756165664817096559016547852491646063310211306691077540470704116611045413066943209010864723632896478665113510547565913066910734606132591287661766175054019598077715096460726102120547122666144114147501909614262130739672012419032105907309081031460711791516677195110971725429296460820341477981814464191227102121048850354624176903275119646081410354845947918422372505405427634929646092087862830184685309632112075060411296753051129031665146093310211306691077540470704116611045413066943209010864723632896478665113510547565913066910734610112553713214057553326590140514610261021205471226661441141475019096142621307396720124190321059073090810314611811271539790178113766155461120341477981814464191227102121048850354624176903275119646122110391286018466609047401171096667301380372193752592372232962461220878628301846853096321120750604112967530511290316651461371407324011294716112946131125537132140575533265901405146147149126733798936746148112715397901781137661554615211416690195961096680896695288814906134547895611539879746152110391286018466609047401171096667301380372193752592372232962461620351374766609035173772077150904543610237164100461671407324011294716112946171636110363789700147136175617920905619015096461771491267337989367461817671259661707149259754791581765191311306511996461821141669019596109668089669528881490613454789561153987974619126832052667710329047539904171461920351374766609035173772077150904543610237164100462040151771661318109058747202521553571229015475395116648542241917314721524619045490170450471455606613015290103246201636110363789700147136175617920905619015096462129813596437166131913525573392221415810165129108139511566211110737364108901081247574621176712596617071492597547915817651913113065119964622222591287716613191353557296139211150487111738421526251151956864622126832052667710329047539904171462311791386677535905166106079157462340151771661318109058747202521553571229015475395116648542241917314721524619045490170450471455606613015290103246243263106166771032904753990416513170757665085178192904544147911571401032904753990417146242981359643716613191352557339222141581016512910813951156621111073736410890108124757462510676811610329047539904171462522259128771661319135355729613921115048711173842152625115195686462612315750110667786341714217777311514626117913866775359051661060791574627143031816677843965096620496509224719046273263106166771032904753990416513170757665085178192904544147911571401032904753990417146283881359643716613114777443575115152879111484714639171061805140013272511104265320202207839879117114628106768116103290475399041714629298786283018483293301433512683109613290887414603011108774146030768989879117114629123157501106677863417142177773115146302010310437751320668070301245403075409854030754098791514630143031816677843965096620496509224719046316827747553362502463138813596437166131147774435751151528791114847146391710618051400132725111042653202022078398791171146321412465113131113169146922760905839217667914632298786283018483293301433512683109613290887414603011108774146030768989879117114633331249890398362114665161570211112155229014234181555811118489831066412610702514549017087110463320103104377513206680703012454030754098540307540987915146343610322711042166113861875612278146227902761701224711381524217157170120711386690488907113162758791463468277475533625024635191713266986371422771211481574114870872017667413625146351412465113131113169146922760905839217667914636161033540716066870965241375241317506215044636331249890398362114665161570211112155229014234181555811118489831066412610702514549017087110463718103151170655105167122760905839221073198791171146373610322711042166113861875612278146227902761701224711381524217157170120711386690488907113162758791463811351754078628290202255903625146381917132669863714227712114815741148708720176674136251463918102120522766416152227110147651097346861414241079132463916103354071606687096524137524131750621504464011151522667753796051835661904146401810315117065510516712276090583922107319879117114641141511816677970903216790109239662031464111351754078628290202255903625146421431515771661317612055771091781141351464218102120522766416152227110147651097346861414241079132464322103750621717512868743568741462083016662397512863016836679151464311151522667753796051835661904146448106774421532109388456746441415118166779709032167901092396620314645172591287667725547114667135136239776301689879746451431515771661317612055771091781141351464637103151116468750120287494459417690134170854010172971826213662522187509022311698184142904241554875145436121464622103750621717512868743568741462083016662397512863016836679151464719194165213513584939048131751876836642751876982462314074647810677442153210938845674648221713216211134711666813211101891871081212105581664143516969951234648172591287667725547114667135136239776301689879746496102145929011018735346493710315111646875012028749445941769013417085401017297182621366252218750902231169818414290424155487514543612146503417154147981474321409077541953201209511187915775307106133475414766296290531501495815218746501919416521351358493904813175187683664275187698246231407465187995667746663553246512217132162111347116668132111018918710812121055816641435169699512346521432015586187624511327186324543690574652610214592901101873534653147316610212014775439422155299177919010524653341715414798147432140907754195320120951118791577530710613347541476629629053150149581521874654148277413542153275142781021256211023413524654879956677466635532465526102120557167832936822964539157287152908847618843162229135171909481004655143201558618762451132718632454369057465625216214681972681322515611019417621825941828190159644176616176524656147316610212014775439422155299177919010524657145011166696130375702971329013037610429746571482774135421532751427810212562110234135246581579956677321761666110171867110566022914658261021205571678329368229645391572871529088476188431622291351719094810046591332068116375143147936188433196610046592521621468197268132251561101941762182594182819015964417661617652466011878628371046610212010730779151466014501116669613037570297132901303761042974661123201043775132066807098330779151466115799566773217616661101718671105660229146621128166110750778966959831932466213320681163751431479361884331966100466324791516677103853990416513170757908111782629014132774104142171146631187862837104661021201073077915146645467681161032904753990413540358651126193666929081146310365433730168178952202904113850166296290531501499213932661105433712490143731454361146641232010437751320668070983307791514665181244670369848212062096429137376577865114962080466511281661107507789669598319324666263513747666090757337827749076966187914891590822552315611539879112246662479151667710385399041651317075790811178262901413277410414217114667121032571011452629025874104142171146675467681161032904753990413540358651126193666929081146310365433730168178952202904113850166296290531501499213932661105433712490143731454361146681565130146809169525390829761468987911224668181244670369848212062096429137376577865114962080466950150320527212375190667265290857010601272356127857620811112156101147213140368070517161762041220116100141403510055247511179056066130102646692635137476660907573378277490769661879148915908225523156115398791122567024224417866512484971358812101704504132193629043921394987911711467012103257101145262902587410414217115671532043186651665141685721105343755323311054088151280138120160511464013633719250870810642479091114682804431013717637503728053637665814453198791171146711565130146809169525390829761468987911225672612581286661315715741210775901010170651639014165701708871249049187963135111112490307791808724079011210675717311071047117041321635147119696894882766124036478988481486170648467250150320527212375190667265290857010601272356127857620811112156101147213140368070517161762041220116100141403510055247511179056066130102656733110234066516651411566101934170171811376620081651152249905804745390391307539742177567342893296610256744395290837901714519184135310966561750372491210248265912702192904544147919062656890626753818690384544147911264539039875674242244178665124849713588121017045041321936290439213949879117115675629761901705654863142241062119017014366224419591821962217557751414150152571710519015013147340110710505105730256510571834130033812245241918011781574158070298791171156755320431866516651416857211053437553233110540881512801381201605114640136337192508708106424790911146828044310137176375037280536376658144531987911711567619331110315066516651413722157070176677416621706616593456766125812866613157157412107759010101706516390141657017088712490491879631351111124903077918087240790112106757173110710471170413216351471196968948827661240364789884814861706485677275964381266516651457630311112511321101464013633720232065207839879117115677311023406651665141156610193417017181137662008165115224990580474539039130753974217756781010202101325755611539879166805678439529083790171451918413531096656175037249121024826591270219290454414791906265689062675381869038454414791126453903987567979210267465735307797567962976190170565486314224106211901701436622441959182196221755775141415015257171051901501314734011071050510573025651057183413003381224524191801178157415807029879117115680242235766611666514180701807010188511464570117066560928987911711568019331110315066516651413722157070176677416621706616593456814513377830184150750763001702888149061345478154118038111911016615477743025376485715758190170616613716357056113562931262651661301140568127596438126651665145763031111251132110146401363372023206520783987911711568232249206651185165231135171321356661105094383779278190912392212012135417618316019669699512356821010202101325755611539879166805683252767843661171521875641185011710713427927819091976961352351521387919656837921026746573530779756842410242925666907410473012017245490113651081731907234774104454361156842422357666116665141807018070101885114645701170665609289879117115685186503004180758287411402908641629210624739066729568545133778301841507507630017028881490613454781541180381119110166154777430253764857157581901706166137163570561135629312626516613011405686423143205011072321417401084710385399071124103290965229053149655120651321669010017013029053149116651138791300134568632249206651185165231135171321356661105094383779278190912392212012135417618316019669699512356873037152108471038539907132190788321120129073013050249132820842150130296664108388565375687252767843661171521875641185011710713427927819091976961352351521387919656882931432050110729665127418496037512906541543513219068511090723477410445436115688241024292566690741047301201724549011365108173190723477410445436115689232329014416704146897169741501037011706616592814611181116131707568918650300418075828741140290864162921062473906672956901592166926811010113790664224412401032642146115690423143205011072321417401084710385399071124103290965229053149655120651321669010017013029053149116651138791300134569118691132968201319682041869080582661479651116111385691303715210847103853990713219078832112012907301305024913282084215013029666410838856537569221196510515436611610891911085782361556421566616174779190284131569229314320501107296651274184960375129065415435132190685110907234774104454361156931723162526122284517889652418690805211611138569323232901441670414689716974150103701170661659281461118111613170756941333217768113461617200329131612021315694159216692681101011379066422441240103264214611569514332177110461111103290481115333155293137131569518691132968201319682041869080582661479651116111385696246319066542921316311318329054276599061235430370114145635315543756962119651051543661161089191108578236155642156661617477919028413156971623220266682615816124745241102034414719056971723162526122284517889652418690805211611138569813106221756282102905565675534185121561569813332177681134616172003291316120213156999952901816156165301953556556991433217711046111110329048111533315529313713157002618690181611812981234706570775148144711131616812271102551032905201204666525700246319066542921316311318329054276599061235430370114145635315543757014046610329075076135731515404963414591401241422019226961241425301921032901457190121219153090563126211047375034905701162322026668261581612474524110203441471905702341020773837908196906177575010329014777119028570579713975475114610329020230766277791219257021310622175628210290556567553418512156157031325812866651228155711511329041079132570399529018161561653019535565570414574190107902614246141666508987911711570426186901816118129812347065707751481447111316168122711025510329052012046665257052481773811355324118756773907531115581124103290417551363077915157054046610329075076135731515404963414591401241422019226961241425301921032901457190121219153090563126211047375034905706121907738196866454728290820512805706341020773837908196906177575010329014777119028570579713975475114610329020230766277791219257071378947266901028343217126740339857071325812866651228155711511329041079132570814258128666511154186613113597576904031705708145741901079026142461416665089879117115709193143205011072321120129632190782103853990356651540715709248177381135532411875677390753111558112410329041755136307791515710681020773837908161796907518322451662147079167321669035490160935662149699681770571391706857512029227690121354437708611762277822271779196183496761409213879190331903977919531327171157101219077381968664547282908205128057112630020665120210714946857321103616016514705716510717107149401315281087822275711137894726690102834321712674033985712152296747750769050254066689664317515411657121425812866651115418661311359757690403170571341388451476688437870961715914241307379631421307111320115846642390145643249356178201387911498782621996643139525713193143205011072321120129632190782103853990356651540715714311058451476688437870963530691759417028125414314778478816416816316722322151961554795714681020773837908161796907518322451662147079167321669035490160935662149699681770571391706857512029227690121354437708611762277822271779196183496761409213879190331903977919531327171157152666010272564390296271241262199512547364390296271235290531527471102475715263002066512021071494685732110361601651470571651071710714940131528108782227571616328451476688437870969566884312536114571615229674775076905025406668966431751541165717511566955104321212437366411242650462419013810624461936631142106575150154801399034111688723766884310714911515245490296271235141454611455717413884514766884378709617159142413073796314213071113201158466423901456432493561782013879114987826219966431395257183332714290731578038741575166224922214431316166884187212056651960688723766884310769575718311058451476688437870963530691759417028125414314778478816416816316722322151961554795719102221766966901199610688514957192666010272564390296271241262199512547364390296271235290531527471102475720231062177293166511351361504919687258917583885621073198791171157201632845147668843787096956688431253611457212815523690268411101971299024175214215166220220553519602021353971040183907916905721511566955104321212437366411242650462419013810624461936631142106575150154801399034111688723766884310714911515245490296271235141454611455722159211881874192009614712682087915398791152572233327142907315780387415751662249222144313161668841872120566519606887237668843107695757233815013772321904316691075081817473766102907939211083227110736876514866421226691201506149098791171157231022217669669011996106885149572413347516447815721679198797307661069257242310621772931665113513615049196872589175838856210731987911711572511112045661713198797307664469657252815523690268411101971299024175214215166220220553519602021353971040183907916905726241965105166514583381929045441479190109191241708791210731987911711572615921188187419200961471268208791539879115257271226631146987501091917131574150570857273815013772321904316691075081817473766102907939211083227110736876514866421226691201506149098791171157282129778157132908847928847689251329164635454361113057281334751644781572167919879730766106925729271337712083711250067144782905340135109115180866155906612455375090502123351305729111120456617131987973076644696573016526784314172781010451333641110921388070857302419651051665145833819290454414791901091912417087912107319879117115731132067841102499102168572903971357316165731122663114698750109191713157415057085732132767841102499102572181120249350111675732212977815713290884792884768925132916463545436111305733472752031721461032902026697270252118911875641185011710719830710712229061884113573111732111024056820321384316370143011116614565375733271337712083711250067144782905340135109115180866155906612455375090502123351305734122014547675261653815149845436514257341652678431417278101045133364111092138807085735242064171135736639461352798089623190882479086884713164314996425735132067841102499102168572903971357316165736253921772931665114290230726961432121580705722290618841103232717115736132767841102499102572181120249350111675737313921771104611113071071222906188411357311172629010188471316435574183201105304543611130573747275203172146103290202669727025211891187564118501171071983071071222906188411357311173211102405682032138431637014301111661456537573820131453715568611113014683293689190388196177979879151573812201454767526165381514984543651425739195963977293912364213143296599129186348312626511352134573924206417113573663946135279808962319088247908688471316431499642574019206433027213573014311754015566403540143197535476328357402539217729316651142902307269614321215807057222906188411032327171157413434290109147282598911566248184685309056268212668431262111491372905314911665113879130013457413139217711046111130710712229061884113573111726290101884713164355741832011053045436111305742258177313530779119020211147270571936323690471036103166511387913001345742201314537155686111130146832936891903881961779798791515743825812867218176641474112574319596397729391236421314329659912918634831262651135213457442517261115154044375112110115115111272209523211379010301042963229053149415744192064330272135730143117540155664035401431975354763283574516181211117220137100190100314166609053313057453434290109147282598911566248184685309056268212668431262111491372905314911665113879130013457462413377120843731844132908371041462387937139121012490143731454361113057462581773135307791190202111472705719363236904710361031665113879130013457471754084167437502905315621141110312629030779115057478258128672181766414741125748102467841102191310120522317857482517261115154044375112110115115111272209523211379010301042963229053149415749196914580496155666695123675544411023077915021357316105749161812111172201371001901003141666090533130575015297135731106581752414688479968162784257502413377120843731844132908371041462387937139121012490143731454361113057512674831102265290135537503515213879198820553484935287975698820861423054875751175408416743750290531562114111031262903077911505752214011105549225320213990357811459012901766103274188411777085752102467841102191310120522317857531622017711025369551175139906547681463181475753196914580496155666695123675544411023077915021357316105754142492175696695288814906134541384366629575415297135731106581752414688479968162784257557921026746573530779757552674831102265290135537503515213879198820553484935287975698820861423054875756186052031665188137906639414226553198791171157562140111055492253202139903578114590129017661032741884117770857571219274917416651422706636781635757162201771102536955117513990654768146318147575845976190417906672770162100255870216230675052103622117701703078187531710657541769018157512178613361443137710616290106966137731575814249217569669528881490613454138436662957591657419054740114090263116181347871929879117115759792102674657353077975760205514911151571266692012017034787190185011712218651401224925760186052031665188137906639414226553198791171157611313310643471109222888613192232710366103576112192749174166514227066367816357622424920721325085401045085405611531045084170212613162561153987911101005762459761904179066727701621002558702162306750521036221177017030781875317106575417690181575121786133614431377106162901069661377315763248177311575076485170104569690661803158548613590322661889879117115763165741905474011409026311618134787192987911711576451592706947295666807596170111661512463984614275010471811203067128103320150104707778191905304157010155515053596248497135937319879117115764205514911151571266692012017034787190185011712218651401224925765209644674166514249484412331041702543429051213124110490395765131331064347110922288861319223271036610357662715032052665710329047539904115066515777501825628054217115228044312866103576624249207213250854010450854056115310450841702126131625611539879111010057679258128666572043186651148576724817731157507648517010456969066180315854861359032266188987911711576811916474624115072106432327110415768515927069472956668075961701116615124639846142750104718112030671281033201501047077781919053041570101555150535962484971359373198791171157691657419067471166588114372596425811434863113057692096446741665142494844123310417025434290512131241104903957702688128672126661519040638297681264985752690406513221204983198791171157702715032052665710329047539904115066515777501825628054217115228044312866103577193618108540192901469710457719258128666572043186651148577221266317727536611074630779110649371413778372259066103415772119164746241150721064323271104157732447537321206315571436511564411211383274766884141508751407085773165741906747116658811437259642581143486311305774205965104321212437366418607028309010703125117098791171157742688128672126661519040638297681264985752690406513221204983198791171157755263212070252663155103731270171425917960311043516834115776905724771476341032901442491511270908527150104707602142684777310087021223159879117115775936181085401929014697104577626106212070252536477569010979168341129155569791902272079325425709711077013157762126631772753661107463077911064937141377837225906610341577722332177293172184665141477610260451698720110348418516575057772447537321206315571436511564411211383274766884141508751407085778151049141451718114031138446742226321661235657782059651043212124373664186070283090107031251170987911711577964102268327065113530779121149645870114031262580707763487120370776333097618763220556961210763250501009011307071316491104545607076280901424901952164357014611161305709212905315011661317015779526321207025266315510373127017142591796031104351683411577690572477147634103290144249151127090852715010470760214268477731008702122315987911711578013226104316921383141298513164142570757802610621207025253647756901097916834112915556979190227207932542570971107701315781221965105166508131142906016197512225593529053150113121317015781223321772931721846651414776102604516987201103484185165750578215401901161326451045119618951596101512641385782151049141451718114031138446742226321661235657832239981045736511022858118858147614290601618825310629053150131578364102268327065113530779121149645870114031262580707763487120370776333097618763220556961210763250501009011307071316491104545607076280901424901952164357014611161305709212905315011661317015784172329014778317747781411507631017017013361661315784132261043169213831412985131641425707578545104914145171210904114137200904154054518453547051110401004113751408641141131666090965717671715304522905315011661317075785221965105166508131142906016197512225593529053150113121317015786293193205011045715534345147095615113544441320155476268212668451770141327553041578615401901161326451045119618951596101512641385787111091254511517516805797176121751578722399810457365110228581188581476142906016188253106290531501315788241051124750125101316566101089669528881490613454752392862105670666131578817232901477831774778141150763101701701336166131578911314320501101714547103853990655789451049141451712109041141372009041540545184535470511104010041137514086411411316660909657176717153045229053150116613170767901417024930779154029314021091038539730741658357902931932050110457155343451470956151135444413201554762682126684517701413275530416791141096491540129150403591054069907907411157911110912545115175168057971761217516792125384115627432015010329653990661757922410511247501251013165661010896695288814906134547523928621056706661316793111170126783224741290169085647579311314320501101714547103853990656794125487784164466226597114172918467944289329661026795318613511219040980523285390613288160446155142348901607041103290156350901779010760217716795141702493077915402931402109103853973074165836796161022683270651307791161722213709042413013842679614109649154012915040359105406990790741116797131216315402729409113942901158867144679712538411562743201501032965399066176798915841155179234189911594267981111701267832247412901690856476799135487784113586779318915290292483140679912548778416446622659711417291846800108531787111011585401032902771306800318613511219040980523285390613288160446155142348901607041103290156350901779010760217716801251623112523686779195212311875641263284195110422651301038539904112013068011610226832706513077911617222137090424130138426802918121117293101901304141680213121631540272940911394290115886714468032465190526371319037775164161130129371291710385392904717016612111306803915841155179234189911594268049102056773212570516826113068041354877841135867793189152902924831406805913312475625318476612538090680510853178711101158540103290277130680617314320501109181219057113235401111100266190576806251623112523686779195212311875641263284195110422651301038539904112013068077843109178218633717680791812111729310190130414168083797681222117193611921303103113081141661105179512110329671041382706413112872319661303152233201113068082465190526371319037775164161130129371291710385392904717016612111306809131623112523686779110941661421454507791680991020567732125705168261130681014105812831564197227723661106911309719668109133124756253184766125380906811125735107915876152882018654012460362681117314320501109181219057113235401111100266190576812126207141253721385132975470705406812784310917821863371768131074678411658362361107291101151681337976812221171936119213031031130811416611051795121103296710413827064131128723196613031522332011130681432128281327065130779114612440702418811331165021757307797962065176183110160615809014168141316231125236867791109416614214545077916815116364723632121571251231251215168151410581283156419722772366110691130971966816172279013225341477237254491112182821101937016104268161257351079158761528820186540124603626817168091021256271112211421329074678417573268171262071412537213851329754707054068189680108479647032155114468181074678411658362361107291101151681919756510438048931312594213814170610113124711019370161042681932128281327065130779114612440702418811331165021757307797962065176183110160615809014168202727341713211561102601445196340411107191113814071674597024186614372979186010468201163647236321215712512312512151682113656112566820810837271471023296554768211722790132253414772372544911121828211019370161042682214816641410621068083117620274112556190104682216809102125627111221142132907467841757326823224215390341406652176373914474187207294111037915290290112214068239680108479647032155114468242813090526111501101886631142189361429013171032902311812519401311117130222715768241975651043804893131259421381417061011312471101937016104268251033946540666274932367914859268252727341713211561102601445196340411107191113814071674597024186614372979186010468261920631766106169751110305665113020790161158767144682613656112566820810837271471023296554768272257424741540320904549034041632813279229220371032901290476827148166414106210680831176202741125561901046828176503001101183119687566311901402906813046572979768282242153903414066521763739144741872072941110379152902901122140682915255510515306612111678617667734625167213068292813090526111501101886631142189361429013171032902311812519401311117130222715768301297641572311514653041490530173268301033946540666274932367914859268311115361751048107147715290814134214068311920631766106169751110305665113020790161158767144683214206784140175731835601061477114597011476832225742474154032090454903404163281327922922037103290129047683320188457821407139741443295702418320501215553979274111715168331765030011011831196875663119014029068130465729797683492322026589977791177207259683415255510515306612111678617667734625167213068352324045540443420110115174816612103690198110104636023066130151652130683512976415723115146530414905301732683614105817732653521371407667734625167213068361115361751048107147715290814134214068371513145371556861111359117010566023242134047683714206784140175731835601061477114597011476838830678438041554657297976838201884578214071397414432957024183205012155539792741117151683928115611233915248635130413441324735190619013737104314137666681349013731130683992322026589977791177207259684017566175460374665907510024741525517477917957684023240455404434201101151748166121036901981101046360230661301516521306841251062905567383209015591904732090116901304119280417104324714079161337684114105817732653521371407667734625167213068421561414366101113901556690531838749175317766842151314537155686111135911701056602324213404768432725812861361358190403540467715014090562841951102624221701312104651627913470868438306784380415546572979768446374102958443250776684428115611233915248635130413441324735190619013737104314137666681349013731130684521540905247702126010483473311306660905307917751465611306845175661754603746659075100247415255174779179576846222928101713920065329951710194113441711682129067110611306846251062905567383209015591904732090116901304119280417104324714079161337684714106414172128722729407101941134513613068471561414366101113901556690531838749175317766848311024239032733721137103213719015371563231190569472472339041156113215631104352913568482725812861361358190403540467715014090562841951102624221701312104651627913470868492259651043132540373465401503495095642540289651411561035577411768496374102958443250776685017355315134189147773147024189931703068218633717685021540905247702126010483473311306660905307917751465611306851121623311799353213912266412115406851222928101713920065329951710194113441711682129067110611306852176129020671090106907011471535247233137190133901306852141064141721287227294071019411345136130685310976491540222509696133661306853311024239032733721137103213719015371563231190569472472339041156113215631104352913568542725117544342011011518726393282638116272948089072469077417058251110336111306854225965104313254037346540150349509564254028965141156103557741176855968170490130139171667728685517355315134189147773147024189931703068218633717685655961528005380685612162331179935321391226641211540685723106217711096176574111401200481215522901423418165115146390147279161170868571761290206710901069070114715352472331371901339013068581256617593010632090116905667911104768581097649154022250969613366130685945366784381779989050375894310079167961316311045050457460374666609036100482431904925179269655165148103109170879190668592725117544342011011518726393282638116272948089072469077417058251110336111306860392322322102985011661951130462504114510235269103290411877761666170176225110260106137261314166609013113068609681704901301391716677286861896446741175181571585768615596152800538068622484310917352104314132790740561214113914116670146621411038539730741176862231062177110961765741114012004812155229014234181651151463901472791611708686314102861901722226141183210120848259131707686312566175930106320901169056679111047686492879012210385394962592607766864453667843817799890503758943100791679613163110450504574603746666090361004824319049251792696551651481031091708791906686515202113113111115121270613149211101115531516865392322322102985011661951130462504114510235269103290411877761666170176225110260106137261314166609013113068661892217790157212797090131111151212706131101137121115168668964467411751815715857686718976812226114611131511151223706212706131101543121115168672484310917352104314132790740561214113914116670146621411038539730741176868126519052471491038539289770244146168681410286190172222614118321012084825913170768692517761121413205021213632121232151327976416823760110669047913115123686992879012210385394962592607766870225965105112410948191151170797704168961111113737961416821166870152021131131111151212706131492111011155315168711150551122756797214710976987916871189221779015721279709013111115121270613110113712111516872141507822251361906084001511102594684624566872189768122261146111315111512237062127061311015431211151687321249707762681221622519721131596132907071705119417035706873126519052471491038539289770244146168747220905010815644244687425177611214132050212136321212321513279764168237601106690479131151236875823211096157521321772186875225965105112410948191151170797704168961111113737961416821166876965030041121518709136259966876115055112275679721471097698791687716206784116549528428290321907296619750687714150782225136190608400151110259468462456687817363810714781071845283101311001054545077916768782124970776268122162251972113159613290707170511941703570687916261930321151205115152311305101376619791676879722090501081564424468804416814519094554066130703749154770415867311142468380564171252571167147414548890130320905021106688411387013091086631147688082321109615752132177218688122105556611051716283916279750963414113862962741234263144423712688196503004112151870913625996688249113841712051613912106611059251043927734668725181170781434771641901058701610426688415701481319632046247641251317723661106911309719668821620678411654952842829032190729661975068832957351041180836122579134531150965577915211702604711712177474110662453784161295510140688317363810714781071845283101311001054545077916768841756214166790499048184948190498131034121166516884162619303211512051151523113051013766197916768851218112571475012237743713110110913321168854416814519094554066130703749154770415867311142468380564171252571167147414548890130320905021106688411387013091086631147688616206176443251104247233137190884613090103741176886221055566110517162839162797509634141138629627412342631444237126887132511764432511045868802419090412741176887491138417120516139121066110592510439277346687251811707814347716419010587016104266884157014813196320462476412513177236611069113097196688844162176442790905114174170274541115874812167483285101249046070207115907119666411958531601959353205045379355114290887411768882957351041180836122579134531150965577915211702604711712177474110662453784161295510140688915236111517126140121245911235913781845316511668891756214166790499048184948190498131034121166516890181503205217320507361063547076403586611038539866890121811257147501223774371311011091332116891166632050110171683205073111323631262667906891162061764432511042472331371908846130901037411768929843160173252341732562931689213251176443251104586880241909041274117689315100017052471961209630529317026290303741046893441621764427909051141741702745411158748121674832851012490460702071159071196664119585316019593532050453793551142908874117689482061761536641894434207766894152361115171261401212459112359137818453165116689513651120107711323631222906125414736895181503205217320507361063547076403586611038539866896136815545147999155174475284166311426896166632050110171683205073111323631262667906897252067843197358247415401854680687701401212816615966609014079146937689798431601732523417325629316898211623141470257640476612444392130818616459901471268214689815100017052471961209630529317026290303741046899131811115901001245377113706134554018868998206176153664189443420776690022104766106663215132143784113332050155565487141137861381024269001365112010771132363122290612541473690123746471025191412223114214071678878724191734901423808162801547766901136815545147999155174475284166311426902128764541833105783916231791100461536690225206784319735824741540185468068770140121281661596660901407914693769032377190526111141222901275620645450779724145410188741176914136612916903211623141470257640476612444392130818616459901471268214690411181211175267631111195222490846690413181111590100124537711370613455401886905189563245579813253851661021208661032909072147957690522104766106663215132143784113332050155565487141137861381024269061154214117107120840901411122251690623746471025191412223114214071678878724191734901423808162801547766907101964195105111566101920811376907128764541833105783916231791100461536690830607141112225114012127092673157461650413217024841902001101156610192081458329047690823771905261111412229012756206454507797241454101887411769141366129169091284678431365721487915173572110691369091118121117526763111119522249084669102064611157157144103411104115727062115661019307081458376910189563245579813253851661021208661032909072147957691124206784142167770968061001402905751101429073602573516016545171976911115421411710712084090141112225169121563647238323264796307299224315509015477669121019641951051115661019208113769132932678433187796612412912517911726961135181416666290417415704664181468013816459708691330607141112225114012127092673157461650413217024841902001101156610192081458329047691428162317911102946611377014290174112212911299113845512149619229951834516621417069141284678431365721487915173572110691369159986176443251104651222300712691520646111571571441034111041157270621156610193070814583769161020678439117247124162205756916242067841421677709680610014029057511014290736025735160165451719769173615078222516631141329669560728213181434741851089874923971253142909913714290162110484610111245636269171563647238323264796307299224315509015477669188148784387310628729677669182932678433187796612412912517911726961135181416666290417415704664181468013816459708691928361789623611032296551651242110360138706116141108242217025615029047171148846101169192816231791110294661137701429017411221291129911384551214961922995183451662141706920101167489723419522280705175069209986176443251104651222300712692192061111113222471478160886692110206784391172471241622057569221886114691590412613214113690118677731151284706109122869223615078222516631141329669560728213181434741851089874923971253142909913714290162110484610111245636269237182491474315364151692381487843873106287296776692419105812831562361783547690596226141615711101481461113069242836178962361103229655165124211036013870611614110824221702561502904717114884610116925311344171576411309165714766411301116067112161271216465706218153199739909018165116692510116748972341952228070517506926207464710251914166311421091551452955728753065190760677766926920611111132224714781608866927267467843135115692116661019863116811176481681643619032135312117141627101446927188611469159041261321411369011867773115128470610912286928221507856221135531951254558057691102941007726193710679041144692871824914743153641516929205097847837104661106926635241261140121214687537791860104692919105812831562361783547690596226141615711101481461113069303147120315674737108561134147417027459057748121674932851056115131471710171216101745435274117693031134417157641130916571476641130111606711216127121646570621815319973990901816511669311610280905640110168793766367815758789193966931207464710251914166311421091551452955728753065190760677766932232555105114212865225011511714265241248101113061114896611882901860669322674678431351156921166610198631168111764816816436190321353121171416271014469334010621772931665114012121428707236611069113097117070866157701320510416522501151171426524124810111306113339661164966933221507856221135531951254558057691102941007726193710679041144693439258128622213175371003121010101707661240362417263136867787195457455865132134120110289412541908311306934205097847837104661106926635241261140121214687537791860104693528281581059116750101210404175771157478413240015529911273339611807105029917791116693531471203156747371085611341474170274590577481216749328510561151314717101712161017454352741176936133741771206821437142253706262210748131693616102809056401101687937663678157587891939669373713463249157981329285181129414090184351301148084181779079172277032090299376137572416631136528791206693723255510511421286522501151171426524124810111306111489661188290186066938817410031111610694714513069384010621772931665114012121428707236611069113097117070866157701320510416522501151171426524124810111306113339661164966939271702495183916231797465729791238723715570911131613170624866513757913807513069393925812862221317537100312101010170766124036241726313686778719545745586513213412011028941254190831130694042656190715779014132662484412219373761479611054142670937634171081729010293737121140321792732170262248414315081306940282815810591167501012104041757711574784132400155299112733396118071050299177911166941351376190715779094668731270171421925707081423219118031202145911003101042418119154433249171709376941133741771206821437142253706262210748131694217956190715779010712062860123879375646513107065769423713463249157981329285181129414090184351301148084181779079172277032090299376137572416631136528791206694317162247143175259253208061711974111048245411646254069438174100311116106947145130694487041905145642631444237126944271702495183916231797465729791238723715570911131613170624866513757913807513069451412017101207157183905601104548892543516945426561907157790141326624844122193737614796110541426709376341710817290102937371211403217927321702622484143150813069463524078438047646312024079113012618066414722130971170259252629067741841352010145416188523654376946351376190715779094668731270171421925707081423219118031202145911003101042418119154433249171709376947371646521558130811108904827132904914707010819121031222412872421562224128724217222421713785651321216356947179561907157790107120628601238793756465131070657694819246784311754066412869232090135490381841093877915169481716224714317525925320806171197411104824541164625406949161036315157632301111181496578570115156149069498704190514564263144423712695016651907147149259751516565030041212701111306950141201710120715718390560110454889254351695192322026549775146531511306951352407843804764631202407911301261806641472213097117025925262906774184135201014541618852365437695282613758641758355303169523716465215581308111089048271329049147070108191210312224128724215622241287242172224217137856513212163569532915669551043212373262415408112132196073711632190504823732050202172031013661211130695319246784311754066412869232090135490381841093877915169542125813166220434022251462419013860887218693235610327211637411769541610363151576323011111814965785701151561490795511616955166519071471492597515165650300412127011113079561325693671380952113149080111618842369569232202654977514653151130795714137641171586590879372629010188414806957826137586417583553031795810197457414114100113315906669582915669551043212373262415408112132196073711632190504823732050202172031013661211130795912103171521385132114597011267112169592125813166220434022251462419013860887218693235610327211637411779606421227862917913017960428932966102796161073714714215540079611161796292454514711910301701397661007962132569367138095211314908011161884237963111036465784323686779114711910809679631413764117158659087937262901018841480796411976411714219690160103290171140796410197457414114100113315906679651615990807010332154757516618154040754084114079651210317152138513211459701126711217966176990114125190119095810521316617014673218041131796664212278629179130179671313829071884961022515086121969713179676107371471421554007968563856411211131796892454514711910301701397661007969412819071131796911103646578432368677911471191080967970768132075255147712313179701197641171421969016010329017114079711558176640737426126147126755967062905365407971161599080701033215475751661815404075408411407972121741509815213549212025979796804131797217699011412519011909581052131661701467321804113179731710629055753971070337751518901318942451131451779731313829071884961022515086121969713179742572690477715047751325397101202631174113751390166222417656401762127974563856411211131797552401209161253797541281907113179762810280914015191137539491120117712481088930690156831196513764065398021511408161797676813207525514771231317977129529020670581168070572421021253132797715581766407374261261471267559670629053654079781268415178001032909680902932241317978121741509815213549212025979796804131797971259102902102474961317979171062905575397107033775151890131894245113145177980209861756641290750810750547995175272279417013910445621179802572690477715047751325397101202631174113751390166222417656401762127981311623182058411154527013151890153112715651329613916613789907980461401650314562117981524012091612537982225963141661105934322513166511308292726511664138394187708798228102809140151911375394911201177124810889306901568311965137640653980215114081617983165366761953582092107501248016420221224113079831295290206705811680705724210212531327984165059614266609058411170896897155108397193917984126841517800103290968090293224131798516471203156747375166310750124527130745621179857125910290210247496131798626206176443250770187567269655909882015130338904591128044416672248901307986209861756641290750810750547995175272279417013910445621179872959631416611054357151797704168927571391212104957861479611054142621224892130798731162318205841115452701315189015311271565132961391661378990798046140165031456211798811670371361327317914782344686798822596314166110593432251316651130829272651166413839418770879891913145371556861111355111704221702561502905314245621179891653667619535820921075012480164202212241130799011691964528210267126696465729797799016505961426660905841117089689715510839719391799137361789623611032212183713866609053051041611385973414597024184549019713667419722772366110691130971170799116471203156747375166310750124527130745621179924059631106950801312829095177452688852253113847531124962337024181007550461034912829014884901929010301048190642131799226206176443250770187567269655909882015130338904591128044416672248901307993145385104380489391090161907112187783537799329596314166110543571517977041689275713912121049578614796110541426212248921307994233747077665110090104434188970037142127588831126696465729791517994116703713613273179147823446867995101062707761307231965098907579951913145371556861111355111704221702561502905314245621179961569196458910267142321911803156115398797799611691964528210267126696465729797799736596510431159894905173141253290414134666151674997147736617416583144288853906131030903459041184799737361789623611032212183713866609053051041611385973414597024184549019713667419722772366110691130971170799828106211066155511077968311601381092628041453115109253131416410451282102891027179984059631106950801312829095177452688852253113847531124962337024181007550461034912829014884901929010301048190642131799910357839518010806610212016079179991453851043804893910901619071121877835377100018185516567017013151891026815851416234383116141147100023374707766511009010443418897003714212758883112669646572979151710011310621771105543125313828210254133977070871001101062707761307231965098907571002141138510471731801061411381584612353831027171002156919645891026714232191180315611539879771003155214913717068631896422556613631641791537100336596510431159894905173141253290414134666151674997147736617416583144288853906131030903459041184710042039211029466511386636781782901618985189102282102717100428106211066155511077968311601381092628041453115109253131416410451282102891027171005198146578477061011411176120616796551651109421091708791710051035783951801080661021201607917100610162176259191401102564251091407100618185516567017013151891026815851416234383116141147100738746784116583623686710419071741121027025478154746190811151412532904141041329012179114645242156452321216357100713106217711055431253138282102541339770708710083223220266623278761353224813011363774371019562871011320601110477540524659010385397307416626251710081411385104717318010614113815846123538310271710098605203156701147126282710091552149137170686318964225566136316417915371010152499031266648511266879213676103290551377101020392110294665113866367817829016189851891022821027171011291376190487853770117250907935827219450662166327253170241865324625032503007411771011198146578477061011411176120616796551651109421091708791710121758617644342077075328133111027472077534588135273710121016217625919140110256425109140710132110205677317068261121536909041668414611211151416534213471013387467841165836236867104190717411210270254781547461908111514125329041410413290121791146452421564523212163571014910286190301521519010213171014322322026662327876135322481301136377437101956287101132060111047754052465901038539730741662625171015112322029029611686612100146111317101586052031567011471262827101611596314166901479015521269210937101615249903126664851126687921367610329055137710171370419694310501502331102629092074515227101729137619048785377011725090793582721945066216632725317024186532462503250300741177101814170147789646572979113581619011579720081371018175861764434207707532813311102747207753458813527371019169561121215369090416684146111311664775477101921102056773170682611215369090416684146112111514165342134710201481490105058151903015215190307791102131710209102861903015215190102131710211123220290296116151121001461113171021112322029029611686612100146111317102271011499058212692109371022115963141669014790155212692109371023275741906642100876761907864146769072116370193410501502331102629092074515227102313704196943105015023311026290920745152271024172869047051525435326186714195623661564651387102414170147789646572979113581619011579720081371025251681901706116381509086687417649156211290555180826326290170176104131710251695611212153690904166841461113116647754771026131967847465729791207236912551157972007102614814901050581519030152151903077911021317102735817731451785123766100190451992169066156710262906747410412153690904166841461113113064755047710271123220290296116151121001461113171028252441032909773766421008419679203971079021561032907575769072116370193471028710114990582126921093710292319272914352138207903301305159713591120141882015190690791102131710292757419066421008767619078641467690721163701934105015023311026290920745152271030835775317435269079113171030172869047051525435326186714195623661564651387103116421904705152543462129111442472411204831874577103125168190170611638150908668741764915621129055518082632629017017610413171032660425090188319182671032131967847465729791207236912551157972007103315240466311069055421229614931341461113716552671033358177314517851237661001904519921690661567102629067474104121536909041668414611131130647550477103413232901390822241425858181131701527103425244103290977376642100841967920397107902156103290757576907211637019347103511436146491321526090316265887111710352319272914352138207903301305159713591120141882015190690791102131710361368011296770908551385132151127147710368357753174352690791131710377129490471647324720071037164219047051525434621291114424724112048318745771038837417871110123125015530771038660425090188319182671039381965105190810790136761032905513736714210693714591174262906747410412153690904166841461113138364710447710391524046631106905542122961493134146111371655267104024275178711101164860171510701934801470791906610212055653630052581377104013232901390822241425858181131701527104119160810171136678418380113701117691743981501057157710411143614649132152609031626588711171042222867143131521905607761901309879738211953151906907911021317104213680112967709085513851321511271477104342580810457141197681134892535076611014132050253136253663215132961305181864796661057017653090125517236611074210471043712949047164732472007104412947702111383913901519030779110213771044837417871110123125015530771045660425090188319182671045381965105190810790136761032905513736714210693714591174262906747410412153690904166841461113138364710447710461395245783837297919610677071383729791710462427517871110116486017151070193480147079190661021205565363005258137710471636114611071190905542126921493134146111371655267104719160810171136678418380113701117691743981501057157710481311361751048107421352326290315903424771048222867143131521905607761901309879738211953151906907911021317104918636315114071477308104265100104144157418154116111875407104942580810457141197681134892535076611014132050253136253663215132961305181864796661057017653090125517236611074210471050181487843147772910610381429062315556951498341365142710501294770211138391390151903077911021377105191575141411446651341361727105166042509018831918267105291685181811446651341369871052139524578383729791961067707138372979171053109481773266260101111662601797105316361146110711909055421269214931341461113716552671054192363112518311013780518936136514276901032766820197771054131136175104810742135232629031590342477105523392138110669177013290729431437812149633545914070901302403414507105518636315114071477308104265100104144157418154116111875407105693317666457799079664477105618148784314777291061038142906231555695149834136514271057162751787111012318105791406414651161219062354071057915751414114466513413617271058923220290296614061111613771058916851818114466513413698710591831262120371262906947310413932661101373151110218710591094817732662601011116626017971060112869047051848118413470511317106019236311251831101378051893613651427690103276682019777106161026231578216622171061233921381106691770132907294314378121496335459140709013024034145071062612718231578219133710629331766645779907966447710639150299706514061469010213171063162751787111012318105791406414651161219062354071064769782210619087351224710649232202902966140611116137710657569136902976132091387106518312621203712629069473104139326611013731511102187106641502695243771066112869047051848118413470511317106711112410871512358151138406304207106761026231578216622171068543312011716013171068612718231578219133710691126110812651485405142116111387106991502997065140614690102131710701110202702772514213127513815113813171070769782210619087351224710711116741610157821811315111641827107175691369029761320913871072620678414713925671072415026952437710734135119610611197107311112410871512358151138406304207107431283041477107454331201171601317107542322049213871075112611081265148540514211611138710763268116202710761110202702772514213127513815113813171077195962264296124014090711290706519075151132753140613171077111674161015782181131511164182710788174263540711903008526071078620678414713925671079527825341521387107941351196106111971080162305432931611281253465712534149251329159047710803128304147710812136223158166544109640131462936103290191157116130140614690102137710814232204921387108216660215829032190722651032513066859818111613171082326811620271083225961101240103290124614065512621401314644176968625113290768138710831959622642961240140907112907065190751511327531406131710841098617511729024620340631135214071084817426354071190300852607108522206317661066612426592321159611823685537577108113815445978271085527825341521387108612198501081218749169078528614471086162305432931611281253465712534149251329159047710871334314784770641412819922072451771554227108721362231581665441096401314629361032901911571161301406146901021377108823312621304265022624112180090144794322281751161113824115517677710881666021582903219072265103251306685981811161317108911636457021044453441241165451151710892259611012401032901246140655126214013146441769686251132907681387109011117112684465729988190147713572271090109861751172902462034063113521407109129636784715740622071413012994331262110159222490846962744411255103264114767879117776471091222063176610666124265923211596118236855375771081138154459782710922449414611113141756137811041161113875182110236146110488241312647471092121985010812187491690785286144710931020678414895454164252517109313343147847706414128199220724517715542271094923211097017371073661211131710942331262130426502262411218009014479432228175116111382411551767771095181020262904379096181550124596804762324063190175707710951163645702104445344124116545115171096232751028723713515690771262646116137753332075515205725447510911161387109611117112684465729988190147713572271097412273758618021411311821512611168062510895207443151661226116761131664111511066618013161115126120213120710163211614777109729636784715740622071413012994331262110159222490846962744411255103264114767879117776471098156129076831411380109704142110610611161113171098244941461111314175613781104116111387518211023614611048824131264747109920332205331127131816624711313863208061710213205090779035479710991020678414895454164252517110036117112684465729987501031721104110221757103172131535102217578113311650217571391212103290688791422120431711009232110970173710736612111317110113206784132763518741983714746572979771101181020262904379096181550124596804762324063190175707711022210318417121037437145315621771807356810493908190116146170771102232751028723713515690771262646116137753332075515205725447510911161387110318952902068112962533097090138837104962147090169777110341227375861802141131182151261116806251089520744315166122611676113166411151106661801316111512612021312071016321161477711043910621771105633711712114011165638147717751415313146218616263130777147262241544869012161131311421853151411162737771104156129076831411380109704142110610611161113171105113402494576689069264740128120213171105203322053311271318166247113138632080617102132050907790354797110615811707769655907412479018021961341708791517110636117112684465729987501031721104110221757103172131535102217578113311650217571391212103290688791422120431711071425813168290222511048290410540512147797711071320678413276351874198371474657297977110815273277458202591911169677130118331161204807771108221031841712103743714531562177180735681049390819011614617077110941137281045730681136197451711904257119081230950321551911871804350728132905017103620213131917461516322341921511161208711091895290206811296253309709013883710496214709016977711103016246545797644785668205693205053666431290710378313161605283796123967109081429711103910621771105633711712114011165638147717751415313146218616263130777147262241544869012161131311421853151411162737771111432454567115887412874863572947988711554714411099336165886114415526445375543411201174292961316439016946978741829332753879171111113402494576689069264740128120213171112328651904905026810674182933076817846638113236311038539903574112410166296611421711130711121581170776965590741247901802196134170879151711138170131417546116146967111314258131682902225110482904105405121477977111443103623678106102747418414229057143121155145111215510175871125014010413157595295596242183100351151627701116418282745759612817111415273277458202591911169677130118331161204807771115202491311090901330683664822149750518966334671013875140707711154113728104573068113619745171190425711908123095032155191187180435072813290501710362021313191746151632234192151116120871116171036784314290211155422751407411210137135977791116711163016246545797644785668205693205053666431290710378313161605283796123967109081429711172730678431337708563152831625715075651485670149390140701241101447144134612014371117432454567115887412874863572947988711554714411099336165886114415526445375543411201174292961316439016946978741829332753879171118195661812624110151383197748577140661471426701354653170771118328651904905026810674182933076817846638113236311038539903574112410166296611421711130711191830678438277597779113581071201217911157927411171517111981701314175461161469671120117313098375181125624112047715171120431036236781061027474184142290571431211551451112155101758711250140104131575952955962421831003511516277011164182827457596128171121192581316622043702225180476161901875641155662222115170771121202491311090901330683664822149750518966334671013875140707711221433917551855214075060141216135821032902817112217103678431429021115542275140741121013713597779111671123406561125668208108372429541277139326611015331514546511551316711322575107045657811350208967061070136745471371012190790711232730678431337708563152831625715075651485670149390140701241101447144134612014371124102592049303152157155456186797711241956618126241101513831977485771406614714267013546531707711251995619095419341135224113074717756963935762316660170771125183067843827759777911358107120121791115792741117151711262611717061207152187565435136042138264491236110361135511569045629022213017077112611731309837518112562411204771517112715168180435871219091577132906152192543771127192581316622043702225180476161901875641155662222115170771128533918144325077671128143391755185521407506014121613582103290281711291310989015140155896821463467741531554377112940656112566820810837242954127713932661101533151454651155131671132257510704565781135020896706107013674547137101219079071130307661753113614657297911775707505451025754511547851835906551747910324163511184363614271130102592049303152157155456186797711319103678242465729791177571717113119956190954193411352241130747177569639357623166601707711321094845147870964909166199071132261171706120715218756543513604213826449123611036113551156904562902221301707711333011984567831453221367823631752818358311318182513113875148849073112895214071133151681804358712190915771329061521925437711341420678411361179010879191381661591437171134533918144325077671135717013141754678113671135131098901514015589682146346774153155437711368206315189082246572979771136307661753113614657297911775707505451025754511547851835906551747910324163511184363614271137550044517587711379103678242465729791177571717113811102960321151589014841717777113810948451478709649091661990711392216281522937970310486511405732090667304710385394969011677771139301198456783145322136782363175281835831131818251311387514884907311289521407114010181111590961352011166870907114014206784113611790108791913816615914371711413720631142721106661241469213012698911771407328713110385399010301132542593121212414692130307621671201777114171701314175467811367114228162176518960325251107160478419016111043141470426631141321001372012309131130711428206315189082246572979771143296129020613086290248668110311517720771794781707151471702296109241909079074111711435500445175877114412586111665914481315313510413044815171144111029603211515890148417177771145779651321740314158771145221628152293797031048651140573209066730471038539496901167777114674062363734175615377114610181111590961352011166870907114712587491415721707754831504152557711473720631142721106661241469213012698911771407328713110385399010301132542593121212414692130307621671201777114814255510519060220663277666090530791517114828162176518960325251107160478419016111043141470426631141321001372012309131130711492616061119054059182130823675275418358131754183771575418406234767114929612902061308629024866811031151772077179478170715147170229610924190907907411171150922045617454877416656517115012586111665914481315313510413044815171151104062363740061531659053079771151779651321740314158771152123583151611216652187315041525577115274062363734175615377115371301201077383247187130071153125874914157217077548315041525577115410150180566813111057401901137487115414255510519060220663277666090530791517115512388457821327401901001457025087915171155261606111905405918213082367527541835813175418377157541840623476711567456315401041901557097115692204561745487741665651711572316217625925262903037062129041344147392130822671381884670708711571040623637400615316590530797711588704190554356583823107087115812358315161121665218731504152557711591612029047037159104316790239667011471210902229277115971301201077383247187130071160111334114748212074831222124791517116010150180566813111057401901137488116118196510513076610312211011426658833365193130193120177711611238845782132740190100145702508791518116217522247116103457417155840708183439669207027912239271162745631540104190155709811636296403871572167917116323162176259252629030370621290413441473921308226713818846707088116411270313133124712460875109223456771164870419055435658382310708811651131222790391571414329022282461711651612029047037159104316790239667011471210902229278116611121651477412271124621171399012471166111334114748212074831222124791518116723392207195498139118516623090476362110112105147290575912366144707811674289329661028116873702254273571391488116818196510513076610312211011426658833365193130193120177811691138413790113144619054726224267018116917522247116103457417155840708183439669207027912239281170187894665166124903237147198754551232661084781170629640387157216791811712217779181981102574012101807237314511429017010395962121380701811711127031313312471246087510922345678117223103501351016253186109030330779113890201987919891706113741222347018117211312227903915714143290222824618117313204318661313076651196307664089875081173111216514774122711246211713990124811746282773421578977908117423392207195498139118516623090476362110112105147290575912366144707811751223948711196307791580702987911711811757370225427357139148811762037178985966901804131849541466756172932211766919681176113841379011314461905472622426701811772115018066511194395227882506610665070165047575661069811508117718789466516612490323714719875455123266108478117863923410166577908117822177791819811025740121018072373145114290170103959621213807018117924227110665711204232155018014608612448757908109186257519741841355518117923103501351016253186109030330779113890201987919891706113741222347018118012626497125443373076697987911711811801320431866131307665119630766408987508118182363151221138811483378118162827734215789779081182102663179193161661244450051811821223948711196307791580702987911711811831111665147321642246811135661404281183203717898596690180413184954146675617293221176691968118421964466214328162546651154987113570236265483987911711811842115018066511194395227882506610665070165047575661069811508118513204318665115469615097779155231535514811856392341016657790811861997619045390373347811481421159511137103290150617049170193481186242271106657112042321550180146086124487579081091862575197418413555181187125964975531069333661063319879117118118712626497125443373076697987911711811881010202041296657535108138921548118882363151221138811483378118919105194170672901296541180316432901136690751987911711811891026631791931616612444500518119016352810726627633283975667968307791222707078119011116651473216422468111356614042811911712828132706517065702113613622110413846315584070881191219644662143281625466511549871135702362654839879117118119219817754627142902171613301449013911706715110613870781192132043186651154696150977791552315355148119312180651857667147135457857667147811931997619045390373347811481421159511137103290150617049170193481194212063176610662732595163784728013812016051668273275478119412596497553106933366106331987911711811951375651043804893515713244312456671478119510102020412966575351081389215481196215749841307797109854027315547654044266102120141123296307791518119619105194170672901296541180316432901136690751987911711811971894845679890198124355872110877114311952901143669781197163528107266276332839756679683077912227070781198161285101240184975717010441751290472513078201308119817128281327065170657021136136221104138463155840708811991630220643661314631316555959253547631418588811991981775462714290217161330144901391170671511061387078120010381166117160137665122844357812001218065185766714713545785766714781201333143205011072195541564625612711013947685315105113359218498343746362705651313209015309215481201212063176610662732595163784728013812016051668273275478120235150210665767120189044671205590952277124266950106156901581921421501712592371185196118491701812021375651043804893515713244312456671478120320331110315056130661062729010048807312674217115190662857018120321574984130779710985402731554765404426610212014112329630779151812041927867366472277124266950176902361711919098170133170781204189484567989019812435587211087711431195290114366978120513574190731669349909558070298791171181205161285101240184975717010441751290472513078201308120613384110665130627811138975353730766103812061630220643661314631316555959253547631418588812071767206437266102120166142227212260908108114833781207103811661171601376651228443578120836204318726668261656314121161150222611371871101605721011151902046714290879010333113718740175677078120833314320501107219554156462561271101394768531510511335921849834374636270565131320901530921548120918789466131661104669610952120010401839079735814670181209351502106657671201890446712055909522771242669501061569015819214215017125923711851961184917018121013349773819259651068137307791506701610428121020331110315056130661062729010048807312674217115190662857018121191469731006657855444375081211192786736647227712426695017690236171191909817013317078121217204318116665180566142666414307177907974063127812121357419073166934990955807029879117118121318150180665723841122741814611016716512513070665375081213133841106651306278111389753537307661038121417103178564063113588052322474147291779079740631278121417672064372661021201661422272122609081081148337812151016231125307791661244450051812153620431872666826165631412116115022261137187110160572101115190204671429087901033311371874017567707812161256631512455090124101654013548079181216187894661316611046696109521200104018390797358146701812171098617575590475842419011751228121713349773819259651068137307791506701610428121814752203166517711086833666146901131488121891469731006657855444375081219814631961693077911303781219172043181166651805661426664143071779079740631278122033142631497101966610290320906374719566641311059086714666807663671212961119098041758881220181501806657238411227418146110167165125130706653750812211218121111566611046236142190685781221171031785640631135880523224741472917790797406312781222122353473574111669013171051231578122210162311253077916612444500518122320789456107111661061836251141124103290416313618362117812231256631512455090124101654013548079181224922790493966690931711812241098617575590475842419011751228122527251311469830779190112104956150805751110493496261508051562110227100893171181225147522031665177110868336661469011314881226263841107266753171104911115080575111049298561508013195115051146180667608281226814631961693077911303781227207894728372247296107067010329011604182713586519271418122733142631497101966610290320906374719566641311059086714666807663671212961119098041758881228101020773174113119016266904236781228121812111156661104623614219068578122911258128666516651422701530811378122912235347357411166901317105123157812302525812867290129615013018181147681119890661505130290859012013093171181230207894561071116610618362511411241032904163136183621178123113781507213519113290666581841081231578123192279049396669093171181232453025964372651113122146110323712509590867572264183209049290904122676987978725891767353147976610290242125262229879151812322725131146983077919011210495615080575111049349626150805156211022710089317118123313232151103290535470591328725891730779781233263841107266753171104911115080575111049298561508013195115051146180667608281234182703131325751092234567353147976610290262229879781234207894728372247296107067010329011604182713586519271418123522150320526651664239087447917281491501471702622276909879781235101020773174113119016266904236791236965190520791413076690218812361125812866651665142270153081137912371439265766576613012101111545062781032901658123725258128672901296150130181811476811198906615051302908590120130931711912383281775307791508661301210111228886579081091842131307651902226651254425614241307669075881238137815072135191132906665818410812315791239226312066514894112486528141701123763213167054065190520791328123945302596437265111312214611032371250959086757226418320904929090412267698797872589176735314797661029024212526222987915191240262581286665114771764414157155410131334507518835613575045186516182795377417828124013232151103290535470591328725891730779791241182063114698750136103854066911804182896856519013578124118270313132575109223456735314797661029026222987979124223631206651756989060912128013812452079132301130661247968086110812422215032052665166423908744791728149150147170262227690987979124316297772183419140112674537321503193117011225711091243965190520791413076690218912441320678417196107120181171591664149089124414392657665766130121011115450627810329016591245106014573745373213690368319124532817753077915086613012101112288865790810918421313076519022266512544256142413076690758912461320617644325695907986441415715541013191246226312066514894112486528141701123763213167054065190520791329124718521175751023196331566181249014212476901475775791247262581286665114771764414157155410131334507518835613575045186516182795377417829124820196510511311511091461402245378251327807581475771479873291248182063114698750136103854066911804182896856519013579124911196146300396155416668876682758291249236312066517569890609121280138124520791323011306612479680861109125011781507232190110664241831910723912501629777218341914011267453732150319311701122571109125124596438127254227373013766609017177615020791661507710275151041912511320678417196107120181171591664149089125218691452829618741967333236110370661083275168071419125210601457374537321369036831912532354090935167220663291076644171571488329368919066108320929125313206176443256959079864414157155410131912542410621772931726612453231661029019832936891110280138322431765449125418521175751023196331566181249014212476901475775791255161854573661242121011242125661029026222987919125520196510511311511091461402245378251327807581475771479873291256101901709675460106395255247557912561119614630039615541666887668275829125781020204129665189669591257117815072321901106642418319107239125820105845147150491961331103314785158724742107319879117119125824596438127254227373013766609017177615020791661507710275151041912593333217729317224866421418779107901930766901011114621779113566151233841046847241267071511309125918691452829618741967333236110370661083275168071419126023306486540610431032170130732118014501501180536701118627351069066400134912602354090935167220663291076644171571488329368919066108320929126118392217563077917786127064942271163011105456688540912612410621772931726612453231661029019832936891110280138322431765449126212258128672321901107507690664185409126216185457366124212101124212566102902622298791912632878150665131151915906611302261151120577061567628013831911111364792987911711912631019017096754601063952552475579126429134751141205696418454414791901396413037307662484131437832893768162317915389126481020204129665189669591265231726166576132903077911368821401817506653149382537665328756537912652010584514715049196133110331478515872474210731987911711912662358611112611323631203712332248472905315566609020730925717089126633332177293172248664214187791079019307669010111146217791135661512338410468472412670715113091267153882254226145051326629140662561165128091267233064865406104310321701307321180145015011805367011186273510690664001349126814647225425595110115013970523012917411191268183922175630779177861270649422711630111054566885409126929817756276610290302379227381437976610212016675142781472952439073151987911711912691225812867232190110750769066418540912701953351041893281517417061162112568516982519011668569127028781506651311519159066113022611511205770615676280138319111113647929879117119127136631110665115410665761106651544251145137711118195750248278961038539730566642390506570552661245427951912712913475114120569641845441479190139641303730766248413143783289376816231791538912723139217729317218776756766248411356624841797311232511210930779178403319027161929127223172616657613290307791136882140181750665314938253766532875653791273291703283790965551112183790965714511032411072661029033890140702904198791171191273235861111261132363120371233224847290531556660902073092571708912741631432050110723211411371270147512827748427373291274153882254226145051326629140662561165128091275437894721421566101211307791951096127065261155456616816166514653113614670112329046701611561307791809701663451847513291275146472254255951101150139705230129174111912761559651051908107906610290257140266387623389127629817756276610290302379227381437976610212016675142781472952439073151987911711912772380996150722361211708845913668250436155476106529196347313107171369127719533510418932815174170611621125685169825190116685691278138145462017915047241875115170140661519127836631110665115410665761106651544251145137711118195750248278961038539730566642390506570552661245427951912791463315072242125305183293681627911241319127931392177293172187767567662484113566248417973112325112109307791784033190271619291280146742579012518310108329368162317911241929128029170328379096555111218379096571451103241107266102903389014070290419879117119128115266110182146636669662251067935112840213429128116314320501107232114113712701475128277484273732912821710641507275227156566112872192063432784115081036912824378947214215661012113077919510961270652611554566168161665146531136146701123290467016115613077918097016634518475132912831628251662411111139144182785014513290566141013491283155965105190810790661029025714026638762338912841539410298571765669032940374076114690141912842380996150722361211708845913668250436155476106529196347313107171369128516344514591329029213521041531475125751112351251912851381454620179150472418751151701406615191286142235766611612811816642241321638013091286146331507224212530518329368162791124131912872278817052779787129907756617251627421142192332537483513091287146742579012518310108329368162317911241929128812301147510111150542802267862381309128815266110182146636669662251067935112840213429128922282513229637121513215746737309683079632676135532512054791289171064150727522715656611287219206343278411508103691290173575123651896559088576622492873712349511191290162825166241111113914418278501451329056614101349129110446146151150454718096681909129115394102985717656690329403740761146901419129211117514673675716427747336912921634451459132902921352104153147512575111235125191293167354570296967057100796871316269010790141912931422357666116128118166422413216380130912941912596641523079159066537661211443076644741100796429129422788170527797871299077566172516274211421923325374835130912952278150726690109513359661029613383349618319811623821845162692912951230114751011115054280226786238130912962681773756629677279715098820259256112681069081075113075111208937727911419129622282513229637121513215746737309683079632676135532512054791297121967851102151109307721106906818491297173575123651896559088576622492873712349511191298161051648750966369825135131307662790561577191298104461461511504547180966819091299171364418436651490130183904350727115548751358918912991111751467367571642774733691300139385103074236913015814567192226536969130016735457029696705710079687131626901079014191301163437898105822150105120200511627674010417773191301191259664152307915906653766121144307664474110079642913021932845362512456611770974427120127343307872909177093589130222781507266901095133596610296133833496183198116238218451626929130316190773816620111515966959825133870936266809130326817737566296772797150988202592561126810690810751130751112089377279114191304329484573843969018741967140876118467781929079197161793149177810584979727111150305781929081191304121967851102151109307721106906818491305261036236781061055667112149633584698410410825915255681641461779079153456719130516105164875096636982513513130766279056157719130624789466516636367307661616447815722234112012742930787258917574229913061713644184366514901301839043507271155487513589189130724105112411750223669010631244549026177966952888149061345457422766809130713938510307423691301581456719222653696913081237178989915519373683321393171191308163437898105822150105120200511627674010417773191309463503746901032907547843969082774668274535775811304251319159030766109751321974798704358177763133319513814013841681849130919328453625124566117709744271201273433078729091770935891310122209021232491590453906680901419131016190773816620111515966959825133870936266809131191166514497639915904471519131132948457384396901874196714087611846778192907919716179314917781058497972711115030578192908119131215788784991416671843201564118390232298913122610362367810610556671121496335846984104108259152556816414617790791534567191313111049141665711130515066511577191313247894665166363673076616164478157222341120127429307872589175742299131420817738113566860135100657327331797626902279021614379191314241051124117502236690106312445490261779669528881490613454574227668091315253321772931723076830798750756612901602451927521405175214031775174191315123717898991551937368332139317119131627251783620930598251130239907373114466102902421253051238662967112618372889131646350374690103290754784396908277466827453577581130425131915903076610975132197479870435817776313331951381401384168184913178148784321731751719559131712220902123249159045390668090141913182580211026224537213145011181120938868120121080210869131813510541662931319131891166514497639915904471519131918297514543076830796307110540378441135131105203791319157887849914166718432015641183902322989132016357512365189690882751662249293123495379132011104914166571113051506651157719132118266110120951144135764312323011102668985127148870891321208177381135668601351006573273317976269022790216143791913221125131125183110877481109353100791322253321772931723076830798750756612901602451927521405175214031775174191323142454573124275732421252011598797327100913232725178362093059825113023990737311446610290242125305123866296711261837288913241310511247509669528881490613454756675913248148784321731751719559132517817731353077911723076672979118075796305901097209132525802110262245372131450111811209388681201210802108691318135105416629313191326262581286721029024911041307651557022112964173317911103710811103799211010091326182975145430768307963071105403784411351311052037913272329641243266145901290182443115139418315305534274170279111037913271635751236518969088275166224929312349537913281920631125183110668774811093531007107251129779111013392913281826611012095114413576431232301110266898512714887089132930596510432123521043141416605403072006628686490661041049014680177731130867137021011436913291125131125183110877481109353100791330181487843219899263961651158165150786623702906824491330142454573124275732421252011598797327100913311433217712010203166131165140713116514379018491331131051124750966952888149061345475667591332167815072301110668841221573221423830130530591332178177313530779117230766729791180757963059010972091333161501807210722015525262708128124041171090305969133326258128672102902491104130765155702211296417331791110371081110379921101009133427258128666516539066749753075732327533661247032404117168329368106903059691334232964124326614590129018244311513941831530553427417027911103791335251051124750896695288814613454758112510131656610101225247973793409012425691335192063112518311066877481109353100710725112977911101339291336221020773412705407009272351085853126211025114036963273059010413691336305965104321235210431414166054030720066286864906610410490146801777311308671370210114369133717258128666511554185166140818071301416468057588639133718148784321989926396165115816515078662370290682449133816150180727513054151155126848865919912390130091338143321771201020316613116514071311651437901849133916289440116657626131782120444142116651157719133916781507230111066884122157322142383013053059134016596510432123521043141417262293072006636014813691340161501807210722015525262708128124041171090305969134112781507215541848827426627129986391341272581286665165390667497530757323275336612470324041171683293681069030596913422480996319721593225651214132903076621112030322762797307120210817087979134225105112475089669528881461345475811251013165661010122524797379340901242569134323345207263151762349595546511095637905471101211378955403191343221020773412705407009272351085853126211025114036963273059010413691344271062177293172982519073372062833811101181219041810106366905161101181211719134417258128666511554185166140818071301416468057588639134515781507218357951321839021759741158483191345161501807275130541511551268488659199123901300913463710511241175675237411441050669086979638813164390109115816026766610290597897553129236227909116651913461628944011665762613178212044414211665115771913471622750866521082341120149429328155378166140164500913471659651043212352104314141726229307200663601481369134820921029675462417690312477842680175751987971227141913481278150721554184882742662712998639134922884325951956036580563546215117861251203248259174271479134924809963197215932256512141329030766211120303227627973071202108170879791350181503205266515664175724185570176147870667147913502334520726315176234959554651109563790547110121137895540319135117350374690666090904746638103853990356651913512710621772931729825190733720628338111011812190418101063669051611011812117191352272582964756155403540135390138102725417690366136904847913793469311066403134913521578150721835795132183902175974115848319135331289440116651455155403540463266907431519632361551307610431032155130170241871779110671169135337105112411756752374114410506690869796388131643901091158160267666102905978975531292362279091166519135492861108966508987911711913541622750866521082341120149429328155378166140164500913555224920489031665112914077542232918090147373321920668537661029077537142379411573198750195120238121937662961201127513059089961406671419135520921029675462417690312477842680175751987971227141913561820678411196610575422322224537237371305235296379135622884325951956036580563546215117861251203248259174271479135722974175862807021911003959063210513538550903301471063772237147913571815032052665156641757241855701761478706671479135817631110665115419351506033290156791538987911711913581735037469066609090474663810385399035665191359181028511035379879112210371041771146902152714884170891359272582964756155403540135390138102725417690366136904847913793469311066403134913601235751454308412645371040183907914891360312894401166514551554035404632669074315196323615513076104310321551301702418717791106711691361169864537474315407007245111509059696266389136192861108966508987911711913622125131146981836637042854013902713587241917115027148841708913625224920489031665112914077542232918090147373321920668537661029077537142379411573198750195120238121937662961201127513059089961406671419136314258296229170308560411159425190296741349136318206784111966105754223222245372373713052352963791364151051601202178561151132363166802104431319136422974175862807021911003959063210513538550903301471063772237147101365510945441245023191365176311106651154193515060332901567915389879117111013662610229970651388131247124194144755198791508142951511352334176517617172913661810285110353798791122103710417711469021527148841708101367291376112168262667907567690324609041272216601110477540524659010385397307416626251913671235751454308412645371040183907914810136828366784381779989050375307797202561153987916099540761175610966801243734691368169864537474315407007245111509059696266381013692320617644321014132750667304110820178577128315257377821431103741119136921251311469818366370428540139027135872419171150271488417081013701456617644210385399066730472931011112905191370142582962291703085604111594251902967413410137115116746312045797811496571013192269317915191371151051601202178561151132363166802104431311013726148784328293671013724289329661021013731520145490288853906131492477456115398791511013735109454412450231101374142322026583511268071319686910614196126101374261022997065138813124712419414475519879150814295151135233417651761717210137518181111590192269317911030798694084361053117166113421013752913761121682626679075676903246090412722166011104775405246590103853973074166262511013762720678415006777010510004113570712401005125451151152717679012610311931007081013762836678438177998905037530779720256115398791609954076117561096680124373461013771737417770770143784749633546597771192903871071401013772320617644321014132750667304110820178577128315257377821431103741111013781059611012301219010329072121454010137814566176442103853990667304729310111129051101379391020567732125705168261413441324735120054190425140864113041770612103534111922693179113146346315584070810137915116746312045797811496571013192269317915110138018656112137903111509321847266371708414166311361301013806148784328293671013811437012831564197227723661106911309711701013811520145490288853906131492477456115398791511013822958611151712610329037539901503143665191306612450852208255371055314166609014810138214232202658351126807131968691061419612610138317117695131107940222905629573119824463214271471013831818111159019226931791103079869408436105311716611342101384161681901706116386510439221020790161158867208101384272067841500677701051000411357071240100512545115115271767901261031193100708101385227164148834151261331661304639026075702545101176902531428527081013851737417770770143784749633546597771192903871071401013864161290206710905159095358206681472896963111509080652412184208301262204726916190510702418247233903407411110138610596110123012190103290721214540101387265965104325237392540965551125111010729214217111391212103290106845702100151101387391020567732125705168261413441324735120054190425140864113041770612103534111922693179113146346315584070810138843766176443250770134145070711132402577712924081163619642956474893103217017024181991426181103245371120142901447196555709210138818656112137903111509321847266371708414166311361301013891165030041321903516220541907210138914370128315641972277236611069113097117010139016691964589102677353770065315373315912682010139029586111517126103290375399015031436651913066124508522082553710553141666090148101391276919645282102671011101901806517111122019066907541735756578852151289797101391171176951311079402229056295731198244632142714710139218532635104157213710717859349117152882018654012460362101392161681901706116386510439221020790161158867208101393101201537120715112811332068190101393227164148834151261331661304639026075702545101176902531428527081013941674678411658361391226641217571411905043810610139441612902067109051590953582066814728969631115090806524121842083012622047269161905107024182472339034074111101395279561122106634227221696499048181948190498139633120110091103814290377901301013952659651043252373925409655511251110107292142171113912121032901068457021001511013961182614189232139768221392626687010139643766176443250770134145070711132402577712924081163619642956474893103217017024181991426181103245371120142901447196555709210139710162319624779111022249050877010139711650300413219035162205419072101398175621419954076117661309954076117905919035130101398166919645891026773537700653153733159126820101399295241109012129513229319148251109139412917116829661301394129905919035130101399276919645282102671011101901806517111122019066907541735756578852151289797101400172464315066513211399010703198151951327664824710140018532635104157213710717859349117152882018654012460362101401222322029095212314546162962741604106666090700513827067147101401101201537120715112811332068190101402162555105166609098090885752734881306872024110140216746784116583613912266412175714119050438106101403191062178711101231177907917227704524567714744704372932101403279561122106634227221696499048181948190498139633120110091103814290377901301014041227714122871063190141710690141101404118261418923213976822139262668701014051559681222581418127849120096150402107485710140510162319624779111022249050877010140611266317842161570532616369014110140617562141995407611766130995407611790591903513010140711358317842151419532611160901411014072952411090121295132293191482511091394129171168296613013941299059190351301014081010362361421063211429803166511014081724643150665132113990107031981519513276648247101409205097847661437297918601041078172879013632549707156362101409222322029095212314546162962741604106666090700513827067147101410152464111031966540358172616716974187233048101410162555105166609098090885752734881306872024110141112103631512021079103411478229646861014111910621787111012311779079172277045245677147447043729321014127255510511117064502081014121227714122871063190141710690141101413226703713613271117914702344680663114132201371001230913113010141315596812225814181278491200961504021074857101414123709557374225774147784625165213010141411266317842161570532616369014110141511101975101108275311764170254110141511358317842151419532611160901411014161353851043324663566577381397782014054010141610103623614210632114298031665110141711182491471385621811130111096141014172050978476614372979186010410781728790136325497071563621014182110363151202107916804208711312747915103290411370190805142101418152464111031966540358172616716974187233048101419162063176610610866805132103853990416551321014191210363151202107910341147822964686101420572952466381110142072555105111170645020810142115256259253319071397262901021474104142171110142122670371361327111791470234468066311413220137100123091311301014221017981810114158326616691213010142212370955737422577414778462516521301014232011366611041907516613076250956233079090668841652130101423111019751011082753117641702541101424195863176610614211091073666511875675366110746791950471014241353851043324663566577381397782014054010142542102423903222337750901291371429037103290905671902221208947951346701316170713214090596373519095836473519047647101425111824914713856218111301110961410142610131453715568631665851321014262110363151202107916804208711312747915103290411370190805142101427456684987911014271620631766106108668051321038539904165513210142815105112411750665214463183796965590543751014285729524663811101429101812111112465113511819537101429152562592533190713972629010214741041421711101430259563245579813253851531666090140791482471032909653990906551321014301017981810114158326616691213010143115236176442750905133329395567101901037411110143120113666110419075166130762509562330790906688416521301014322559631416611059370815090184511032904753990413510911112641661701138101432195863176610614211091073666511875675366110746791950471014339184317536611074679151130101433421024239032223377509012913714290371032909056719022212089479513467013161707132140905963735190958364735190476471014341336678433498049055403589254096905111014341013145371556863166585132101435341606374190854010451703018031540597301201856661906641413461911702227151146111811317016453155437101435456684987911014361626190775164766110322145120490551121886131101436151051124117506652144631837969655905437510143717108117871110123146572979113587212051619011596199813101437101812111112465113511819537101438226051381101317701329077294314378121496145191412918190623540101438259563245579813253851531666090140791482471032909653990906551321014391434314784770465914064126811612190623540101439152361764427509051333293955671019010374111101440101022987065113817590139591511014402559631416611059370815090184511032904753990413510911112641661701138101441113561283770626974711685931161311014419184317536611074679151130101442161989110847103290274914826511564111991465138101442133667843349804905540358925409690511101443615026952477406137101443341606374190854010451703018031540597301201856661906641413461911702227151146111811317016453155437101444102264914113811675131304141511014441626190775164766110322145120490551121886131101445172751401383166511166651299745341116131138151101445171081178711101231465729791135872120516190115961998131014467370225424981396612410144622605138110131770132907729431437812149614519141291819062354010144722471120621032901314065758551131406906861101519091532146911211014471434314784770465914064126811612190623540101448132305105146319568531510511461111613710144810102298706511381759013959151101449101062206535554312535076611021810144911356128377062697471168593116131101450539217790670110101450161989110847103290274914826511564111991465138101451162275081571641374781174193322374095162211641821014516150269524774061371014522911280421741811311118311031512311011025312212087725396559085728240681171253116137101452102264914113811675131304141511014531120631791102923376925414161041311014531727514013831665111666512997453411161311381511014542726190583125874917413236315649113113312307024188710137440659824131264741014547370225424981396612410145572759047613257011082101455224711206210329013140657585511314069068611015190915321469112110145614119746312014290731571673012050678133167101456132305105146319568531510511461111613710145724117695781311875610792022251171594181118121453904091944931262601401014571010622065355543125350766110218101458227719052611122290139341341529045437679117261139813209047013110145853921779067011010145910952905566641472979190526371014591622750815716413747811741933223740951622116418210146081623122249015550879151101460291128042174181131111831103151231101102531221208772539655908572824068117125311613710146181128042174181650459421014611120631791102923376925414161041311014622168416129655906487731654519871126146321082864913154711471014622726190583125874917413236315649113113312307024188710137440659824131264741014631519693418142625532124951032909012122231142101463727590476132570110821014641426631791110294119667533249651220714710146414119746312014290731571673012050678133167101465141623114612098744314604710385399074211581301014652411769578131187561079202225117159418111812145390409194493126260140101466151681901706116381301779063779152570321616115101466227719052611122290139341341529045437679117261139813209047013110146710227103161109770987973411135401014671095290556664147297919052637101468272279077516475577416677106666090532791771117490320905105114217111301014688162312224901555087915110146996519052637149124341415710146981128042174181650459421014701610629070215158013110303723031416660904743710147021684161296559064877316545198711261463210828649131547114710147124289131717829032190711294520511181223457113235401111100266190571014711519693418142625532124951032909012122231142101472236817052471168401728309622542917242017026290139741041421711130101472142663179111029411966753324965122071471014731116081017667841829961344147910147314162311461209874431460471038539907421158130111474108127884906005404174694232311014741516819017061163813017790637791525703216161151114759518960959011166324833210147510227103161109770987973411135401114762523256773170682141443579159107105042215034411195125804641554026217485710147627227907751647557741667710666609053279177111749032090510511421711130111477831432050110173736641101477965190526371491243414157111478193311103150562164732641150558182668329511873456169632101478161062907021515801311030372303141666090474371114791610242390505928061563136611032103290129047101479242891317178290321907112945205111812234571132354011111002661905711148031102268327065130779122647776906741115309614111971138821105757752465901038539730741171014802368170524711684017283096225429172420170262901397410414217111301114812254877841471151654171004665632854122612946418041658529610148111160810176678418299613441479111482113061165695184540253911938529611148242893296610211148313886318561305127072265051011761718579611148310812788490600540417469423231111484102322101325756756115329979132111484951896095901116632483321114852766320501107296045192901151477711588671535131479176134418726212301114852523256773170682141443579159107105042215034411195125804641554026217485711148618255510516660909809088113157526657248813068720241111486831432050110173736641111487162264911151132363157661428892228904921511114871933111031505621647326411505581826683295118734561696321114881472831965196187861364799655224719011148816102423905059280615631366110321032901290471114891620678414896217412528232837907510079167111489311022683270651307791226477769067411153096141119711388211057577524659010385397307411711149039162311427211062229013956952559042011112536250907310967162672598311642313796953104572079067110711711114902254877841471151654171004665632854122612946418041658529611149123106211066155322471107297915234215224711011366772366110691130971961114911130611656951845402539119385296111492113574583951801080661021201607911114921388631856130512707226505101176171857961114932435878472016157841804759615890666090757147103290180937067111493102322101325756756115329979132111494974678411658362368677916711149427663205011072960451929011514777115886715351314791761344187262123011149579484583790962433111149518255510516660909809088113157526657248813068720241111496146919645891026724741101656115398791511114961622649111511323631576614288922289049215111149711137611257153735217339168172481570111497147283196519618786136479965522471901114989102960906115141653421401114981620678414896217412528232837907510079167111499118156773170682616632483315111149939162311427211062229013956952559042011112536250907310967162672598311642313796953104572079067110711711115002978310603291090161902604724217983457913249327147621503322714115190307791102211111500231062110661553224711072979152342152247110113667723661106911309719611150120282364972001706001299025346821290671104705165214611131111501113574583951801080661021201607911115022349414726211624717796987912165247661103221451721151523114617111502243587847201615784180475961589066609075714710329018093706711150310137611265851669041090146171115039746784116583623686779167111504311062120702612369043141668116647180191621820137379061137371043141376666813490137371115047948458379096243311115051428690470515254353289120148910464111381115051469196458910267247411016561153987915111150610182491473115166748192131111506111376112571537352173391681724815701115071872952262111086512246671519014951605511582703711150791029609061151416534214011150812699812225825519010965113068720241111508118156773170682616632483315111150917246784387211191104903216690106805664413111150929783106032910901619026047242179834579132493271476215033227141151903077911022111115101113969697779190107237811841612171115102028236497200170600129902534682129067110470516521461113111151119131661150910132911267511319586715190711152409716122611151123494147262116247177969879121652476611032214517211515231146171115121019077311554632773426905962261115121013761126585166904109014617111513261703211591479196167115162903262611765090967918168728729214702418111513311062120702612369043141668116647180191621820137379061137371043141376666813490137371115141125813162125131325066102962301371115141428690470515254353289120148910464111381115152039211047037161223621114790775864718749904761321111515101824914731151667481921311115162314319015180108452489032662419087201311318290270354177131111516187295226211108651224667151901495160551158270371115171910622067714654110873272916821816211111177111310011114611151712699812225825519010965113068720241111518151606945713910057469063512022112076471111518172467843872111911049032166901068056644131111519241309047651991611407501004154111112912101405656901005664111311115191113969697779190107237811841612171115201995290717144016803814074010041112512277761202131111520191316611509101329112675113195867151907111524097161226111521198177391155540665871301308111613062991133176411140111521101907731155463277342690596226111522196602095137370613290166374515464704161801043649045011152226170321159147919616711516290326261176509096791816872872921470241811152318776324915112153690904166841461113116647754711152311258131621251313250661029623013711152414656112349741110322145120511515231146111115242039211047037161223621114790775864718749904761321111525183438433756641111874461701423004641554026217481461711152523143190151801084524890326624190872013113182902703541771311115261619850108471561204876331084769464411511138111526191062206771465411087327291682181621111117711131001111461115271697681222613236631061131784878726923218651111527151606945713910057469063512022112076471111528716063154012418065901115282413090476519916114075010041541111129121014056569010056641113111152918650300110212515591301113212904126821266110856611115291995290717144016803814074010041112512277761202131111530219983205011021251321146137127014721211861017691411493184443131111530198177391155540665871301308111613062991133176411140111531141940773901659125511598797161142921477111531196602095137370613290166374515464704161801043649045011153212134206502414862951732474142275456111532187763249151121536909041668414611131166477547111533171514610577322473077651321876215596710904861115331465611234974111032214512051151523114611111534285531221251464155401832968371032904121112153690904166841461113113064755047111534183438433756641111874461701423004641554026217481461711153522252465318132012010861864112651508706132250141470104129111381115351619850108471561204876331084769464411511138111536231270121053712157551669041017025395468212906711047051652146111311115361697681222613236631061131784878726923218651111537183127731451785123766100190451992169066156710146171115377160631540124180659011153811768121080750521036265909172114621115381865030011021251559130111321290412682126611085661111539181251471122251766617969125511598797130114292141511115392199832050110212513211461371270147212118610176914114931844431311115408604260901881449777911307111540141940773901659125511598797161142921477111541125807732247307550513296106770711115411213420650241486295173247414227545611154215768105145153212113113113213854525934141414011154217151461057732247307765132187621559671090486111543184514641342521080311386951357631546520317021115111154328553122125146415540183296837103290412111215369090416684146111311306475504711154491881702179617263913081566531115442225246531813201201086186411265150870613225014147010412911138111545138535070651911112712865836456115311115452312701210537121575516690410170253954682129067110470516521461113111154614576256443361706346664866241905361381115461831277314517851237661001904519921690661567101461711154711451469099543425307259120707151111547117681210807505210362659091721146211154851021311825951111548181251471122251766617969125511598797130114292141511115491525412107734561022222411410456706120107125911111549860426090188144977791130711155013172567061379714790747804634141477111550125807732247307550513296106770711115512751423315010190090106337665889021555463521461113151220678132964634115125111551157681051451532121131131132138545259341414140111552132644157077108904739081415401341381115521845146413425210803113869513576315465203170211151111553113182704117711162405136131111553918817021796172639130815665311155430314131101131165511394114856662321315092037101901815834161137802222905245111381115541385350706519111127128658364561153111155512900103902171163071771171542921415111155514576256443361706346664866241905361381115568881062901547222124151111556114514690995434253072591207071511115572767567731706826781226261145132647371215369090416684146111313836471044711155751021311825951111558152441032909773736714210693720214513294146171115581525412107734561022222411410456706120107125911111559111000170524719651051908106651211155913172567061379714790747804634141477111560215451194817136141129902305176186416705166154238211138111560275142331501019009010633766588902155546352146111315122067813296463411512511156136635285611568326064794041161322155112511741417725121547119308953732129067110470516521461113111156113264415707710890473908141540134138111562238815045146471291467151467641469441570172515113633114617111562113182704117711162405136131111563920258212514641554026217541115633031413110113116551139411485666232131509203710190181583416113780222290524511138111564199616145147344234739611413015853681731235413821113811156412900103902171163071771171542921415111156516675964321251111627721586690170782251461113111156588810629015472221241511115662031217061716723119663277342690596146141615711101481461711156627675677317068267812262611451326473712153690904166841461113138364710447111567186042609018814497779117079125511598797383114292147711156715244103290977373671421069372021451329414617111568105504766113477329610677071111568111000170524719651051908106651211156961021564651163421401115692154511948171361411299023051761864167051661542382111381115701051640624147406241560914064111157036635285611568326064794041161322155112511741417725121547119308953732129067110470516521461113111157192872417828233618756151154111571238815045146471291467151467641469441570172515113633114617111572936131572187621557109048611157292025821251464155402621754111573911815196130245341649075011157319961614514734423473961141301585368173123541382111381115742481412106347222241147132090666090140441481165145112123697710610664711157416675964321251111627721586690170782251461113111157512318811306519762134113017022221301776111575203121706171672311966327734269059614614161571110148146171115761635556756142351595675083777368112046750905111157618604260901881449777911707912551159879738311429214771115775124643286147111577105504766113477329610677071111578101504102157583219049031411561115786102156465116342140111579942129796752821704077911221115791051640624147406241560914064111158015224711812225122231141321038539445419669511158092872417828233618756151154111581181449121090222311413210385394454196695891701417914811158193613157218762155710904861115822028612101972075813290558661321424152868125590420111111582911815196130245341649075011158318252953201201021079402229056295739511914541164621401115832481412106347222241147132090666090140441481165145112123697710610664711158410812206435618722223171515711158412318811306519762134113017022221301776111585123025964356141637130403966416168111158516355567561423515956750837773681120467509051111586177963154058906660909047282640977791416773711158651246432861471115871410419307505127675505110190124287299157147111587101504102157583219049031411561115887249204890316613129911158894212979675282170407791122111589263438495688419777914791351151301713210329017612012111743192903879071147111589152247118122251222311413210385394454196695111590822448972341952227147111590181449121090222311413210385394454196695891701417914811159110121010437244614213322231142111591202861210197207581329055866132142415286812559042011111159215174148899098152222958467757862222489032111592182529532012010210794022290562957395119145411646214011159317256936102713971090401117952413216490130240571115931081220643561872222317151571115949197525711101481623182013611159412302596435614163713040396641616811115953164652156411159517796315405890666090904728264097779141677371115961659611111132224711546216255272283521038539101271111596141041930750512767550511019012428729915714712159751334544124502311115977249204890316613129912159866561902833521445211159826343849568841977791479135115130171321032901761201211174319290387907114712159916120212013790470573827066176433111191302401081115998224489723419522271471216001612840656377437495701361161403114815613170111160010121010437244614213322231142121601161028022240151355013110271102376803162111311116011517414889909815222295846775786222248903212160225781502225117625913290391104476118831116130565456555447901762224457761116021725693610271397109040111795241321649013024057121603722141210181569071134111603919752571110148162318201361216041510286112055511671149164411161818613870111160431646521564121605141891478190489731490640100222971565381116051659611111132224711546216255272283521038539101271121606162415105130787255436141390148156937311351411311216064289329661021216071223535581561104923150415511138121607513345441245023112160881075355811868010051612961216086656190283352144521216091311671254977436651688711145116561131121609161202120137904705738270661764331111913024010812161099477025216711474356901381216101612840656377437495701361161403114815613170112161117636315170628858746823614139012451127771415112161116102802224015135501311027110237680316211131121612488381492712161225781502225117625913290391104476118831116130565456555447901762224457761216131925571428113845147743136562124156677612758525511138121613722141210181569071134121614186264111065272833722422519049632131722462451102712161415102861120555116711491644111618186138701121615172064315072878278107170651211131451252563782764201216151418914781904897314906401002229715653812161691089095841292506625925171216161624151051307872554361413901481569373113514113112161732206311427211062461101033725554479023110329018611177641175572615114055227167733090907741137121617122353558156110492315041551113812161892497077614769467310103277121618810753558118680100516129612161923105812831565571192125666811131504155374315361951204189011441622121619131167125497743665168871114511656113112162019851128905643610712545077020725821151678517445140121620994770252167114743569013812162123817737123513277582069021415313644801282069024551036570121621176363151706288587468236141390124511277714151121622198149017674132901042457151429031031520012067115131121622488381492712162310286901712022069010424571571216231925571428113845147743136562124156677612758525511138121624131020104511049056131206901042452111511216241862641110652728337224225190496321317224624511027121625107119047071802175770612010711561216251720643150728782781071706512111314512525637827642012162618102861902875211138610419512048761112564214090121137121626910890958412925066259251712162732270903270651503706416530918680235278266151165804537141145245080746185881966913175701511216273220631142721106246110103372555447902311032901861117764117557261511405522716773309090774113712162819138290123203246411907096741195120616140955807418805311216289249707761476946731010327712162917130907796938913077038462008141111442021311216292310581283156557119212566681113150415537431536195120418901144162212163010181211115689125450207355471216301985112890564361071254507702072582115167851744514012163111684182084432084176907575401216312381773712351327758206902141531364480128206902455103657012163227249902715245411395250451610271186792626183213784136126261591315411441156401216321981490176741329010424571514290310315200120671151311216332635745839516816231146751020612122008179148251132454514327631204823113112163310286901712022069010424571571216342658631142721106142116161669109075032090685705181714119417625924758791216341310201045110490561312069010424521115112163510337506641810876207144111111216351071190470718021757706120107115612163632206311427211061819575017324833224165329951150908668841764915621123265905324112163618102861902875211138610419512048761112564214090121137121637201401957412729102669025053121283248841207260744214411111121637322709032706515037064165309186802352782661511658045371411452450807461858819669131757015112163818170872144906122079204011972221249811365456950770137121638191382901232032464119070967411951206161409558074188053112163925728277510512279054710217114748071600543138154132116151703132211611211371216391713090779693891307703846200814111144202131121640820311144910847802302138121640101812111156891254502073554712164111427454123524676231136547411371216411168418208443208417690757540121642222061751424127414047480716005431381541321161517031329053223517156121642272499027152454113952504516102711867926261832137841361262615913154114411564012164314507811713214790991542121817013273313112164326357458395168162311467510206121220081791482511324545143276312048231131121644156048117132855844111130913275076904215401216442658631142721106142116161669109075032090685705181714119417625924758791216451142610114215119511175076904215401216451033750664181087620714411111121646221509121251802294721523341177222412741313271915174771211371216463220631142721106181957501732483322416532995115090866884176491562112326590532411216472928612062195120616521391968212564253176901151914165309180195120156661701681411311216472014019574127291026690250531212832488412072607442144111111216481275234293166571045656706118075012164818170872144906122079204011972221249811365456950770137121649152581286212512122484132109277221512002134712164925728277510512279054710217114748071600543138154132116151703132211611211371216501410112095877113195151230118674771211371216508203111449108478023021381216518150998611032668110164131121651114274541235246762311365474113712165217249204930373619070115232151896419103290186111776121652222061751424127414047480716005431381541321161517031329053223517156121653756684988208108372401216531450781171321479099154212181701327331311216549366355147511572115661220121654156048117132855844111130913275076904215401216551721881058919761656327390906034771316360771216551142610114215119511175076904215401216561075837134906011178677013112165622150912125180229472152334117722241274131327191517477121137121657626758912532113812165729286120621951206165213919682125642531769011519141653091801951201566617016814113112165814339175814119070242217528490131811157613712165812752342931665710456567061180750121659171075355850065316137191911605511138584128015112165915258128621251212248413210927722151200213471216601734024917990810146132906161105516132115151351311216601410112095877113195151230118674771211371216612628060750282607265310448730692604132471010624155111388660413182055649577121661815099861103266811016413112166224661864111066131691412151622851327941669064786241817029680131121662172492049303736190701152321518964191032901861117761216632858357612185611565329951320906690180106147825129064819590104131621113712166375668498820810837240121664302063114272110619671140736629071881909017323209066901651070714154286518906417712166493663551475115721156612201216651620678438721116275261131607461715611064177121665172188105891976165632739090603477131636077121666154471113114177967515406162389020710363601511216661075837134906011178677013112166756407421551461381216676267589125321138121668121277582827871412612116723413812166814339175814119070242217528490131811157613712166912421714710329022464415801344661381216691710753558500653161371919116055111385841280151121670678351051221211381216701734024917990810146132906161105516132115151351311216711110627077022912439013902213812167126280607502826072653104487306926041324710106241551113886604131820556495771216723315014071050192361906084006632151321216490607134171411867577061687901270540616871325348712167224661864111066131691412151622851327941669064786241817029680131121673246264314172112500491131752276195901563471329035601360184370511381216732858357612185611565329951320906690180106147825129064819590104131621113712167416249902715211664138023391143551125171113812167430206311427211061967114073662907188190901732320906690165107071415428651890641771216751310577025212956264903213515166811131121675162067843872111627526113160746171561106417712167637160810174066787134076141810322111601569072941132966690647170130110464515477127713164727955391511216761544711131141779675154061623890207103636015112167718104910727147191433236047360735155112237341281121677564074215514613812167811281589618444131796714413469812167812127758282787141261211672341381216791810918111561244748151661408337224225190496321311216791242171471032902246441580134466138121680139709196901361219156110151111371654521216806783510512212113812168112147904767100947641815613208814661381216811110627077022912439013902213812168213596314166901476641815123279213112168233150140710501923619060840066321513212164906071341714118675770616879012705406168713253487121683213881773266214908131566621490478376221569061571562111216832462643141721125004911317522761959015634713290356013601843705113812168422725306651161600918116756880701031931511251711138115641151121684162499027152116641380233911435511251711138121685109549170162215862041580351311216851310577025212956264903213515166811131121686232492048903166131308510905616166901046117121565213115648172138121686371608101740667871340761418103221116015690729411329666906471701301104645154771277131647279553915112168797107157161667211344661381216871810491072714719143323604736073515511223734128112168811340249179066129087170111231131121688112815896184441317967144134698121689121749847330341113141102227062527151216891810918111561244748151661408337224225190496321311216901259051671562183861541313116007712169013970919690136121915611015111137165452121691618588112071466138121691121479047671009476418156132088146613812169220596314166901416190131711313036851911013754314511511216921359631416690147664181512327921311216939680715280981174155111381216932138817732662149081315666214904783762215690615715621112169492891317115621290174114613112169422725306651161600918116756880701031931511251711138115641151121695141516631151330642137244617156110641151121695109549170162215862041580351311216964710918111563217112921251101768724011057517690439062201449086470112119110109212109104132902274477064031113768358136011102435612169623249204890316613130851090561616690104611712156521311564817213812169721222205171546843969056451103853929055544790606121908711042021216979710715716166721134466138121698143265128612170189470476179104364907501216981134024917906612908717011123113112169961986984214272147121699121749847330341113141102227062527151217001026192032115120490115536471217001259051671562183861541313116007712170111116612651116306103853990169087121701618588112071466138121702761651326876610647121702205963141669014161901317113130368519110137543145115112170314636315114071678567667739013168565117912170396807152809811741551113812170417651905247661275339652307110664181112710130121704928913171156212901741146131121705296561125088208108372411779079117871110124710329028715134136908674235321529034247121705141516631151330642137244617156110641151121706193741771201142143736190143391597291049696332153270241812170647109181115632171129212511017687240110575176904390622014490864701121191101092121091041329022744770640311137683581360111024356121707231621762592532050616296274160410670052371416777277325907113412170721222205171546843969056451103853929055544790606121908711042021317081516231142721106139222906188747454412450271121708143265128612170189470476179104364907501317092661226214319044321027221615064223503774318666011104775406621141212539350741661217096198698421427214713171024766176442750905128710113206117696103117250962642779610910324474117121710102619203211512049011553647131711272661764427509051829087211087896619531801971216197696283124904601051179103296121711111166126511163061038539901690871317122569196452821027326790109373249307791672173012053604717031811554755712171276165132687661064713171320204348222571015110171132573622257100217790103011015413211865512171314636315114071678567667739013168565117913171415101468699045192207901611588673077911521217141765190524766127533965230711066418111271013013171515347129320564164728122104756150478411506612171529656112508820810837241177907911787111012471032902871513413690867423532152903424713171655722633521043141121716193741771201142143736190143391597291049696332153270241813171714289269103118011967208961672619015077121717231621762592532050616296274160410670052371416777277325907113413171835379065907547352441117714866206708238411227418148411220316651662419010597159629629061335131718428932966102131719966210237612668733328074111131719151623114272110613922290618874745441245027113172019110318176690104513219081922983061095901435930586131720266122621431904432102722161506422350377431866601110477540662114121253935074166131721278619032392854710401147861072824111592323227554131659014079713985351317212476617644275090512871011320611769610311725096264277961091032447411713172211159104310122328610385399090777113172227266176442750905182908721108789661953180197121619769628312490460105117910329613172345337501732050731661301557617887557375316511041293140287635413391524863513010013720126615631586590222213066130103853920290130131723256919645282102732679010937324930779167217301205360471703181155475571317244260366101277010329065014221041489479744122791396610127705751351175314142829011517687214141315593122657151142908813172420204348222571015110171132573622257100217790103011015413211865513172527817898991027675677522115581124103290417551363549270797159277474820131725151014686990451922079016115886730779115213172615674313309212111110139222906188921501711317261534712932056416472812210475615047841150661317277682101637668115279113172755722633521043141131728131027675324797213651766241411867971317281428926910311801196720896167261901507713172919236182756711615628617226140381244157155247141414299797131729353790659075473524411177148662067082384112274181484112203166516624190105971596296290613351317301555090155700143136269599012896706124454131730966210237612668733328074111131731723618224073243170131131731191103181766901045132190819229830610959014359305861317322323676811867567103290216136517662414125165676906679101679713173227861903239285471040114786107282411159232322755413165901407971398535131733165113283790965547965730132032112033881661317331115910431012232861038539909077711317341954904635321908406651130207901611588673077911521317344533750173205073166130155761788755737531651104129314028763541339152486351301001372012661563158659022221306613010385392029013013173511169509669223266922183515987911317354260366101277010329065014221041489479744122791396610127705751351175314142829011517687214141315593122657151142908813173684312475275611539879113173627817898991027675677522115581124103290417551363549270797159277474820131737284435285611511323631212111303313665161767411558668113890103010446903627701317371567431330921211111013922290618892150171131738511567203166516680421418250903134387376217435473077914837124142496632136519879181151124272653248779071032757976776703525142131738768210163766811527911317391317371190174654030782056115290292483140131739131027675324797213651766241411867971317403910903512166870961331201073053078206732167901108411032901503143523411511305316511648243190501101511117113174019236182756711615628617226140381244157155247141414299797131741141079066907547401837809965590773751317411555090155700143136269599012896706124454131742192823921885087911824509425557288814906136278044189570131742723618224073243170131131743254352814675213766775164192130877280905096618843354454507797131743232367681186756710329021613651766241412516567690667910167971317441910737469066905041171903411768873962836914477613174416511328379096554796573013203211203388166131745214233480667533218421513267147921197516015290291342140131745195490463532190840665113020790161158867307791152131746845441135918321416664131746111695096692232669221835159879113174713102167106413017261671697418723304157131747843124752756115398791131748161023401710321231787229790296103246152217771317482844352856115113236312121113033136651617674115586681138901030104469036277013174918236182120332216190504824115012429114517790791260110131749511567203166516680421418250903134387376217435473077914837124142496632136519879181151124272653248779071032757976776703525142131750154541401299612872320681101303314903077911521317501317371190174654030782056115290292483140141751169312530041247753287411402901421233611444232311317513910903512166870961331201073053078206732167901108411032901503143523411511305316511648243190501101511117114175214318773904215210329047539904135741661317521410790669075474018378099655907737514175316868619067801080661021201668371109655536791131753192823921885087911824509425557288814906136278044189570141754191091251732190353219066920751021511433229690342471317542543528146752137667751641921308772809050966188433544545077971417552152629380442750905166549712874114029016680451465116342140131755191073746906690504117190341176887396283691447761417562610202629043790961815501247828047623240631901157011706616592818111613170713175621423348066753321842151326714792119751601529029134214014175711348783517409616296090262115170713175784544113591832141666414175813621090661311241032909649170751116137131758131021671064130172616716974187233041571417593725246581813201205877314335152144138907029149633545966321953112190797556816414619290791534717113175916102340171032123178722979029610324615221777141760331021525386186711115515167062150232491511381503441882818909013201501038539290320669133553113176018236182120332216190504824115012429114517790791260110141761292235766611666753321525215181714782903219011010066106630502321085133575531131761154541401299612872320681101303314903077911521417621758357666116120841110428143611106611050632814714176242893296610214176316106218524786105521905607105290993365307791137141763169312530041247753287411402901421233611444232311417641090687191681120750121901032326141764143187739042152103290475399041357416614176551342065060996214176516868619067801080661021201668371109655536791141766710851901869822290141766191091251732190353219066920751021511433229690342471417671619407732229645211471115090477432108535376881417672152629380442750905166549712874114029016680451465116342140141768221178921175032011089813703124156902497110526518724930779157014176826102026290437909618155012478280476232406319011570117066165928181116131707141769142173241777731151141103853973066516007114176911348783517409616296090262115170714177059666110750471417701362109066131124103290964917075111613714177134148908141343411321617716066613613832090667739012111464911154739071526908209922111246522214177137252465818132012058773143351521441389070291496335459663219531121907975568164146192907915347171141772448177375106251132901017437006194249147992524125189542111409865405132150901704071471251546139801406651272910714011371417723310215253861867111155151670621502324915113815034418828189090132015010385392903206691335531141773171319686324775396695288814906134545611539879164114177329223576661166675332152521518171478290321901101006610663050232108513357553114177415142903629031272652826955716610021106007114177417583576661161208411104281436111066110506328147141775121386175171603661018208753685057816141775161062185247861055219056071052909933653077911371417761350190364110321869013041117528111795576141776109068719168112075012190103232614177718321416619610626684683796965590934169987916691214177751342065060996214177812240205191523016656043791416007114177871085190186982229014177945327819298141779161940773222964521147111509047743210853537688141780122824140013191713010712087761651161417802211789211750320110898137031241569024971105265187249307791570141781216613795823156421511329017226140381253157167987911171301417811421732417777311511411038539730665160071141782252889086624824190643161908669030811729078845114290941038539730741661417825966611075047141783929310190866773774319086614178334148908141343411321617716066613613832090667739012111464911154739071526908209922111246522214178415301100619351510316656048157542415090468141784448177375106251132901017437006194249147992524125189542111409865405132150901704071471251546139801406651272910714011371417851321312651681229267706104202259131707141785171319686324775396695288814906134545611539879164114178615258128615122196100136532170142907319111062021417861514290362903127265282695571661002110600711417872658617511729035986421142901001841571972533194321242777101210131320905316125314178712138617517160366101820875368505781614178818142903710329032090661107004720047740415407125314178813501903641103218690130411175281117955761417891311621021251176212253110401374165831417891832141661961062668468379696559093416998791669121417909855382531320961571901642021417901224020519152301665604379141600711417918102156562628740128125314179145327819298141792133259513908686192105815011111126652037141792122824140013191713010712087761651161417939225463348661431321270184141793216613795823156421511329017226140381253157167987911171301417942644909041132906414837732152850055312344185225397779122680446656142957141794252889086624824190643161908669030811729078845114290941038539730741661417951460390105947231110904682369777911719057614179592931019086677377431908661417961267954733057157305661303052671101417961530110061935151031665604815754241509046814179711592706946651295857506652011114179713213126516812292677061042022591317071417981033750652225451032121010324365614179815258128615122196100136532170142907319111062021417996207904507663746161417992658617511729035986421142901001841571972533194321242777101210131320905316125314180062826517163609034814180018142903710329032090661107004720047740415407125314180110102340665148241190506660141801131162102125117621225311040137416583141802136743966193611921937100317110337061418029855382531320961571901642021518036102357454412450231141803810215656262874012812531518047230783630779120243141804133259513908686192105815011111126652037151805720622610296933689451418059225463348661431321270184151806818642342323159010747141806264490904113290641483773215285005531234418522539777912268044665614295715180771327474046905624114180714603901059472311109046823697779117190576151808917971951115877411711144141808126795473305715730566130305267110151809828690470511398624136141809115927069466512958575066520111151810912507027847141321371374114181010337506522254510321210103243656151811710753558951138108521418116207904507663746161518127128380901529034214014181262826517163609034815181385487783229690466471418131010234066514824119050666015181453741389016577014181413674396619361192193710031711033706151815712811510301107162311518154289329661021518169339951017142906155539421518166102357454412450231151817837014610832345680921681518177230783630779120243151818712718021214290154140151818720622610296933689451518195253370509010511518198186423423231590107471518207102308558201761903215182071327474046905624115182111109320509096510277961981051038151821917971951115877411711144151822837035530964219690160151822828690470511398624136151823111863063214247673175323209057151823912507027847141321371374115182412720354914737351142902191452503481518247107535589511381085215182567941145067813858151825712838090152903421401518267139219114015073519114015182685487783229690466471518277150785656311222571518275374138901657701518288206499024190193781140151828712811510301107162311518297177251901329078691151829933995101714290615553942151830122064990241905037316116622213170715183083701461083234568092168151831912835257224909511364817821518317127180212142901541401518324170951371471518325253370509010511518337159110865113103321518337102308558201761903215183491591104763250411031113115183411109320509096510277961981051038151835112064990241901135532987170131151835837035530964219690160151836525315196884131151836111863063214247673175323209057151837695564118613057151837127203549147373511429021914525034815183866385641129120213115183867941145067813858151839412819015113115183971392191140150735191140151840421753756411518407150785656311222571518411017411481032907514814774320213115184182064990241901937811401518424851135973215184271772519013290786911518435650110300706131151843122064990241905037316116622213170715184411109890493903215015550100875115184491283525722490951136481782151845417419598571518454170951371471518468246201355801213736151846715911086511310332151847514245490631511518479159110476325041103111311518483151133647151848112064990241901135532987170131151849106334601106591030903459041184151849525315196884131151850890596454714296155311518506955641186130571518516289131752618762151851663856411291202131151852511280411783571518524128190151131151853425989012011315185342175375641151854995150521311322181156417011518541017411481032907514814774320213115185571501073572524393113815185548511359732151856895812225316051110100913115185656501103007061311518577251904701111415731381518571110989049390321501555010087511518588918322072539016996131151858417419598571518595417176711211311518598246201355801213736151860634314641342521381518605142454906315115186161741745245313215186131511336471518626129412057355647321518621063346011065910309034590411841518635417453114151151863890596454714296155311518644366146111131151864628913175261876215186577069578438432138151865511280411783571518664281581414881518664259890120113151867147025188541315092037253479101901815834115186799515052131132218115641701151868920022552207512727504696715186871501073572524393113815186941028140362015186989581222531605111010091311518706134411190052511311518707251904701111415731381518714106337665141518718918322072539016996131151872523212012577138151872541717671121131151873624151051463521311518736343146413425213815187451817251209636015187461741745245313215187537001441826151875612941205735564732151876810390217155307177117234151876541745311415115187756664427509051151877436614611113115187831901346315187877069578438432138151879525646750905115187942815814148815188051061671027157151880147025188541315092037253479101901815834115188151021141031357221518819200225522075127275046967151882542124210272214015188241028140362015188351170126158463513151883613441119005251131151884615141967905248415188441063376651415188532001441826151885523212012577138151886614878411651061121151886624151051463521311518871411420925944616757141321084710385397814715188751817251209636015188851817621122251151888370014418261518897105138863290133482140151889810390217155307177117234151890152568214871554653713519756141411604943115189056664427509051151891513399152611361518913190134631518924731110139611518925256467509051151893493038211079115189351061671027157151894317426630815189451021141031357221518953206781111518955421242102722140151896665112010776464324515189651170126158463513151897361318152151897615141967905248415189882062268013766110169791151898320014418261518997202433149207119014015189961487841165106112115190061599076222541501519001411420925944616757141321084710385397814715190152014414182228315190151817621122251161902958611151712697411166241411151902710513886329013348214016190318637523236315695851829032190110246902471379715190315256821487155465371351975614141160494311619047586111511141103853973015190451339915261136161905810274011782144901937301519054731110139611619068507102247949690736199151906493038211079116190777247467468749696151907317426630816190814258326262512224023210484837036416924841519083206781111619099596314174678664295107067715190966511201077646432451619101017410031142214102133194661161519103613181521619111356695503101503959051142908874111151911820622680137661101697911619121676617646750905111725096161727510308790462151912720243314920711901401619131526617644275090512481301136377437293101908661519136159907622254150161914139861764675090519311511032909090147151914520144141822283161915219761969159018459584716161655453951676220799548824186074117161915428932966102161916118651909926462454512771032901471619169586111517126974111662414111619174475451325481619171863752323631569585182903219011024690247137971619187137611274031110740171161918758611151114110385397301619191025813166651510316616548157161919810274011782144901937301619206606477164115072161920850710224794969073619916192110796513217963166609014079716192177247467468749696161922763862636473012104481619221425832626251222402321048483703641692484161923117785131518383916231871193696161923959631417467866429510706771619241381320315621647326411506651243311619241017410031142214102133194661161619259128281138262887427514070816192513566955031015039590511429088741111619261527341713214012129417912159618756962601251619261676617646750905111725096161727510308790462161927216363151890804453231902711558802129015866491177907912601041619271526617644275090512481301136377437293101908661619282139211011387648511714147911311358575107915416115267218756540161928139861764675090519311511032909090147161929195965104315066514276901907141161218236981137932791161929219761969159018459584716161655453951676220799548824186074117161930875355618296695981272216193011865190992646245451277103290147161931206312051968108372411239671090126820811138262887425088201461619314475451325481619321563166307703774196752888149061370612445416193271376112740311107401711619331259651043896421701312028113793279116193310258131666515103166165481571619342210362367810666101547177907911807702222414217137856513212163516193466064771641150721619351054877841471151474148121916193510796513217963166609014079716193632133106432321110115177907911807703209065902993761371083209065901274166311365287911371619367638626364730121044816193728853178711101238103290357897115508901416619902151447469668451297465090623140161937117785131518383916231871193696161938144019075478409029316613155110698511619381381320315621647326411506651243311619391820631142721106109115814245690665823114712682141619399128281138262887427514070816194011783789630779118695117674175102161940152734171321401212941791215961875696260125161941101667035186512617023501879216194121636315189080445323190271155880212901586649117790791260104161942182067836223837240123969019397741769066902167971619422139211011387648511714147911311358575107915416115267218756540161943552224711629979116194319596510431506651427690190714116121823698113793279116194415596315105195136179867423532152903424716194487535561829669598127221619451276618186874117149295161145246496161945206312051968108372411239671090126820811138262887425088201461619461663631518908044667103247667505151226779117216194615631663077037741967528881490613706124454161947718245121577901356716194712596510438964217013120281137932791161948825832626213110861101356716194822103623678106661015471779079118077022224142171378565132121635161949178615165684181411209665013209066730414121777161949105487784147115147414812191619501474831511431290103290475399041777116195032133106432321110115177907911807703209065902993761371083209065901274166311365287911371619517312412522319024774716195128853178711101238103290357897115508901416619902151447469668451297465090623140161952123441021936119261196210731661371619521440190754784090293166131551106985116195311956661291100954110385399041411619531820631142721106109115814245690665823114712682141619541266012610311607025406617016590624716195411783789630779118695117674175102161955105862491503907021801031400702540161955101667035186512617023501879216195665962269975074334716195618206783622383724012396901939774176906690216797161957121136510111571466403811532063171175161957552224711629979116195877714181126484651751619581559631510519513617986742353215290342471619599970171111993059458502708161959127661818687411714929516114524649616196019134417132634907941611101367502417690177906271619601663631518908044667103247667505151226779117216196112109125171426017110757083916231820161961718245121577901356716196223670371361327317914782150344186110612901166204110171426613174216196282583262621311086110135671619631738510228275512433115975517535865762914165175161963178615165684181411209665013209066730414121777161964178177381879191187401751471529081413421344661619641474831511431290103290475399041777116196514162176259259511187417549232454130139471619657312412522319024774716196616236176467509051452761032710051142908872161966123441021936119261196210731661371619671762310727228350780629072908128030719390905716196711956661291100954110385399041411619681526617646750905111931428195215616172111419616196812660126103116070254066170165906247161969136368753496419679017115111941222311619691058624915039070218010314007025401619702476617646750905117139195931150503739081376122292201117250906054016197065962269975074334716197120314150665132114076150316034193141214901565575407907216197112113651011157146640381153206317117516197222816624877951251474904111035221791779112133890872110932910721619727771418112648465175161973213664566568162156453903731031127890901091925190901037216197399701711119930594585027081619741561537321103853990308751003141666090148161974191344171326349079416111013675024176901779062716197510596314971506651603651409111161975121091251714260171107570839162318201619762720631766326583532352152619524091119308913639632011031431137775716610021619762367037136132731791478215034418611061290116620411017142661317421619772965030011017137251961148635812411312910282110501732011031431635929357166100816197717385102282755124331159755175358657629141651751619781931432050110665130311732398321672414710385391012711619781781773818791911874017514715290814134213446616197915976190137331201901093215963150767908647216197914162176259259511187417549232454130139471619801816217644275090516632185411429901301250412177116198016236176467509051452761032710051142908872161981256841518100358422218496602621080561602419193439090109131478909010372161981176231072722835078062907290812803071939090571619822558619017056545077012357030923957030390109123679090109962730819010372161982152661764675090511193142819521561617211141961619836133106413017244313116198313636875349641967901711511194122231161984738877234254066560416161984247661764675090511713919593115050373908137612229220111725090605401619851499845373078207663154032046509062262161985203141506651321140761503160341931412149015655754079072161986111216453716577011180497779121170816198622816624877951251474904111035221791779112133890872110932910721619871980911116786218809013071791578522531385765287912117081619872136645665681621564539037310311278909010919251909010372161988107467841165836161766664114416198815615373211038539903087510031416660901481619891321078438041867741076610212010730779116198910596314971506651603651409111161990242905182592532080464454130144521103202270236901553204650906226216199027206317663265835323521526195240911193089136396320110314311377757166100216199116137619010401049347430120813437104281571372516651161991296503001101713725196114863581241131291028211050173201103143163592935716610081619922063641150665114117066543110446761331357375207026681100161992193143205011066513031173239832167241471038539101271161993321566955104118756901587661089246902131546476511226351622156573111769010431350461483371619931597619013733120190109321596315076790864721619941759651011157732190353219084010624461936631142161994181621764427509051663218541142990130125041217711619951910207739666102120538431071219914761445171226351622107371619952568415181003584222184966026210805616024191934390901091314789090103721619961559651051908101166124921715916681130737161996255861901705654507701235703092395703039010912367909010996273081901037216199715206784112124929979115610366124471441844116199761331064130172443131161998182067841121249201262424313617561792090130140901619987388772342540665604161619998284401906813113827017821619991499845373078207663154032046509062262162000105222471169879111015035100561620001112164537165770111804977791211708162001961674579750779111015592162001198091111678621880901307179157852253138576528791211708162002172063176632720451921389743141721611116877081620021074678411658361617666641144162003132905182598791942141222901952149213016200313210784380418677410766102120107307791162004161022821417121244610874114150215592202961901401620042429051825925320804644541301445211032022702369015532046509062262162005128177381667431664141623179151162005161376190104010493474301208134371042815713725166511620061181045736641416231791753700921620062063641150665114117066543110446761331357375207026681100162007241020773816690180223529533350890106135149143226903210776906830090162007321566955104118756901587661089246902131546476511226351622156573111769010431350461483371620081339217729316657837110965547898750162008175965101115773219035321908401062446193663114216200911119845733452211831106681791671620091910207739666102120538431071219914761445171226351622107371620107948458379096243311620101559651051908101166124921715916681130737162011182581316829022251305205405374176902168202225154016201115206784112124929979115610366124471441844116201215103631515404119050502196120438190508115616201218206784112124920126242431361756179209013014090162013242767843723110936688866163780111509012053134271549647131557166100816201382844019068131138270178216201491027518041426813135296591401620141052224711698791110150351005616201513532175105166560534227066367811371620159616745797507791110155921620162225812866613175371003121010101707661240364789884814861702489216201617206317663272045192138974314172161111687708162017221843175366110746791517536611011172497126970675360157071543371620171329051825987919421412229019521492130162018581773811705111620181610228214171212446108741141502155922029619014016201915103623678106106647132901303314129917791116162019128177381667431664141623179151162020192581316829022251142750769041054046107147820222515401620201181045736641416231791753700921620211165190307614965552467125951162021241020773816690180223529533350890106135149143226903210776906830090162022765030041214121965221620221339217729316657837110965547898750162023922012083790621239690473162023111198457334522118311066817916716202412651907147149259754735161765401620247948458379096243311620251711769578131187561071082225795111879111049310392162025182581316829022251305205405374176902168202225154016202622542141171071208309214111222511191544389154105810622210241751620261510363151540411905050219612043819050811561620271241381041732967618415722606135716202724276784372311093668886616378011150901205313427154964713155716610081620281432681910904203715546537683231247299162028910275180414268131352965914016202982144579750879111066511620291353217510516656053422706636781137172030213332111156463902954927474123213841280138907183271741121162030222581286661317537100312101010170766124036478988481486170248921720311267709021073231292191654541164681620312218431753661107467915175366110111724971269706753601570715433717203295277771566411012990915162032581773811705111720331323310758670010329062445490312624196716203315103623678106106647132901303314129917791116172034172278177246661151318634781781706238480147821620341925813168290222511427507690410540461071478202225154017203511341721220118801661552569025954016203511651903076149655524671259511720362310131074165524537645611386878012383780147821165025728155955951162036765030041214121965221720371130942198160125514573185126214016203792201208379062123969047317203816233205755156120679122751814715470293827065116203812651907147149259754735161765401720399827747552683916231791571620391711769578131187561071082225795111879111049310392172040811019377843905331939016204022542141171071208309214111222511191544389154105810622210241751720412361125632056108201785832629091118393372871616010116185471293101160162041124138104173296761841572260613571720421359714642418756358592259022513416256162042143268191090420371554653768323124729917204378113087212110443302162043821445797508791110665117204421297622418872714781121321960737116840172830962254291724209017204442893296610217204514655381167116188963277362923151055125670817204521333211115646390295492747412321384128013890718327174112117204613303813827602241166476903879010766172046126770902107323129219165454116468172047182598271379835154540264120361419635154140224719017204795277771566411012990915172048125671857114713617146361468372069617204813233107586700103290624454903126241967172049121155222907147222909058529451172049172278177246661151318634781781706238480147821720501113212296082238728721109179611101151172050113417212201188016615525690259540172051913778276548013766110503311720512310131074165524537645611386878012383780147821165025728155955951172052252711377613670137817653011197759253144109242121140173248332222916172052113094219816012551457318512621401720531213012736129520213628490761627614871720531623320575515612067912275181471547029382706511720541212871307113618948351256904314126217205498277475526839162317915717205510131313023713359217113343701407172055811019377843905331939017205693072374017741165878103351172056236112563205610820178583262909111839337287161601011618547129310116017205712317137752106152229025314141651520481720571359714642418756358592259022513416256172058133151176541025047737240411111345033717205878113087212110443302172059123038138471563203211203388122251172059212976224188727147811213219607371168401728309622542917242090172060132336207157551784021081729151029373717206014655381167116188963277362923151055125670817206181037739471568970937172061133038138276022411664769038790107661720622238771565619035011115181154184101753096141326624844122193737172062182598271379835154540264120361419635154140224719017206317147711105111210031010424181191544332491717093717206312567185711471361714636146837206961720641144812581075068126370490702911001720641211552229071472229090585294511720651614712571675012832920151140750100415803717206511132122960822387287211091796111011511720661346671432861032130080712491032907403717206691377827654801376611050331172067727222212485717505017206725271137761367013781765301119775925314410924212114017324833222291617206818259117989062080137661105033710490222612581750172068121301273612952021362849076162761487172069111021137622111553137901707145262313172069121287130711361894835125690431412621720701033732764796738270690421140172070101313130237133592171133437014071720711310360171041144070220261411157136130172071930723740177411658781033511720726233107202111517126172072123171377521061522290253141416515204817207321128789715652564131106598032320905714596103816353935470172073133151176541025047737240411111345033717207412707158391623179168821543827017081720741230381384715632032112033881222511720751933725311043233829022213207083077979620651761831101601720751323362071575517840210817291510293737172076193152343292851105814670169457076163670176364314110817207681037739471568970937172077910361511191760350100911011511720772238771565619035011115181154184101753096141326624844122193737172078922731704536881012717031441720781714771110511121003101042418119154433249171709371720795277217831301720791144812581075068126370490702911001720802531386511401301145020832161205624537349741130145903423609023281731717208016147125716750128329201511407501004158037172081917132972511412591011150561720811346671432861032130080712491032907403717208216103812227140151107106740151119154411531171361720827272222124857175050172083146715536247842311517318311516214126217208318259117989062080137661105033710490222612581750172084152162146887211015387296114010385399092141228172084111021137622111553137901707145262313172085134553718010314001561116590557791821301720851033732764796738270690421140172086189557122277351778753653275303561422474114681407916717208613103601710411440702202614111571361301720871831645490750713197748247187561321071083231590571720876233107202111517126172088211097324453404781057337187550468124872251324453405121147172088211287897156525641311065980323209057145961038163539354701720892523310713276121787382902325451715353228244124815447144192225150181707172089127071583916231791688215438270170817209013701130120691311033215475751661817071720901933725311043233829022213207083077979620651761831101601720911517132131555918756411251901106607417066321311720911931523432928511058146701694570761636701763643141108172092103332177981311354921707081311720929103615111917603501009110115117209319140732401129471257910990572259662155425181359409056117209392273170453688101271703144172094967224116150155501008751172094527721783130172095142596271569159018392419016190307412621720952531386511401301145020832161205624537349741130145903423609023281731717209618307193771511233411141511732530908302419010311607081720969171329725114125910111505617209715679041431540102170300723356627505161217209716103812227140151107106740151119154411531171361720982248371619041431540740431450249902721703808116069515451531411720981467155362478423115173183115162141262172099171321781130730110101245390409247233901804562311140172099152162146887211015387296114010385399092141228172100155211036374683761471174284171701291125013056172100134553718010314001561116590557791821301721011110383712183790911217109071961721011895571222773517787536532753035614224741146814079167172102136711757708121516111206176741120646325717210218316454907507131977482471875613210710832315905717210391713218667042413497351731721032110973244534047810573371875504681248722513244534051211471721041235116150407315405129565595090270217210425233107132761217873829023254517153532282441248154471441922251501817071721051317132731598317089686910329066332571721051370113012069131103321547575166181707172106114555914073734190152342104901151721061517132131555918756411251901106607417066321311721071435671314351513143571011160414319015714117210710333217798131135492170708131172108129918222260251140501667492101961721081914073240112947125791099057225966215542518135940905611721091435115110490401101948438701946746952021361721099672241161501555010087511721109119717351731181391413617211014259627156915901839241901619030741262172111138623210623137256259391114138290143172111183071937715112334111415117325309083024190103116070817211212877153110570863671071193110212708172112156790414315401021703007233566275051612172113111032011921413427561101505013017211322483716190414315407404314502499027217038081160695154515314117211414171321719085747212241902451302451201831721141713217811307301101012453904092472339018045623111401721151367161750407315406176743837361961721151552110363746837614711742841717012911250130561721169233130719155122290253321721161110383712183790911217109071961721171911169029177142577467313827065724185111090142914901301721171367117577081215161112061767411206463257172118143073214272193570509038270690171421140172118917132186670424134973517317211910139103290816834185014680144172119123511615040731540512956559509027021721201169466728876312869090585047671721201317132731598317089686910329066332571721211214314368811716116151761142569717212111455591407373419015234210490115172122262975033247035212121130361424161487418360146861429071078879041250867172122143567131435151314357101116041431901571411721231529750366573138513250597011135114216047172123129918222260251140501667492101961721241429791142901551682094061061032907136130172124143511511049040110194843870194674695202136172125113038138471561287232068110130172125911971735173118139141361721262734110710029198931376912165110187566096590587540716087096480916619961721261386232106231372562593911141382901431721271422731704536881012717031444653079862750172127128771531105708636710711931102127081721282330732105893952123135751096157405111030510385397307416651217771721281110320119214134275611015050130172129147071937726391559170221225366854649136130172129141713217190857472122419024513024512018317213019315116111001614063521159701312621724634125301164621401721301367161750407315406176743837361961721311674940611100167303103853920232528841540134131172131923313071915512229025332172132912411596143710329060251286172132191116902917714257746731382706572418511109014291490130172133142016264837801478210321383129281901871721331430732142721935705090382706901714211401721349967543323624787147144147172134101391032908168341850146801441721359498149560110142110736436358172135116946672887631286909058504767172136186891286615545070213790171414791515033177981301721361214314368811716116151761142569717213782572538071512531212081721372629750332470352121211303614241614874183601468614290710788790412508671721385977828891287217213815297503665731385132505970111351142160471721392210375062140981481375436083715914311548141123298276682130172139142979114290155168209406106103290713613017214021633233761904635807612190530358076411710707416583136172140113038138471561287232068110130182141118035113764548111088741658317214127341107100291989313769121651101875660965905875407160870964809166199618214215119205755156120679122751889903196499015117214214227317045368810127170314446530798627501821433895621172143233073210589395212313575109615740511103051038539730741665121777182144641661701138791966172144147071937726391559170221225366854649136130182145167233220251138901203956228937140907754117214519315116111001614063521159701312621724634125301164621401821461114255370811370517471102106732301721461674940611100167303103853920232528841540134131182147111411195616336721032110411545217214791241159614371032906025128618214862111751164119058172148142016264837801478210321383129281901871821491076463907838713610251470411721499967543323624787147144147182150165052929081312531049045225321813641526177011721509498149560110142110736436358182151779170136907971101133172151186891286615545070213790171414791515033177981301821529465397110910811220668540172152825725380715125312120818215311191132499849596141981302401081721535977828891287218215419319702181134376590130801038539202253218148701183110268172154221037506214098148137543608371591431154814112329827668213018215518723661106911309711706215215546767416590170819752172155216332337619046358076121905303580764117107074165831361821561942130190904165390262905601364194663214247999707182156428932966102182157345454735407160870964809166199066412907509594905140211011545160270814111011501206145097024316161821571180351137645481110887416583182158222731355164821354761555103614398672103402110714111012333105110135211821581511920575515612067912275188990319649901511821593814626303756595309581121381712701404171036873660972431412621385687275758313897260135141131107548668776182159389562118216013870252586515901607319170112251961821606416617011387919661821613210815518302861101039791131471412471141556021828610759470196212311675710866805118715582277618216116723322025113890120395622893714090775411821623314135135134037110725132135641111170321954152114121213097642137208104524497170705208973181036262182162111425537081137051747110210673230182163710057501816135058637182163111411195616336721032110411545218216417505706903332127951140136520702222927663215132182164621117511641190581821658531301705610311509054518216510764639078387136102514704118216623147390530374690659075411777293103853910123553943141661301821661650529290813125310490452253218136415261770118216715483659040786526763122242390612541437182167779170136907971101133182168302902467717479971120137116290479379655726141651514743719280417104324714079111021029918216894653971109108112206685401821692882147753472513261265315181987573714719252109152652420311962163111702629013913618216911191132499849596141981302401081821701214111990204930315256115398791511821701931970218113437659013080103853920225321814870118311026818217128821524540160263110965307691749016015141647079026890961042888539061312445475671821711872366110691130971170621521554676741659017081975218217214278108160682271124905138915429357175100918217219421301909041653902629056013641946632142479997071821731125670734032195137076578015444511821733454547354071608709648091661990664129075095949051402110115451602708141110115012061450970243161618217413331847211072152230171362117403577182174222731355164821354761555103614398672103402110714111012333105110135211821751287104165195141131225971174586401821753814626303756595309581121381712701404171036873660972431412621385687275758313897260135141131107548668776182176122239681188212416089615616795147182176138702525865159016073191701122519618217716234875401449054060390750743701230171063513118217732108155183028611010397911314714124711415560218286107594701962123116757108668051187155822776182178814214521372126611101182178331413513513403711072513213564111117032195415211412121309764213720810452449717070520897318103626218217919477211013152650516832111316631141530473103470173182179710057501816135058637182180151381755801429012211630647390811476512122201821801750570690333212795114013652070222292766321513218218184235949160120753110718218185313017056103115090545182182201421452170500111525821106222196231411101151421817473418218223147390530374690659075411777293103853910123553943141661301821831178171476660904119535470761821831548365904078652676312224239061254143718218491738165108101113965831061821843029024677174799711201371162904793796557261416515147437192804171043247140791110210299182185237453205011066772501311356181103245371120142901447196555707510091821852882147753472513261265315181987573714719252109152652420311962163111702629013913618218613728165102221248105615519655721451021821861214111990204930315256115398791511821871114135125515061021510326166732062182187288215245401602631109653076917490160151416470790268909610428885390613124454756718218816121901538155732245378416151013417122211010831821881427810816068227112490513891542935717510091821892814222980371010147412610632237371305121531454706714971120895815803746904548821821891125670734032195137076578015444511821902637109172809051709058132122422072411203208490711033215475751661817071821901333184721107215223017136211740357718219113875961174047047236730371038539730755411821911287104165195141131225971174586401821921314910716075492150205557791541621466218219212223968118821241608961561679514718219310411126247622996103728237021718219316234875401449054060390750743701230171063513118219414383207211937757050901713827069042114018219481421452137212661110118219519133804466712811585651322471763505970111351142160471821951947721101315265051683211131663114153047310347017318219618199584742217141397859753077915410566023242134047182196151381755801429012211630647390811476512122201821973087024261605041519573077979620651761831101545220544411261261151207414920130971961821978423594916012075311071821981987659024801207532804751338943136236284706131722818219820142145217050011152582110622219623141110115142181747341821998121170160977711523414561821991178171476660904119535470761822001311185173011531033418211315161161317071822009173816510810111396583106182201112632419010717814601211081531033151182201237453205011066772501311356181103245371120142901447196555707510091822021214370639190191134106645251613118151182202137281651022212481056155196557214510218220320762419010717079265140132177474455201419264168701612131182203111413512551506102151032616673206218220492817481106861052714175013118220416121901538155732245378416151013417122211010831822051214185902021759025346712890779418220528142229803710101474126106322373713051215314547067149711208958158037469045488218220611505540815905111049335116351311822062637109172809051709058132122422072411203208490711033215475751661817071822076293120949807113118220713875961174047047236730371038539730755411822088803741770411106921161822081314910716075492150205557791541621466218220910242501713729466311515271311822091041112624762299610372823702171822101292195505134183201205511119331311311822101438320721193775705090171382706904211401822111524232141313442173013071319062369022370241827118221119133804466712811585651322471763505970111351142160471822128293120949807113171131182212181995847422171413978597530779154105660232421340471822131033125190765375204317673113118221330870242616050415195730779796206517618311015452205444112612611512074149201309719618221416271321413134190121242191931131615107214170241827118221419876590248012075328047513389431362362847061317228182215929312094980715013171131182215812117016097771152341456182216139719490143210456111182320120511511311822161311185173011531033418211315161161317071822172420511521317103613122796051224209969495251904258131536412702418271182217112632419010717814601211081531033151182218122931159397041449143887238170613118221812143706391901911341066452516131181511822191710932055013119026277895168524190206211551236421822192076241901071707926514013217747445520141926416870161213118222010307107136151104119615151110248182220928174811068610527141750131182221924930933958112489251336182221121418590202175902534671289077941822223529311553970414477502511205854722290253123128035110435122228613055777677813771409052011611512394818222211505540815905111049335116351311822239921951704971304417101201831822236293120949807113118222410653205090473103290351115218222488037417704111069211618222526555318222510242501713729466311515271311822262511913521005148117251424417011118114713019631309016021943112421032702418182226129219550513418320120551111933131131182227132717748672074121454082722697090421311822271524232141313442173013071319062369022370241827118222813271292903525215921115130146919048182228829312094980711317113118222936547354018222910331251907653752043176731131182230156616690751537014611050919431149103270241818223016271321413134190121242191931131615107214170241827118223168034943691107701822319293120949807150131711311822323654735401822321397194901432104561111823201205115113118223313137251913114710690131556210327024181822332420511521317103613122796051224209969495251904258131536412702418271182234206511311350351110804501531151032902405923514417011113818223412293115939704144914388723817061311822351224511312210411327781021295120411311822351710932055013119026277895168524190206211551236421822361931011512814671312521087024187381312656277702418572094671822361030710713615110411961515111024818223781533554847112651148121182237924930933958112489251336182238151092128077351082128014782212902537061311822383529311553970414477502511205854722290253123128035110435122228613055777677813771409052011611512394818223911114289327907368729059766917677182239992195170497130441710120183182240510714217669811271822401065320509047310329035111521822411117161531849301201020901764717911822412655531822421488421985265258709087171751307791151182242251191352100514811725142441701111811471301963130901602194311242103270241818224351439541723513018224313271774867207412145408272269709042131182244112111849613651965590185830791182244132712929035252159211151301469190481822451464187567520011118749915224741430779167182245365473540182246919306422171430743986275018224615661669075153701461105091943114910327024181822471088381454754715611539879151182247680349436911077018224864512610683196695182248365473540182249184957764422124915345113224116421252150241713613018224913137251913114710690131556210327024181822502414207845303713014126020714121971170193696924134630502529213018225020651131135035111080450153115103290240592351441701111381922511195182251122451131221041132778102129512041131192252523881222648920182252193101151281467131252108702418738131265627770241857209467192253569165207657011822538153355484711265114812119225414411202107717631329280710010416161202131182254151092128077351082128014782212902537061311922551347104904087372652477227901181080671822551111428932790736872905976691767719225681011202115188319071677018225651071421766981127192257131111329035153703810610735725223811182257111716153184930120102090176471791192258144812539014321103726524771071408661202131182258148842198526525870908717175130779115119225914321420761329011501106511011222131770131182259514395417235130192260137771103114249032431131164010420213118226011211184961365196559018583079119226111387227775186105282901511108831822611464187567520011118749915224741430779167192262810399473113454130038111822629193064221714307439862750192263651177398590116182263108838145475471561153987915119226461712078076582091822646451261068319669519226591958262456624056115137182265184957764422124915345113224116421252150241713613019226610611112429015537012904549092718226624142078453037130141260207141219711701936969241346305025292130192267117750336105026547422151059021811922674289329661021922688511470511103317776153119226811951922699381072503822229652921311922695238812226489201922701110132176502230761071408661531192270569165207657011922711595124277912591711619465110112221317701311922711441120210771763132928071001041616120213119227252011127163356319227213471049040873726524772279011810806719227314161121476706132440500115317167734114721011922738101120211518831907167701922741027182822210310447532814901421922741311113290351537038106107357252238111922758642121305707167756128192275144812539014321103726524771071408661202131192276181228791160137358135061226145339066012213131651914019227614321420761329011501106511011222131770131192277112913214131342901113848315278811922771377711031142490324311311640104202131192278121013614714776242297141262100111192278113872277751861052829015111088319227910103809071901401101384698219227981039947311345413003811192280863169454462667661131192280651177398590116192281111944441701591644704161264169192281617120780765820919228264112071737645320919228291958262456624056115137192283919573624476244056110168192283106111124290155370129045490927192284970695741139136290531507501922841177503361050265474221510590218119228516166703514617224291070212640901710516571411922858511470511103317776153119228686503007061682682126657192286938107250382222965292131192287111020563499030782012610790501191192287111013217650223076107140866153119228811102861908710581005185629947171192288159512427791259171161946511011222131770131192289121623151111590512729107013045610021922895201112716335631922908339981169610327501085219229014161121476706132440500115317167734114721011922918632057156259454909271922911027182822210310447532814901421922921632114010703730237180314147670403114813170119229286421213057071677561281922931477301306134317041171907410461403111922931812287911601373581350612261453390660122131316519140192294101713587140151401476314031119229411291321413134290111384831527881192295124743055632990773130516826140311192295121013614714776242297141262100111192296138127534485570902591144612045112041311922961010380907190140110138469821922971099127156212501801130131131192297863169454462667661131192298144112128777321402128766609053047574192298111944441701591644704161264169192299146315457194170356466609014247553151192299641120717376453209192300911119414175160699907570192300919573624476244056110168192301106329777761715611645490927192301970695741139136290531507501923027643641322465690127192302161667035146172242910702126409017105165714119230376326260769990357019230386503007061682682126657192304116329777111195715621245490927192304111020563499030782012610790501191192305910512071247770159412517719230511102861908710581005185629947171192306863205715627545490927192306121623151111590512729107013045610021923073111112412192307833998116961032750108521923082939688073294121558407024737013631825991596641101291364591590153901556616179167192308863205715625945490927192309111011196226743486157879710121907901923091632114010703730237180314147670403114813170119231012321103637897001471301469740390321923101477301306134317041171907410461403111923111145285715610458232980441124454192311101713587140151401476314031119231211387227963528113232103796236311923121247430556329907731305168261403111923139511719012890756441894501923131381275344855709025911446120451120413119231418121222714775062477614776624135222243325374719231410991271562125018011301311311923151211135540355123081621084710385392021923151441121287773214021287666090530475741923168198041764404170319315219231614631545719417035646660901424755315119231710321307613290786521939303819231791111941417516069990757019231885149844118354041768330819231810632977776171561164549092719231910481329110305563855090257540192319764364132246569012719232081318474579314113854019232076326260769990357019232199514492221107121732150571923211163297771111957156212454909271923228514961062956508791113540192322910512071247770159412517719232316651251828104811198820307791131463463155840708192323863205715627545490927192324922710031194535090177107661923243111112412192325255895711250011903461674880442146412087024184532935168897907190130192325293968807329412155840702473701363182599159664110129136459159015390155661617916719232613245816510222124810561551194177916637192326111011196226743486157879710121907901923278477249713746530074169219232712321103637897001471301469740390321923287803291241701411043110192328114528571561045823298044112445419232994580490351001464153251192329113872279635281132321037962363119233052854781464176119233095117190128907564418945019233187875123416660901714192331181212227147750624776147766241352222433253747192332680515514852442651192332121113554035512308162108471038539202192333994583921104113425260071192333819804176440417031931521923347757512492155503111192334103213076132907865219393038192335691329416315585619233585149844118354041768330819233652119841374222192336104813291103055638550902575401923379803291241701903248715631192337813184745793141138540192338441329170114419233899514492221107121732150571923394632145313419233985149610629565087911135401923409106712061032856957495394251923401665125182810481119882030779113146346315584070819234144135881511923419227100311945350901771076619234264117105135810724719234225589571125001190346167488044214641208702418453293516889790719013019234310773294113210385399090505119234313245816510222124810561551194177916637192344475125145134192344847724971374653007416921923455285187564161011923457803291241701411043110192346911329751735611539879151192346945804903510014641532511923471035147713566317932163326172192347528547814641761192348142287557071390135468353509017710766192348878751234166609017142023491141923496805155148524426512023505840382130139411923509945839211041134252600712023514920120132532192351775751249215550311120235261415451032730130498192352691329416315585620235344776011103291923535211984137422220235412741808471084710329047539904135192354980329124170190324871563120235576972911501361696085719235544132917011442023568159143351132363166192356463214531342023574116522422411923579106712061032856957495394252023581819282110871649647114025251161568712112522117011923584413588151202359511611704081511923596411710513581072472023609252354471180781222526119236010773294113210385399090505120236153471651162158192361475125145134202362119601571472175232363166521111923625285187564161012023631054043190504506972641616751192363911329751735611539879151202364106941747981063190126174111192364103514771356631793216332617220236551161113245047192365142287557071390135468353509017710766202366138112439646110011083121164281711513120236642893296610220236741161113713120236711420236855402315782218202368584038213013941202369778676200108037130613120236949201201325322023701181116761210908231203824134887202370614154510327301304982023714263463903102023714477601110329202372510195640641708202372127418084710847103290475399041352023735304405092021312023737697291150136169608572023743251402762023748159143351132363166202375415190179752023754116522422412023762146202202376181928211087164964711402525116156871211252211701202377546902244011020237751161170408151202378261126220237892523544711807812225261202379321873092023795347165116215820238032519053220238011960157147217523236316652111202381373114030202381105404319050450697264161675120238227319962023821069417479810631901261741112023834303534707120238351161113245047202384611611116817104131202384138112439646110011083121164281711513120238558112451301411402023854116111371312023866344161417670120238655402315782218202387221401106461005513054735864080131613281255819097684090896512023877786762001080371306131202388351161130411041354010436901701012537557107190214191936465371367003061414241459011095356161021750701202388118111676121090823120382413488720238922306462023894263463903102023908930904613742463345170820239051019564064170820239151019564064170920239153044050920213120239289207133013591137352172023923251402762023931010295171612995173110225313220239341519017975202394721717117111110823113120239421462022023952150473901101682229018841041217373126216137122229752217497202395546902244011020239610452722901108045192251045220239626112622023975116112631701312023973218730920239891954073532050907412531312023983251905322023995783873312113120239937311403020240011130372128403142390212124146131202400273199620240119710453901979355114290949396901165010329010374120240143035347071202402996774427509051222284572024026116111168171041312024038811606913102194102841962024035811245130141140202404619802564632671402024046344161417670120240581161129010529012844651312024052214011064610055130547358640801316132812558190976840908965120240614761124513710876531121881131845752706412024063511611304110413540104369017010125375571071902141919364653713670030614142414590110953561610217507012024078818142518571035618013120240722306462024086411540391934065262024088930904613742463345170820240915691906031107756187236611010873110611675131202409510195640641709202410510027410728661520241089207133013591137352172024111361178172431610619087451275350756511382024111010295171612995173110225313220241210571908711911017141854094201202412721717117111110823113120241312141903712651485405142116111382024132150473901101682229018841041217373126216137122229752217497202414125405731390466502218678213832131202414104527229011080451922510452202415511669519590150202415511611263170131202416614245171108031181202416919540735320509074125313120241716411518300128372693421792217416101309041137202417578387331211312024188122262204921386830422120241811130372128403142390212124146131202419261197743056262671177990269711903008534029920074132256907515113235531131202419197104539019793551142909493969011650103290103741202420199655710131092901451419813407474949065411107768013820242099677442750905122228457202421141198107229990115677476728113202559252202421881160691310219410284196202422133837964563198351312842074119056202422619802564632671402024231014163975147561140104137416962024238116112901052901284465131202424124379021756966952888149061312445420242414761124513710876531121881131845752706412024251813103722510813173241903207510838926151116417614020242588181425185710356180131202426813554181901435704065982024266411540391934065262024275194715140683720242715691906031107756187236611010873110611675131202428151431211701441322465619814090175104312621120242851002741072866152024291721184181211578961812170128951416374184142290572024291361178172431610619087451275350756511382024309420540130146974031201311672024301057190871191101714185409420120243161161116612012447202431121419037126514854051421161113820243291440202615097111104845131202432125405731390466502218678213832131202433934288296901665311041321312024335116695195901502024342713012312629018021704851645411101701211198126214471146111311421853151411163532024346142451711080311812024351534214185010171777290216129107143140762411382024351641151830012837269342179221741610130904113720243612200116429670621880735681047588420243681222622049213868304221202437122013710017510037137862833226611220243726119774305626267117799026971190300853402992007413225690751511323553113120243817251103619329262577970921461113290262751311402024381996557101310929014514198134074749490654111077680138202439911692283418231115260801382024391411981072299901156774767281132025592522024408837656701180412621113120244013383796456319835131284207411905620244142516519223220244110141639751475611401041374169620244220146702763126262780536511310612733746017013141531113120244212437902175696695288814906131244542024435311116311211312024431813103722510813173241903207510838926151116417614020244416200404967761238327701909071382730970436921312024448135541819014357040659820244528191819032554044317211513307415641115711158012150571613153651559050131788131202445519471514068372024461214132050136113236317416696922024461514312117014413224656198140901751043126211202447139218590482110162104416490130240770202447172118418121157896181217012895141637418414229057202448821418756881361251071902024489420540130146974031201311672024497791875675779569520244961161116612012447202450830876637456432790740562024509144020261509711110484513120245165713297251107154720245193428829690166531104132131202452125732972513246161467012024314110820245227130123126290180217048516454111017012111981262144711461113114218531514111635320245371912122062106712018320245315342141850101717772902161291071431407624113820245433411729962024541220011642967062188073568104758842024556442378096610312024551220137100175100371378628332266112202456131063257011135852913763579311165387662024561725110361932926257797092146111329026275131140202457121373510163293575190324876003176620245791169228341823111526080138202458101417933775547706241150202458883765670118041262111312024599971789060311018778515262024594251651922322024601184637971691111136175619015096202460201467027631262627805365113106127337460170131415311131202461149217552275661751219095427283352144776202461531111631121131202462171417120213629619205113290384503371391216659120246216200404967761238327701909071382730970436921312024631111835577620013290454113014020246328191819032554044317211513307415641115711158012150571613153651559050131788131202464913103321547575166181707202464121413205013611323631741669692202465138908990924111725080706514511261202465139218590482110162104416490130240770202466768037964793250512024668214187568813612510719020246761218379613413177202467779187567577956952024681452319666550811055354511131401462122024688308766374564327907405620246915109620745176893069015683119651376486961322024696571329725110715472024706251154832074125402024701257329725132461614670120243141108202471184203784011120473170191005311228090293212496181312024717191212206210671201832024721212118756569871425351319301201071962024723341172996202473830347011012196870202131202473644237809661031202474852087776606463821770131202474131063257011135852913763579311165387662024751211930583780920741410676341907077620247512137351016329357519032487600317662024761796774427509051216904063879017710760751915120247610141793377554770624115020247791504079101222905629573202477997178906031101877851526202478201410150287297150101629612141384311151322225476202411103732024781184637971691111136175619015096202479181198102223139565596552171351975614141160494372024791492175522756617512190954272833521447762024801257621537710830816131116308159562472024801714171202136296192051132903845033713912166591202481137820990416784677207901847267144202481111183557762001329045411301402024821967378051132904326022979269167253168137907751525242202482913103321547575166181707202483114209610733110290736779732501302024831389089909241117250807065145112612124847116611159051116171703202484768037964793250512124851116851582325522479092090466412024856121837961341317721248615748497299938630502327063597779110027418351202486145231966655081105535451113140146212212487101812111710381429016715021213120248715109620745176893069015683119651376486961322124881412429161185725711132687328023021383220248862511548320741254021248981621261133159017749141202489184203784011120473170191005311228090293212496181312124901459631510519513617986742353215234247202490121211875656987142535131930120107196212491969578471511173168199472024918303470110121968702021312124928471113361962401112905402024928520877766064638217701312124938656112980954241011391342024931211930583780920741410676341907077621249410861147824099764713159028166202494179677442750905121690406387901771076075191512124957108696457021147615120249591504079101222905629573212496105471902379511214141287142731202496201410150287297150101629612141384311151322225476202411103732124976103171529711138202497181198102223139565596552171351975614141160494372124988705113199418126450438121202498125762153771083081613111630815956247212499716310847103814278147202499137820990416784677207901847267144212500112417151859017874217505125636202500196737805113290432602297926916725316813790775152524221250113626817796113117821139731101419303220250111420961073311029073677973250130212502137943748212074831129961038539909041212502428932966102212503574631293101136212503711661115905111617170321250476164510329041170841212504111685158232552247909209046641212505132361116012026620157566324113671362125051574849729993863050232706359777911002741835121250661575119011110131212506101812111710381429016715021213121250722116612513920631766321429092612090920706318413130416590170841212507141242916118572571113268732802302138322125081521352323631564674322969015290342472125088162126113315901774914121250983567732126413291701144212509145963151051951361798674235321523424721251062062485116923331212510969578471511173168199472125111557613159051141112032516377554770624115021251184711133619624011129054021251213106270770987583065903661135140962125128656112980954241011391342125131816211218320508290160757701472103853951307791210772125131086114782409976471315902816621251413475175938896160474545127710329016021251471086964570211476151212515811664181205110352411421602125151054719023795112141412871427312125161113613090503774372931017307411721251661031715297111382125171072212544013266515290532154472125178705113199418126450438121212518107299853584753315447781619050212518716310847103814278147212519173574532992251496930741707193217865130779122170821251911241715185901787421750512563621252081019111422331103901937302125201362681779611311782113973110141930322125217255510511117064502082125211379437482120748311299610385399090412125221640645371156120372826512016631683077911503621252257463129310113621252310121645372106151119321407856322125237616451032904117084121252413548778411358677931891529029248314021252413236111601202662015756632411367136212525131166247920120453232990293103126901302125256157511901111013121252614166914537236340615311119060541754121252622116612513920631766321429092612090920706318413130416590170841212527181120126297902961032461522661123411554041865525613221252715213523236315646743229690152903424721252811101641702116161180375710119213021252883567732126413291701144212529121031715297112262227739014354596212529620624851169233312125302013153116846283490156717157321190137011118786200145926212530155761315905114111203251637755477062411502125318660927827462268116462140212531131062707709875830659036611351409621253285761679051104524796679121253218162112183205082901607577014721038539513077912107721253373663557214426392071221253313475175938896160474545127710329016021253492017771329050925946214021253481166418120511035241142160212535112273649144110127104115748131701212535111361309050377437293101730741172125365137366564138212536107221254401326651529053215447212537810286190764915101341312125371072998535847533154477816190502125387194904514114146513821253817357453299225149693074170719321786513077912217082125391340190790110583447411038539202262321312125398101911142233110390193730212540730644351762421154722125407255510511117064502082125418339461757523332140522821254116406453711561203728265120166316830779115036212542810621205648970618090138212542101216453721061511193214078563221254372593514197549022113821254313548778411358677931891529029248314021254483751751421311107488138212544131166247920120453232990293103126901302125457259114897065804521382125451416691453723634061531111906054175412125469225785122370627718532131212546181120126297902961032461522661123411554041865525613221254771058491111218236413602125471110164170211616118037571011921302125489225524154013432111013754021254812103171529711226222773901435459621254911107037321270314166609061313121254920131531168462834901567171573211901370111187862001459262125509656112666090532779081212550866092782746226811646214021255172415105149635431913821255185761679051104524796679121255282591101382078625111181212552736635572144263920712212553595227935721921255392017771329050925946214021255482619627444110324152125212554112273649144110127104115748131701212555818915457166194170357021255551373665641382125561513781846442815714812421808682294755620521255681028619076491510134131212557163017614678961144540471441346901251476946752212557719490451411414651382125586220905669990697212558134019079011058344741103853920226232131212559121051253904719935597132906570171212559730644351762421154722125601217414777614678964657297911779040221256083394617575233321405228212561143701437717710909583070173990129701197272125618106212056489706180901382125621424177256130672111091714769462571912622125627259351419754902211382125631057749111512390638909821520221256383751751421311107488138212564142013205277962744411032412486132462492272125647259114897065804521382125651210497577750601412123511629041196212565922578512237062771853213121256610340249457103116061207657012521256671058491111218236413602125671619793617590253155621414731000907415313559721256792255241540134321110137540212568738490501617072812182125681110703732127031416660906131312125696220909669990737212569965611266609053277908121257023106290470611414513236315114029014511535480511030184470770113770721257072415105149635431913821257182271137761071901253559721257182591101382078625111181212572117988104572851360312022076570124421257259522793572192125731910318184214120319712429039778962135186383570355972125738261962744411032415212521257411261166516626590968612895494472125748189154571661941703570212575821326258244650171051212575151378184644281571481242180868229475562052125766330925010728659221257616301761467896114454047144134690125147694675221257712479355817535111113617561901501702125776220905669990697212578733931961133151102552125781210512539047199355971329065701712125791020614509051592388870241821257912174147776146789646572979117790402212580201031713270690111590711049711307791294996157821391117092125801437014377177109095830701739901297011972721258111267364919810066609053247111212581142417725613067211109171476946257191262212582969196562224141527136212582105774911151239063890982152022125837236319651297967521258314201320527796274441103241248613246249227212584917212667159917556279151212584121049757775060141212351162904119621258596912361106419051144236312125851034024945710311606120765701252125861153651074111670613798225418812031212586161979361759025315562141473100090741531355972125871624171521618113973037586148212439142755621258773849050161707281218212588122168771610325195176902469047314021258862209096699907372125896137176106470690512125892310629047061141451323631511402901451153548051103018447077011377072125905261253323624721259082271137761071901253559721259111226491115193696924134921302125911179881045728513603120220765701244212592135364186413132155777110121121044313121259219103181842141203197124290397789621351863835703559721259389164115616790239150562125931126116651662659096861289549447212594868415179053513521557212594821326258244650171051212595106264111065232925914169202131212595633092501072865922225961010203201677951262508142171121259612479355817535111113617561901501702225972231866773106293454729114261684781101501276147111111155011356625621259773393196113315110255222598122543705048814012126690489014296212598102061450905159238887024182225991137177341408451364429056115422212599201031713270690111590711049711307791294996157821391117092226007020165090859608813821161397825510326163211407690150913419314121490156506901563651469540120913540150344136141281903569014277512167751845905402059054014490540603908411326039021290510511421711212600112673649198100666090532471112226011331432050110624873862139116653750212601969196562224141527136222602123399090582665796212314161675721260272363196512979675222603133004233719371401212669048901429621260391721266715991755627915122260415349773187568716179690356610212087016456121260496912361106419051144236312226059146973100665735544437502126051153651074111670613798225418812031222606251339421175084396860191101835354995771018109913128811066869014296212606162417152161811397303758614821243914275562226071411789211750215314710153141666090902126071221687716103251951769024690473140222608106111081171022059030310051209021260861371761064706905122260917224411906651288814906134545611539879164466512126095261253323624722261022192041397673512702195401424166168843969066355805196071902126101122649111519369692413492130222611922490296657463412144776212611135364186413132155777110121121044313122261222319320501106651187561072106651528797146388200177979879151212612891641156167902391505622261337321411906651300903512166659680411510873614290736505407313637743710329096539909035776651600712126138684151790535135215572226141712932118690102251905137557930787124790113878175621261410626411106523292591416920213122261568011290417305222615428932966102222616426902518122261610102032016779512625081421711222617123497738199692104090968205121391222617223186677310629345472911426168478110150127614711111115501135662562226182241896144797079026890961042888149061345456115398791644665122261812254370504881401212669048901429622261999330041221679052412222261911371773414084513644290561154222226202581773908559724695214964495202771711597412801446610212016630779151222620702016509085960881382116139782551032616321140769015091341931412149015650690156365146954012091354015034413614128190356901427751216775184590540205905401449054060390841132603902129051051142171122262116104327248220422220321129203151443111289607072226211331432050110624873862139116653750222622142208350904711041501162354374414290757222622123399090582665796212314161675722262320421104133961371936290352411105875290661019437524135622262313300423371937140121266904890142962226248611445148100113910259475402226241534977318756871617969035661021208701645612226252424413646958990294543170450413219390445207124358109166649102096750222625914697310066573554443750222626211781119024974217250117414290800192685309676201210651492226262513394211750843968601911018353549957710181099131288110668690142962226279169516901376658110209675022262714117892117502153147101531416660909022262811611443418454015034412419690222628106111081171022059030310051209022262920113350813811519361761936290352411106610196717115446862226291722441190665128881490613454561153987916446651222630152964038715723713941110390183439669207027912226302219204139767351270219540142416616884396906635580519607190222631279761909091777074725213396137674117821771166610110088109690665819090160932226319224902966574634121447762226322024950870411106665990866770150547961065737906691802226322231932050110665118756107210665152879714638820017797987915122263313306657502031665198791120165665122263337321411906651300903512166659680411510873614290736505407313637743710329096539909035776651600712226341034438511066579779859782075122263417129321186901022519051375579307871247901138781756222635359414666513559066436731661019693011453388207479874917142661547366253153513210812122609081179122263568011290417305222636172781787134112068429254644141571491032901565179122263642690251812226379556816414617711221847585722263712349773819969210409096820512139122263844515225915222263822418961447970790268909610428881490613454561153987916446651222639112807119017465404215611167281041082226399933004122167905241222226401435439615421858211062295976211133159016122264025817739085597246952149644952027717115974128014466102120166307791512226412333190441169520106325520311378236752782661387555610329028715122264116104327248220422220321129203151443111289607072226421453081115131222124575785667208680665522264214220835090471104150116235437441429075722264311371471707540976213648131590872226432042110413396137193629035241110587529066101943752413562226449102960905292142171113022264486114451481001139102594754022264582703131325755611539887122264524244136469589902945431704504132193904452071243581091666491020967502226468921026718146390137797222646211781119024974217250117414290800192685309676201210651492226472778150724176678540401150416680050690401141500702326237296901529034247222647916951690137665811020967502226481686501120106257183213104018390820535401150411432226481161144341845401503441241969022264921650300419879140665718335148271932229013956171414791186222649201133508138115193617619362903524111066101967171154468622265016220567734667140716785641895255903077914837222650152964038715723713941110390183439669207027912226511220145490561153988711077865766121222651279761909091777074725213396137674117821771166610110088109690665819090160932226528105773751474657353077972226522024950870411106665990866770150547961065737906691802226531839981041665711930866442448753754066102902167972226531330665750203166519879112016566512226547881806657107167576922265410344385110665797798597820751222655161286186665166435115101254071784157217396750222655359414666513559066436731661019693011453388207479874917142661547366253153513210812122609081179122265615302180665710190287552879010149665375022265617278178713411206842925464414157149103290156517912226571726314111665773116590140415713911665375022265795568164146177112218475857222658158121296651164510325805114290886651600712226584451522591522226591293109141665710329047539904135222659112807119017465404215611167281041082226602725832614466517583210321105705114213624824190613167103290419086066516007122266014354396154218582110622959762111331590161222661103361935198540520540807411722266123331904411695201063255203113782367527826613875556103290287151222662176501914071222418127290208111142451711544680222662145308111513122212457578566720868066552226637596431416621064572226631137147170754097621364813159087222664915669551013118756122786622266491029609052921421711130222665182806611075051423907505110381429041150665154071222665827031313257556115398871222666183509010914714077510047151797704166609014822266689210267181463901377972226672937178307791668628279090502204130463155496793135913413077912090750463463155840708222667277815072417667854040115041668005069040114150070232623729690152903424722266829124739509513313132173614757355214270674780666090530791513565857010021421711222668168650112010625718321310401839082053540115041143222669994146665130910866311412226692165030041987914066571833514827193222901395617141479118622267011302180665114296291137901996622267016220567734667140716785641895255903077914837222671102786736647755477062411502226711220145490561153988711077865766121222672125741908411942629081298987911711222672810577375147465735307797222673443811661172401371168614644141572381421103204891703203271167069613290261161112597375211909590170103474671118108669026222673183998104166571193086644244875375406610290216797232674322311910422267478818066571071675769232675510275669045791222675161286186665166435115101254071784157217396750232676511661067120457972226761530218066571019028755287901014966537502326774237934579722267717263141116657731165901404157139116653750232678410453644579722267815812129665116451032580511429088665160071232679101761210176147490417631103222267912931091416657103290475399041352326807162451477502171413170222680272583261446651758321032110570511421362482419061316710329041908606651600712326815327130568457972226811033619351985405205408074117232682510555721104579722268217650191407122241812729020811114245171154468023268337944567222683759643141662106457232684669196453817667912226849156695510131187561227866232685769901269019378114022268518280661107505142390750511038142904115066515407123268661205019014415954022268618350901091471407751004715179770416660901482326872182211966703801731408540791042217101218768611845236861205175781540222687293717830779166862827909050220413046315549679313591341307791209075046346315584070823268855367507611154022268829124739509513313132173614757355214270674780666090530791513565857010021421711232689510281875611154022268999414666513091086631141232690101171761120714732013224678114022269011302180665114296291137901996623269113391770811058103290217306511429014522269110278673664775547706241150232692135071027351129690130690904547904832226921257419084119426290812989879117112326939171109892852131215901203514222693443811661172401371168614644141572381421103204891703203271167069613290261161112597375211909590170103474671118108669026232694155071027352419696739081280307193909057232694428932966102232695453416111612223269532231191042326961795611212153690904166841461121115141653421402326965102756690457912326972612865907082214110611866311421701320512246305023270641151903077911022112326975116610671204579723269810684187779587233321151232698423793457972326995778434012021312326994104536445797232700321396969777919010723713516711516290326261176509096191687287292147828118416121151461562327001017612101761474904176311032232701151062177901057416583210161110130964518777822327017162451477502171413170232702821881045726412814820213623270253271305684579723270375627157442750905123270351055572110457972327046861351121904035402327043794456723270514956112121536909041668451135297135422232705669196453817667912327062595881518955078161630502327064196559078383714373530779115190102137232706769901269019378114023270779477021116305035209623270761205019014415954023270898991111018604516480702111145232708218221196670380173140854079104221710121876861184523686120517578154023270945367142142123270955367507611154023271010680108477549696470321551232710510281875611154023271112198351084772366110691233321151232711101171761120714732013224678114023271257784340120213123271213391770811058103290217306511429014523271351551901701111312327131350710273511296901306909045479048323271481062206157151127914114418262327149171109892852131215901203514232715686135712190403540232715155071027352419696739081280307193909057232716713274740469056241232716453416111612223271719162311761575242058739176047333024614415010103413425402327171795611212153690904166841461121115141653421402327188102156465262613116342540232718261286590708221411061186631142170132051224630502327064115190307791102211232719716114784770914064123271910684187779587233321151232720713381198621592147218232720577843401202131232721418690158854232721321396969777919010723713516711516290326261176509096191687287292147828118416121151461562327226475175454116462140232722151062177901057416583210161110130964518777822327231117650111012134112016522905316023272382188104572641281482021362327241215059643611301544539057321171123272475627157442750905123272586372625824465017105723272568613511219040354023272693448943175021010728666623272614956112121536909041668451135297135422232727568418168590102523272725958815189550781616305023270641965590783837143735307791151901021372327287118719071399213723272879477021116305035209623272976363132124290753812327299899111101860451648070211114523273075762479159045791512327304536714214212327315162247414457972327311068010847754969647032155123273255863124945797232732121983510847723661106912333211512327331033024741964418940841472797232733577843401202131232734721936511242903976723273451551901701111312327351210363151141169423101142321911803723273581062206157151127914114418262327361419736457506090142817069012459018332232736686135712190403540232737827045702806775135270241823273771327474046905624123273877963191111876113123273819162311761575242058739176047333024614415010103413425402327399616234110590170840422471104232739810215646526261311634254023274046643027782232740716114784770914064123274110128594117041594116722315123274171338119862159214721823274273663512534136770412327424186901588542327431028216877214159325872024123274364751754541164621402327441611669651201259675073214596103853957468139473422327441117650111012134112016522905316023274593998101781022288480453641232745121505964361130154453905732117112327465650300415557723274686372625824465017105723274781593311208391623179157232747934489431750210107286666232748111811115907010009047414573444223274856841816859010252327498153647277539121806139714023274971187190713992137232750121889545702318773701615553970241823275076363132124290753812327511097641171137331201903527411723275175762479159045791512327527964521032909617411723275251622474144579723275310656112293101111241466387411723275355863124945797232754612413141570138322327541033024741964418940841472797232755870453101860477491703138232755721936511242903976723275612128281327065113290706671081311342327561210363151141169423101142321911803723275785965105196961032120130232757141973645750609014281706901245901833223275851376112130652622327588270457028067751352702418232759810516012081635392029013023275977963191111876113123276059561121306526223276096162341105901708404224711042327611459651051115214372231732050496219013023276146643027782232762572414113065262232762101285941170415941167223151232763580910214150732232763736635125341367704123276424236111661218721109171377304336507377023690115714740906617014123276410282168772141593258720241232765658611159135210431412327651611669651201259675073214596103853957468139473422327666146416704220213023276693998101781022288480453641232767610621779056311120223276756503004155577232768739116941280511105823276881593311208391623179157232769923643141108116119154431552327691118111159070100090474145734442232770741145390227772021362327708153647277539121806139714023277151074512022278323277112188954570231877370161555397024182327728330202131477581470241823277210976411711373312019035274117232773166385641809262961471195575110201311301411402327737964521032909617411723277410567377661071141113279073078223277410656112293101111241466387411723277562454514711910301702327756124131415701383223277610691989023686779114711910809623277687045310186047749170313823277761159651282655182327771212828132706511329070667108131134232778811788590170840422470712327788596510519696103212013023277988911477785716114322531382327795137611213065262232780710271321251319685525323278081051601208163539202901302327815546379667813123278159561121306526223278214340810457306811361922532028790390715623278214596510511152143722317320504962190130232783812841355169301774188712272232783572414113065262232784818545962994387465612327845809102141507322327857170781032909726013123278524236111661218721109171377304336507377023690115714740906617014123278681661725687275758313823278665861115913521043141232787959651011136171329725113123278761464167042202130232788872931921175738419259123278861062177905631112022327891130160120211323631139121665912327897391169412805111058232790183881283156207124761727352583180137661108496232790923643141108116119154431552327917340810457255128120213623279174114539022777202136242792913761904634129614511431452712327925107451202227832427932622790105819355832936855251051666490286481761374256136195012510510423279383302021314775814702418242794182271107502545607583294311105657733288319923279416638564180926296147119557511020131130141140242795193284573831575539374265116932028041870540620306797232795105673776610711411132790730782242796112581286661311427507690410791322327966245451471191030170242797172861205668711273583952363232075807663306797232797106919890236867791147119108096242798981490715111566550517432327986115965128265518242799118141205668711273709518041262212327998117885901708404224707124280092869071511166618025174323280088911477785716114322531382428019784096657659170669107323280171027132125131968552532428022810207733513522744674757290483411352518090810113290501481311501671342179151232802554637966781312428031210210170614481123857422395062170167232803143408104573068113619225320287903907156242804148104566124147353418707813202801152167232804812841355169301774188712272242805151020773951321419019084396906591706691073232805818545962994387465612428061610206612417665371407901004115559860359170123280671707810329097260131242807141020458706141708540518186415706217017323280781661725687275758313824280891965105186054875166104023280895965101113617132972511312428097781507244390667823280987293192117573841925912428102059631497150728439690817737598791904257805176791512328101130160120211323631139121665912428119258296665765917066910732328111838812831562071247617273525831801376611084962428123515018072321904766106813901503741659170669107334743225113640110164829640110168793198791171123281273408104572551281202136242813262581286729066129051466322312036610290346218343474235117215094143441372428134289329661022428141310207738184396901575681543620306791512428149137619046341296145114314527124281592067843285765861557095624281526227901058193558329368552510516664902864817613742561361950125105104242816111331391166512121391096615176624281618227110750254560758329431110565773328831992428171627031313257520281308674821141414591573120512321544242817193284573831575539374265116932028041870540620306797242818191376190908107904211054397841847812104191041319879117112428181125812866613114275076904107913224281922150596437290381136128190140579076641810461111496414701312428191728612056687112735839523632320758076633067972428201791647462411507290511961811210419104151621701002428209814907151115665505174324282115276438126651753875033410113399018172561302428211181412056687112737095180412622124282278574190223161246641421522907504118029110623715267711011227079115072659023947121056471574904171767106362771362771375636471197563147697593325227637761108971098961105413252276373441054349902660597136242822928690715111666180251743242823171501377291590661105391935111813790226150939224282397840966576591706691073242824482581286282769066131290969655107018395492555110441109516323746274166719045881113558051554162490814541468797915906611154188073317917362428242810207733513522744674757290483411352518090810113290501481311501671342179151242825136601027192906377919057750341210113914024282512102101706144811238574223950621701672428264815032052721716036610183219029166292561102562515657042830423351217376153147826850890120214487750199017214196386261570103853925666242826148104566124147353418707813202801152167242827141591043963580106969367505166751418902428271510207739513214190190843969065917066910732428281933116995932577476442815714866920120823760949031234242828161020661241766537140790100411555986035917012428291471121232190317729159082147411196610524282914102045870614170854051818641570621701732428302210234072761721296619321227019702418511022851872831873077972428309196510518605487516610402428313325690351212573566113709621734701980470287218687813717119190491919049131643210901391724283177815072443906678242832212464315072491526140104505722561038539909035806651600712428322059631497150728439690817737598791904257805176791512428337371664710385399071242833925829666576591706691073242834383277173071113532190120391321907192206909636901429010366690813141690262118540671265407230665160071242834351501807232190476610681390150374165917066910733474322511364011016482964011016879319879117112428351032577307750905129310166142242835262581286729066129051466322312036610290346218343474235117215094143441372428363131432050110665132141667402731103609014129311036090141661103609021551901250730722428361310207738184396901575681543620306791512428371165030041321902972503412139134242837920678432857658615570956242838152296747750769013539045654013733568922082428381113313911665121213910966151766242839111166135390702107108307664181708242839162703131325752028130867482114141459157312051232154424284079204641813975805724284019137619090810790421105439784184781210419104131987911711242841161058456732307155661085174741611411040183912428412215059643729038113612819014057907664181046111149641470131242842182454573137221153511071083076641817022271367192242842179164746241150729051196181121041910415162170100242843101854514752166916307668996242843152764381266517538750334101133990181725613024284417596438126651401856073113089368690147126821424284478574190223161246641421522907504118029110623715267711011227079115072659023947121056471574904171767106362771362771375636471197563147697593325227637761108971098961105413252276373441054349902660597136242845231331064323271104781650057518411767841115172443131327103669713024284517150137729159066110539193511181379022615093922428463832845147750763009632112586312029273176901777514117411097520617790791117161103290130556115315098791668024284648258128628276906613129096965510701839549255511044110951632374627416671904588111355805155416249081454146879791590661115418807331791736242847870419032710364414157164242847136601027192906377919057750341210113914024284811371108282991032901803077915203124284848150320527217160366101832190291662925611025625156570428304233512173761531478268508901202144877501990172141963862615701038539256662428495078150724439066727708721109321701521316215537170100906771031412126769611519057313267431412613290641103115010910497079716249079113119879117112428491415910439635801069693675051667514189024285019781507241790667277017790791121261133810915015210327082428501933116995932577476442815714866920120823760949031234242851231501807285810750577410461210568930516216518080269314721529021824285114711212321903177291590821474111966105242852766561904439066727702626866124904232511102174191074782110371244585162170100264753453041710924187698418757141872124187106841877184187507418774418747890458512511103721110811103721130511037211152110100242852221023407276172129661932122701970241851102285187283187307797242853392581286665166751747135710120831396902123878230768162791671297791511232418724701142411101157870830768987912239224285333256903512125735661137096217347019804702872186878137171191904919190491316432109013917242854278177315775355475124612077779110287381505867916615010487393210512232785510312428542124643150724915261401045057225610385399090358066516007124285522150320527214743197463396211549141150104103853990416551322428557371664710385399071252856996126111681110462877416232428563832771730711135321901203913219071922069096369014290103666908131416902621185406712654072306651600712528571971538932050736121905303580764117107610385399035741242857103257730775090512931016614225285822557372437447156372013710012661563779651321796314165901714242858313143205011066513214166740273110360901412931103609014166110360902155190125073072252859162209712118485714611513368710132706513077911372428591165030041321902972503412139134252860913822711548095829128281144242860152296747750769013539045654013733568922082528611225912877156103853990291150741931302428611111661353907021071083076641817082528621696111516690468867199903661516132770671144242862792046418139758057252863173152343292851105813796615835476777461507242863161058456732307155661085174741611411040183912528649103615111917603501009110115124286418245457313722115351107108307664181702227136719225286517397501192888149061345475090811501033115174162324286510185451475216691630766899625286683411697221205321697293224286617596438126651401856073113089368690147126821425286793042311361778611190646702242867231331064323271104781650057518411767841115172443131327103669713025286897091068145091111296138708242868383284514775076300963211258631202927317690177751411741109752061779079111716110329013055611531509879166802528698731709882070987481312428698704190327103644141571642528701334721754716278044166558418107511302428701137110828299103290180307791520312528711014781222110716953774196752428715078150724439066727708721109321701521316215537170100906771031412126769611519057313267431412613290641103115010910497079716249079113119879117112528721613383745415287130149222666609014247563622428721978150724179066727701779079112126113381091501521032708252873212091478495111741865955106589080901750518110727141141138242873231501807285810750577410461210568930516216518080269314721529021825287415233774855150980963413737110051215924378818424287476656190443906672770262686612490423251110217419107478211037124458516217010026475345304171092418769841875714187212418710684187718418750741877441874789045851251110372111081110372113051103721115211010025287520303222777495359029321601999041215114796324219015234247242875392581286665166751747135710120831396902123878230768162791671297791511232418724701142411101157870830768987912239225287619233477483236906901342532607137161886719226931791137242876278177315775355475124612077779110287381505867916615010487393210512232785510312528771025821220840376651231137266562428772215032052721474319746339621154914115010410385399041655132252878979718239140901474141201252878428932966102252879718112580181076689102252879996126111681110462877416232528807498137931114142900622528801971538932050736121905303580764117107610385399035741252881934139211057773581397661212528812255737243744715637201371001266156377965132179631416590171425288212103327110210150011146291101002880622528821622097121184857146115133687101327065130779113725288376711621701705004561125288391382271154809582912828114425288411133722240177747017695112089113425288412259128771561038539902911507419313025288510255382706170815651202113271372528851696111516690468867199903661516132770671144252886113572122411637490816280154776252886173152343292851105813796615835476777461507252887151041692111798277024783821158767307791137252887910361511191760350100911011512528888751125141843257248737252888173975011928881490613454750908115010331151741623252889111038371125006798416511057479125288983411697221205321697293225289092242626071151604541164621402528909304231136177861119064670225289196554204657297911774170926125289197091068145091111296138708252892138277410915321617120513973217297164152252892873170988207098748131252893873175062363291108556822528931334721754716278044166558418107511302528947101365357603351053572528941014781222110716953774196752528951655726931783227293151107249650441346110408140252895161338374541528713014922266660901424756362252896112976657274170719321786512277082528962120914784951117418659551065890809017505181107271411411382528971710383190804266682061521163435167487120921255125289715233774855150980963413737110051215924378818425289896711547653217411701906122528982030322277749535902932160199904121511479632421901523424725289915103831453221332455126672367665147041252899192334774832369069013425326071371618867192269317911372529001675115431154540132138311429614411022241600712529001025821220840376651231137266562529015281903929585402529019797182391409014741412012529021155728710946413394101901037411725290271811258018107668910225290313221511429014565324625032502917411725290374981379311141429006225290410731128163781812314514171082529049341392110577735813976612125290593073214272193967107426140252905121033271102101500111462911010028806225290679613155090653361422529067671162170170500456112529077233147643924791112529071113372224017774701769511208911342529081525821881010810987871268177270630124374117252908102553827061708156512021132713725290912315222773021131885038290730741172529091135721224116374908162801547762529101411162071103327710553725531416660901482529101510416921117982770247838211587673077911372529115967543323624725291187511251418432572487372529121410320741171051311903220490115152411302529121110383711250067984165110574791252913138138276071165976456317414911046225291392242626071151604541164621402529141781371723296011104775405246590108471038539730741252914965542046572979117741709261252915133376369271118329471383587575140708252915138277410915321617120513973217297164152252916113013472659610921214290103741623252916873175062363291108556822529171352720679305120612071529310110374117252917710136535760335105357252918121321381266577086210321104067913298325291816557269317832272931511072496504413461104081402529195158682774787972529191129766572741707193217865122770825292011124271779519877312137125320279725292017103831908042666820615211634351674871209212551252921418880147157252921967115476532174117019061225292211148750627771776357702387027972529221510383145322133245512667236766514704125292322543140750190961233714132662484412215963780137661101403179725292316751154311545401321383114296144110222416007125292489795650187568043596125292452819039295854025292516259128766775195266646147130141146974039032252925115572871094641339410190103741172529269444664141813613014640396252926132215114290145653246250325029174117252927926224710692477082443753179725292710731128163781812314514171082529281017813111681770247414927702797252928930732142721939671074261402529291383660161131305136869908172532027972529297961315509065336142252930913842396202299431316766725293072331476439247911125293151888015189669525293115258218810108109878712681772706301243741172529321279862261162184141672126283411302529321231522277302113188503829073074117262933110925293314111620711033277105537255314166609014826293441334544124502529345967543323624726293561969332210673150252935141032074117105131190322049011515241130262936111531362671410161429015513735151252936138138276071165976456317414911046226293711117012578325523299092090466472529371781371723296011104775405246590108471038539730741262938854877841646067291842529381333763692711183294713835875751407082629391127016509096504601032412177725293911301347265961092121429010374162326294081967667147467509051252940135272067930512061207152931011037411726294152891254122257252941121321381266577086210321104067913298326294281062177411511162226570725294251586827747879726294345663240614625294311124271779519877312137125320279726294467885168261202131252944418880147157262945826241371151199373049262529451114875062777177635770238702797262946659651762752110812529462254314075019096123371413266248441221596378013766110140317972629477666170524657895113125294789795650187568043596126294872322022965221740649225294816259128766775195266646147130141146974039032262949531262161291512529499444664141813613014640396262950101703309014193851141272711312529509262247106924770824437531797262951739290457580441600586252951101781311168177024741492770279726295269229058702586131252952138366016113130513686990817253202797262953114219016969212409311407115096025295391384239620229943131676672629548312624765111049616545625295451888015189669526295552322024740613125295512798622611621841416721262834113026295692565105110847103853920213126295642893296610226295751026324912013126295711092629585128742082621312629584133454412450262959717910129174135651131262959619693322106731502629609656510511084712796712021312629601115313626714101614290155137351512629618250902041220372101901312629611111701257832552329909209046647262962510232243343131262962854877841646067291842629637286904705174811312629631127016509096504601032412177726296461026231578216622126296481967667147467509051262965612718231578219133262965528912541222572629667150299706514913113126296681062177411511162226570726296786978222751061908735122426296745663240614626296875691369057961320913826296867885168261202131262969415026952437262969826241371151199373049262629705186565813041932629706596517627521108126297156094913517114626297176661705246578951131262972711244578513045221812629727232202296522174064922629731211241087151235816143613830414151262973531262161291512629746433120702117160131262974101703309014193851141272711312629757226491411381167513126297573929045758044160058626297691120138524068414422186218262976692290587025861312629778167416101578216611622126297711421901696921240931140711509602629783128304221262978831262476511104961654562629794232204921382629795232202474061312629803268116202262980925651051108471038539202131262981211742697119030085260596256299200741322569075151132355311312629815102632491201312629827278253415210103113826298251287420826213126298311227377151672253811290511695226298371791012917413565113126298485681118926151116418226298496565105110847127967120213126298555691369040637126298582509020412203721019013126298642261275525126298651023224334313126298731997811022629877286904705174811312629883965153582629886102623157821662212629894142454909802629896127182315782191332629903270187892629907150299706514913113126299143126277077026299186978222751061908735122426299227006042629927569136905796132091382629938350521161021311956211512629934150269524372629946139212120515113126299451865658130419326299513105170380501513412411831003511164115626299556094913517114626299638925401752629967112445785130452218126299751741159611612126299712112410871512358161436138304141512629983892135254026299864331207021171601312629998196766714746750905126299972264914113811675131263000528912541222572630009112013852406841442218621826300142595315543726300181674161015782166116221263002653241157481317012630023128304221263003623136106018312613826300342322049213826300455307012963513126300432681162022630054106673267263005211742697119030085260596256299200741322569075151132355311312630066246770656432138263006727825341521010311382630075532510417321312630071122737715167225381129051169522630083232764912630088568111892615111641822630096232202324080176263009556913690406371263010479917907412630104226127552512630114236189117472630113199781102263012445091144070826301239651535826301348854052074726301341424549098026301489556103940129051120747263014327018789263015622220569407202263015431262770770263016689290194141401102630162700604263017520158711901702630178350521161021311956211512630186922907156431287263018613921212051511312630194638561067372630191310517038050151341241183100351116411562630206108377121031562630203892540175263021614013466411903226302151741159611612126302236608952426302238921352540263023311279261526302381967667147467509051263024653251041617514626302452891254122257263025780674663566609026302542595315543726302641100459613126302665324115748131701263027317010369263027623136106018312613826302841196965113826302855307012963513126302961028611207151466263029410667326726303042322041867012630306246770656432138263031437032882472630315532510417321312630324511908112126303232327649126303339820437263033623220232408017626303472279020622581511162630344799179074126303581967667147467509051263035423618911747263036528912541222572630364450911440708263037442164146112226303748854052074726303879563264652751317012630388955610394012905112074726303941012969061263039622220569407202263040315266588263040689290194141401102630411123220211032214512049011515247263041520158711901702630423152665882630426922907156431287263043510184995014713826304346385610673726304462067843150471312630446108377121031562630457102636212110321165126304561401346641190322630464227216524726304636608952426304751029603252512630473112792615263048938090556641185570901382630486532510416175146263049577815651202131263049780674663566609026305092279012096119489113725692630504110045961312630516435161901159620026305131701036926305241947613525402630524119696511382630538196766714746750905126305361028611207151466263054528912541222572630544232204186701263055342175112226305543703288247263056795632156527513170126305645119081121263057410129690612630573982043726305831526658826305872279020622581511162630591123220211032214512049011515247263059819676671474675090512630605102816280525092630605289125412225726306141090190251216226306144216414611222630624266751751708263062795632646527513170126306331526658826306341012969061263064559643105741514263064315266588263065311816410526306511232202110322145120490115152472630662142460263066315266588263067610205677317068261263067510184995014713826306891068904707041137716177138263068620678431504713126306951287303270651263069710263621211032116512630703874108472630704227216524726307110196766714746750905123281326307151029603252512630725289125412225726307293809055664118557090138263073342155011222630735778156512021312630747956321296527513170126307492279012096119489113725692630754101296906126307564351619011596200263076315266588263076419476135254026307711232202110322145120490115152472630778196766714746750905126307851516241901077263078528912541222572630793142454902630793421751122263080485511568628926308079563215652751317012630815346419679092026308141012969061263082315266588263082315266588263083447124149637263083112322021103221451204901151524726308461943710329021079126308451028162805250926308553999045192138263085410901902512162263086112869047051184816215023245141263086426675175170826308791865650296502361567101312630873152665882630887102056773145178512372630885596431057415142630893155188462263089311816410526309010196766714746750905180414262630902142460263091528912541222572630916102056773170682612630924421451461122263092910689047070411377161771382630937956324565275131701263093512873032706512630944101296906126309438741084726309531526658826309510196766714746750905123281326309611232202110322145120490115152472630965289125412225726309742329010028582630973421550112226309811131146491327890262907304113622630987956321296527513170126309999349055645118557090138263099410129690612631005222902306113126310031526658826310152068152113202263101112322021103221451204901151524726310231744719926310251516241901077263103412949087322631033142454902631043892295540263104485511568628926310561081249151250155307263105534641967909202631068196766714746750905126310631526658826310752891254122257263107447124149637263108442167102722263108619437103290210791263109695632382751317012631095399904519213826311041012969061263110112869047051184816215023245141263111315266588263111918656502965023615671013126311211232202110322145120490115152472631127102056773145178512372631136991904833791942631133155188462263114368126370263114101967667147467509051804142626311592441032909773736714210693726311552891254122257263116512877790741514263116442145146112226311753999045192138263117795632456527513170126311898141201020576215023245147263118410129690612631199286904705114290161161250263119315266588263120559643141212131263120112322021103221451204901151524726312110102056773715696656773142681326312142329010028582631228196766714746750905126312211131146491327890262907304113622631235289125412225726312399349055645118557090138263124423220252762263124522290230611312631254132245787263125520681521132022631265108190506152110263126317447199263127310228214326312741294908732263128412820912062263128389229554026312993126215115551167580772631296108124915125015530726313052058721101434226313081967667147467509051263131619677841155386263131528912541222572631325374138901667702631324421671027222631337112804217418716231263133695632382751317012631345636315114075462631344101296906126313541246108352332631353152665882631362629907263136112322021103221451204901151524726313741706065169226313769919048337919426313851467841595402631383681263702631396576784116510614126313992441032909773736714210693726314071046363231590107472631405128777907415142631414103171479302631415399904519213826314244117887472631429814120102057621502324514726314356154775107247263143928690470511429016116125026314442392011209626314455964314121213126314599039055680137661104741112631451010205677371569665677314268132631463394100095726314681967667147467509051263147622790493120821487263147528912541222572631487596812226121018613126314842322025276226314942891251104622631494132245787263150454668231741263150510819050615211026315131599055826315131022821432631524181211115626315241282091206226315364114879011012335263153931262151155511675807726315455511025011048726315452058721101434226315547797722011962631556196778411553862631563109452761826315653741389016677026315771211150909660071263157711280421741871623126315852463141202102263158563631511407546263159192482221197779121697741769075473166933561153987913226315941246108352332731606102429382412450692631602629907273161325651819263161417060651692273162922245839516447815721679126316251467841595402731631018112518775688391623179151263163657678411651061412731641094845837905180476757916726316471046363231590107472731657150788490382570772631654103171479302731661658519016231047178049653125251161711161317012631664411788747273167142322026612750962829090228517020151263167561547751072472731687109125665256116112631684239201120962731692041744691316110803111611182762474654778122071511811372631699903905568013766110474111273170112581286141767611936540970903226317033941000957273171193011477896157406414125309076121090823120335903464126317162279049312082148727317281022687061383374634591512631727596812226121018613127317311275178711101231113971236103382826317342891251104622731741522782907301109617416583138141197214621402631744546682317412731751913394141706513205090474250199191142171113721191712263175315990558273176914912525614884906822151426317641812111156273177206363151741911773123164215117111255311511111040870241826317764114879011012335273178242209790670701140613014157511161105614415805215114420213714290830582263178555110250110487273179121104907141492113140412112505902631794779772201196273180910215251177967319774858263180310945276182731811417055639043974177043418211861210640263181712111509096600712731821110205704232050908235352474136126318252463141202102273183174753112513312021918740175736660904601331584192631831924822211977791216977417690754731669335611539879132273184146064711364115610385399064381374165843227318442893296610227318581051601202113236316627318561024293824124506927318678149047041595126013127318632565181927318711339742123116543654086216706435708273187922245839516447815721679127318892704234114161102171153127318810181125187756883916231791512731898289329661026219190562731891094845837905180476757916727319052304731105073227319071507884903825707727319113765418242185470412519054710217115312731911658519016231047178049653125251161711161317012731921270174212416127831863491114310813827319214232202661275096282909022851702015127319313246776736428311615731564170212751531273193710912566525611611273194841728342123626863356727319420417446913161108031116111827624746547781220715118113727319516744481491324628181066462121735511311911415127319511258128614176761193654097090322731961313475173696984875132316566686274273196193011477896157406414125309076121090823120335903464127319711230477511325784817110217111312731978102268706138337463459151273198161011461156720190546511327431528490760131273198112751787111012311139712361033828273199382701060212131300962255301725209630141522138212910907061311298012061513096161451132743152454901401297411312731991522782907301109617416583138141197214621402732001247531791904764182012005763627713127320019133941417065132050904742501991911421711137211917122732011423077138901714741176531590727140414151273201914912525614884906822151427320212361146904715766609047647141106273202206363151741911773123164215117111255311511111040870241827320328232202651911105372001370612025315179028429856131177120806384756061513296453614027320324220979067070114061301415751116110561441580521511442021371429083058227320413119644145782668451130647550413421402732041211049071414921131404121125059027320513704190662196671541321181019701461113127320591021525117796731977485827320613986146491326612428013113098222711382732061417055639043974177043418211861210640273207101943710329021021453514090772732071110205704232050908235352474136127320814281584195360418126654047547686081382732081747531125133120219187401757366609046013315841927320976363151261317261273273209146064711364115610385399064381374165843227321091741973405230517871110123127321081051601202113236316627321111206176467509051977436224635302732117814904704159512601312732125566849879112127321211339742123116543654086216706435708273213874849742585818113170152273213927042341141611021711531273214114941464913215260903162658871212732148289329661026219190562732151568011296770904531811138513215112711212732155230473110507322732167129490361647324720027321613765418242185470412519054710217115312732176108124915125015530727321712701742124161278318634911143108138273218125864281066190791821101376583130273218132467767364283116157315641702127515312732192717014645326611037509859519071411511011237584511429090941038539730912732198417283421236268633567273220212063176632661103720301621092773610925866710950210321039127322016744481491324628181066462121735511311911415127322116137641171661103710327211791074168070210802591273221131347517369698487513231656668627427322220586111665116611037653246250325030096247233137190899127322211230477511325784817110217111312732231925551051318413130661103710381429037796995407611791273223161011461156720190546511327431528490760131273224146386263647663210431038539909015031130273224382701060212131300962255301725209630141522138212910907061311298012061513096161451132743152454901401297411312732251416696453296320904532837901852263227322512475317919047641820120057636277131273226992962676047170330779113727322614230771389017147411765315907271404141512732271212828132706511329067108706131134273227123611469047157666090476471411062732289374178711101238103290277130273228282322026519111053720013706120253151790284298561311771208063847560615132964536140273229932681910904703715546537273229131196441457826684511306475504134214027323072555105111170645020827323013704190662196671541321181019701461113127323191019741872902848651140130273231139861464913266124280131130982227113827323210586317661061421109107362225727323210194371032902102145351409077273233821647345470411802225727323314281584195360418126654047547686081382732341010242390321038142901018904727323476363151261317261273273235121176954574172131262110200382706512732359174197340523051787111012312732364256259496227323611206176467509051977436224635302732378181125177510792022251273237556684987911212732387133139110716611053627323887484974258581811317015227323911306437021161615703748757031712732391149414649132152609031626588712127324014226125465106903257051130612015122451472732401568011296770904531811138513215112711212732411622231465781425153510329012758551551671767082732417129490361647324720027324211149125465732130904650905586227324261081249151250155307273243135965107431418434764241163131217024182732431258642810661907918211013765831302732448225311259774315516718227324427170146453266110375098595190714115110112375845114290909410385397309127324515162176442750905133329395177101154522177127324521206317663266110372030162109277361092586671095021032103912732461886541256663119032103290965399090237327907406227324616137641171661103710327211791074168070210802591273247186364381256320505517416621010224064021534766761627324720586111665116611037653246250325030096247233137190899127324811147766157905196810115156149027324819255510513184131306611037103814290377969954076117912732491359651041324663528290655021181496273249146386263647663210431038539909015031130273250172619077516473205041254741727102027751641922732501416696453296320904532837901852263227325115108190529221083096225429172420170382437572732519929626760471703307791137273252115961111113222478924173406583136273252121282813270651132906710870613113428325311092732539374178711101238103290277130283254413345441245027325493268191090470371554653728325591621761414121165390130486273255725551051111706450208283256192759071561665041097201351051420381421091032901014065127325691019741872902848651140130283257127982045620410329014187911101405127027325710586317661061421109107362225728325812974784113511510340626610329075166273258821647345470411802225728325922421901216121652475371091378190226115108078210865111641418227325910102423903210381429010189047283260136807811510340651728175116406316252732601211769545741721312621102003827065128326118636315141175572615114094131564013070040664253727326142562594962283262172279050613811026251677446425511282116419110727326281811251775107920222512832631063631515512077722051036537273263713313911071661105362832641620535519020141236110953561113290114211530527326411306437021161615703748757031712832651720631766106108668051576465371367003046413442732651422612546510690325705113061201512245147283266102497077614769467483310103277273266162223146578142515351032901275855155167176708283267381028708056401140907061311159901161188590741110785907412047859071278590706991293969342901115681101406402732671114912546573213090465090558622832681328913171156351360401361200137061202131273268135965107431418434764241163131217024182832699403111677160110561432021312732698225311259774315516718228327016102104671116351311365134806741782712692140901812732701516217644275090513332939517710115452217712832713325990476516144710329020747651326145113419193061990516151161113176801174332151206511512732711886541256663119032103290965399090237327907406228327219240905061884596227071025111611131150140201902332027327218636438125632050551741662101022406402153476676162832731010621779011320213171269296883273273111477661579051968101151561490283274111337789512121401311045414147727327413596510413246635282906550211814962832752723291066312304418220315326724113111617021059019226142904611513104512107727327517261907751647320504125474172710202775164192283276153908109041488716120221196141446540762502732761510819052922108309622542917242017038243757283277261062177904591080311313111151961915181570412048011013515314901107506049927327711596111111322247892417340658313628327811132147106590810516704031160531283278428932966102283279292209066311515271304015121547144170571881131146016645111046646323995121561131283279110928328015661864111072110131111131012552887275013128328041334544124502832812758519028290714780496471140252511615687113125224656901114326765116910151283281916217614141211653901304862832822023220266526111611515399029920890132423209070408151283282192759071561665041097201351051420381421091032901014065128328320182907110803713311611182762474654778122071511811315728328312798204562041032901418791110140512702832842530114778969140641222903098512389082618877612109082312033590341112832841297478411351151034062661032907516628328595965176219113593061202131283285224219012161216524753710913781902261151080782108651116414182283286147885168261264215120376142100179112626172832861368078115103406517281751164063162528328715112053496492465102186111151911596338944141312832871863631514117557261511409413156401307004066425372832881712865907082214773026832706411384634651165915128328817227905061381102625167744642551128211641911072832891810581283156236178354769612990521492141212116137283289106363151551207772205103653728329029814909866711636411101402994018410011097114019112203690905404110217114061372832901620535519020141236110953561113290114211530528329112339319296963139121210329074116892832911720631766106108668051576465371367003046413442832921010621787111012318190928741437283292102497077614769467483310103277283293940631187622824114056205283293381028708056401140907061311159901161188590741110785907412047859071278590706991293969342901115681101406402832941024790451876215596710905752832941328913171156351360401361200137061202131283295161386175259251713037838710741769045411646214028329594031116771601105614320213128329613401904704727211641961701124358470472832961610210467111635131136513480674178271269214090181283297183907110746315583610436905184704734115552635740310728329733259904765161447103290207476513261451134191930619905161511611131768011743321512065115128329820138617515290960904474114713802229025310611670124658470472832981924090506188459622707102511161113115014020190233202832991822790132432602297926916725323370544431475475173283299101062177901132021317126929688328330026357525214415073191381329011641743317771164174157041767138175901395915128330011133778951212140131104541414772833011325551051478136201166124904254881302833012723291066312304418220315326724113111617021059019226142904611513104512107728330223106217729316651669019121217473130831966853892221504927013128330215390810904148871612022119614144654076250283303613861751677517714028330326106217790459108031131311115196191518157041204801101351531490110750604992833048162745137904545077912833041113214710659081051670403116053128330515230137907152253901395679213815545070828330529220906631151527130401512154714417057188113114601664511104664632399512156113128330612296403871161562862994370024947267283306156618641110721101311111310125528872750131283307151301462311701312029619381144125107810671777082833072758519028290714780496471140252511615687113125224656901114326765116910151283308135421411732190296610641390419317128330820232202665261116115153990299208901324232090704081512833092520631766106859030832050114146259224975160771052901139130505225114428330920182907110803713311611182762474654778122071511811315728331017798108771713212190530702165308266113159010766283310253011477896914064122290309851238908261887761210908231203359034111283311201027483234110571474631554462974790582418341952227147283311959651762191135930612021312833121565611211981066124474799655591320908574728331214788516826126421512037614210017911262617283313171139901875611540965551156611014691119811361712833131511205349649246510218611115191159633894414131283314857351079154161226120622833141712865907082214773026832706411384634651165915128331518142637841616541067611113106879152253167155108791131283315181058128315623617835476961299052149214121211613728331613475789636804214754921502055918214628331629814909866711636411101402994018410011097114019112203690905404110217114061372833176421446742226120622833171233931929696313912121032907411689283318756731125766951556002833181010621787111012318190928741437283319112499086512201301469740390122283319940631187622824114056205283320145861115176612184675714112173214174022828332010247904518762155967109057528332172164734547041150228283321161386175259251713037838710741769045411646214028332215729529941843789083351132363166172833221340190470472721164196170112435847047283323196261128234816612103690187564130510117066103516521302833231839071107463155836104369051847047341155526357403107283324217481129558672481661210369018756413052871706610351652130283324201386175152909609044741147138022290253106116701246584704728332513976196915901845955672931019010365396283325182279013243260229792691672532337054443147547517328332685735107915416122612062283326263575252144150731913813290116417433177711641741570417671381759013959151283327177467841165836651395122731841326132046509018428332713255510514781362011661249042548813028332829379203166516883115135131701142472004965345141114904731551092116146907135751283328231062177293166516690191212174731308319668538922215049270131283329262752031665110329017614023761661196112596901725103783723666422131140928332961386175167751771402833302837080312010137114727111953051190387901379056104665115077134140110822921312833308162745137904545077912833312110209087365635741741570814401196552807911314729015111088328333115230137907152253901395679213815545070828333216380321473713014691120810665091061714147911372833321229640387116156286299437002494726728333317871907147666090411959035711211032218787128333315130146231170131202961938114412510781067177708283334263881283192537701616690516732082903211203388166872021341164977911072833341354214117321902966106413904193171283335146602151463710329010728031820159837236450283335252063176610685903083205011414625922497516077105290113913050522511442833361820678413251214779130111118149696810115156149028333617798108771713212190530702165308266113159010766283337191028619011965214901412121301154125538213010807415128333720102748323411057147463155446297479058241834195222714728333815421111652611122290253324546115051609470472833381565611211981066124474799655591320908574728333916651905263722241816148870176664121201743728333917113990187561154096555115661101469111981136171283340197295299351932563205011323631801376611047437283340857351079154161226120622933411712833411814263784161654106761111310687915225316715510879113129334210596315192153516375114271283342134757896368042147549215020559182146293343118142362017916631017790791531140283343642144674222612062293344101344171229515122067917041283344756731125766951556002933451218121117431663413166141219719028334511249908651220130146974039012229334610232120109066512252317213962833461458611151766121846757141121732141740228293347122067874111920152616543056115398797283347721647345470411502282933482159651043203373415251111407501004112950345711958193163283348157295299418437890833511323631661729334972209080956115398797283349196261128234816612103690187564130510117066103516521302933503123230090431436610717071522262229034014966679314253510366907177826892146901429628335021748112955867248166121036901875641305287170661035165213029335163622369879166236283351139761969159018459556729310190103653962933521880996320906669014145476811641534809882030779113728335285735107915416122612062293353117467811118756187677110639677174283353177467841165836651395122731841326132046509018429335416102751177142611276032115111135612151416534214028335429379203166516883115135131701142472004965345141114904731551092116146907135751293355626116166236108200283355262752031665110329017614023761661196112596901725103783723666422131140929335613596510519081079051866841811317012652833562837080312010137114727111953051190387901379056104665115077134140110822921312933572772946355349433866124149030890156316660905327915110211925596660905329228335721102090873656357417415708144011965528079113147290151110883293358131331064323271104719290817221841129572833581638032147371301469112081066509106171414791137293359132806611075051995407616626110217772833591787190714766609041195903571121103221878712933601931432050110665183738737066540761711012381032902771302833602638812831925377016166905167320829032112033881668720213411649779110729336185885232190264321907822833611466021514637103290107280318201598372364502933621735037469066609090471429037103290182491472833621820678413251214779130111118149696810115156149029336313817737573658908767152664143077972833631910286190119652149014121213011541255382130108074151293364201621764427509051282906614031975421385132151127112128336415421111652611122290253324546115051609470472933652740190904728211487393216687493231018756540965590122555596660902141921372833651665190526372224181614887017666412120174372933661210912511562124124961137453517128336619729529935193256320501132363180137661104743729336718220120837906296902094734609413159016019417035702933674289329661022933681423290139082224142588711118113170152293368171293369232869047051667754621385132151127112134112590863133641265887121293369105963151921535163751142712933706275177110401202131293370118142362017916631017790791531140293371151031784251346710361015213854525934141477293371101344171229515122067917041293372161294904716473247198969214110813846965113129337212181211174316634131661412197190293373231294904716623262119524653710803114497147907478046341414517729337310232120109066512252317213962933741230678431429021134671036110183522933741220678741119201526165430561153987972933757266176671696671140293375215965104320337341525111140750100411295034571195819316329337617244103290977378328721766841461121138364710447293376722090809561153987972933777604250901883191826813293377312323009043143661071707152226222903401496667931425351036690717782689214690142962933781685284133120219187401757321690904621105568229337863622369879166236293379132237847103290770496116591401034123632933791880996320906669014145476811641534809882030779113729338028103623678106105566714713529014110327791901411441706901411021153429021575913521312933801174678111187561876771106396771742933811920678365794424496257413210157959058666090170879157029338116102751177142611276032115111135612151416534214029338212109125173209065901404115066512933826261161662361082002933838228322164717110586034562933831359651051908107905186684181131701265293384102564675090511411038539667302933842772946355349433866124149030890156316660905327915110211925596660905329229338521666411507222366956347430120465157511571474549061254143129338513133106432327110471929081722184112957293386252263511419102931019492887439214913597779132119154433245436445372933861328066110750519954076166261102177729338719388324652547710690529671624545078714546113977629338719314320501106651837387370665407617110123810329027713029338813168634702132101437423901379083647047293388858852321902643219078229338914105832465254717141479130090463412113229338917350374690666090904714290371032901824914729339016102960529866124443921302079041211588671442933901381773757365890876715266414307797293391151621769362837509051155450454130139521557729339120162176442750905128290661403197542138513215112711212933921994845676831375987971038539904115032012872681101302933922740190904728211487393216687493231018756540965590122555596660902141921372933931263631511407552804891503473806655293393121091251156212412496113745351712933946394102985780664929339418220120837906296902094734609413159016019417035702933951359651041813152279808962319080413565629339514232901390822241425887111181131701522933969213102142101151987918711293396232869047051667754621385132151127112134112590863133641265887121293397772992540477816190502933976275177110401202131293398172322041609669528881490613128189901935611539879729339815103178425134671036101521385452593414147729339955222471162997912933991612949047164732471989692141108138469651131293400121812111778323663134783112908729340023129490471662326211952465371080311449714790747804634141451772934011317214166226377431866103853973090536962934011230678431429021134671036110183522934021415032052665135320829032112033881662934027266176671696671140293403222663176632658313066226452769010327100511429087905369629340317244103290977378328721766841461121138364710447293404152067836106458372365710841329655710472934047604250901883191826813293405165864570223341991519535820668116190229782293405168528413312021918740175732169090462110556822934066206226963507433472934061322378471032907704961165914010341236329340715366661731621568990142110592249154522177729340728103623678106105566714713529014110327791901411441706901411021153429021575913521312934081742155698901011971141722772366110691130971962934081920678365794424496257413210157959058666090170879157029340992491406657143194141207972934091210912517320906590140411506651303410171293410822832216471711058603456303411227714322934111025646750905114110385396673030341281158107776905110326590293412216664115072223669563474301204651575115714745490612541431303413122232987727696132902726517087290293413252263511419102931019492887439214913597779132119154433245436445373034148289125173219035066342293414193883246525477106905296716245450787145461139776303415112063114272110685667203166802934151316863470213210143742390137908364704730341610116745837120519655901107206293416141058324652547171414791300904634121132303417223872471431429073157150401413210847103853966730412369071777293417161029605298661244439213020790412115886714430341832103623678106105566711214963354653228172132810327151111353057817790791178711101247103290287772934181516217693628375090511554504541301395215577303419135488846641472951108797911787154029341919948456768313759879710385399041150320128726811013030342087294654099540761176629342012636315114075528048915034738066553034215370102167546622934216394102985780664930342293615788446157690758076293422135965104181315227980896231908041356563034235846766167546622934239213102142101151987918711303424927610119012556115398791122293424772992540477816190503034251111048049014783714746573530779148293425172322041609669528881490613128189901935611539879730342665567455668662012934265522247116299791303427815617438710385399083412934271218121117783236631347831129087303428141259776452761032444990481819481904981329342813172141662263774318661038539730905369630342911140650249170254060390790514179629342914150320526651353208290321120338816630343020766176442750905125955122109475671925190907305141796293430222663176632658313066226452769010327100511429087905369630343113261442750905115460111181038539730417962934311520678361064583723657108413296557104730343214236176442750905191590147629310319141796293432165864570223341991519535820668116190229782303433212661764427509051452761032711851142901031266873332804179629343362062269635074334730343416125949170210329085135702540248103814254651417962934341536666173162156899014211059224915452217773034358607355010385399090412934351742155698901011971141722772366110691130971963034361810912517103853990142601411156217995407611774117293436924914066571431941412079730343727266176443250770251117011827795571418419053190162490419090352519057190100230343742893296610230343816401907547668319029170140121268977791473323034381713034392220631142721106181957506676044631116142289441666891491243422130343922771432303440965190483371571645184616230344081158107776905110326590303441113448943175038184109387791903034411222329877276961329027265170872903034421858624913539070225395847702540461622478110001421007083034428289125173219035066342303443659622699750743347303443112063114272110685667203166803034441058677843500911511551394130344410116745837120519655901107206303445152254570270544438553757829525314285270830344522387247143142907315715040141321084710385396673041236907177730344615162176442750905132032112033881665121777303446321036236781061055667112149633546532281721328103271511113530578177907911787111012471032902877730344716245457366142808208107501335921711334370148130344713548884664147295110879791178715403034482210774514766146703390851476612421811114278902482039085147303448872946540995407611766303449225861115171263209079090190905919035985405205403675407907416630344953701021675466230345015339175147741872895142254824324723390176110530345093615788446157690758076303451146207667113290791178711101238103290277130303451584676616754662303452162307666690352443156421511329018112434221303452927610119012556115398791122303453911534613014096305195300903034531111048049014783714746573530779148303454113922031569159056115398791603034546556745566866201303455179761969159018452481616496539091694325030051417963034558156174387103853990834130345618227340161109772517919072249614519141291152903421403034561412597764527610324449904818194819049813303457281028457028290321907947826669081314169016112432111014290166721190250300741663034571114065024917025406039079051417963034581022213790155975113290785730345820766176442750905125955122109475671925190907305141796303459193143205011017487987505145276103238110666487024112313034591326144275090511546011118103853973041796303460936681909674112922193429630346014236176442750905191590147629310319141796303461113064370211616157037487570311513034612126617644275090514527610327118511429010312668733328041796303462142261254651069032570511306120151124514730346216125949170210329085135702540248103814254651417963034632434518117321417403239511117690103540111950769010354095090790741663034638607355010385399090413034641217278770136121053941370210167546623034641810912517103853990142601411156217995407611774117303465205963151016660356786603564166423909721341391714147911373034652726617644325077025111701182779557141841905319016249041909035251905719010023034669998453714559777912103184630346616401907547668319029170140121268977791473323034671913732491513077912261845896570509038270690171105314030346722206311427211061819575066760446311161422894416668914912434221303468820631791138110669177030346896519048337157164518461623034691022231791122037108668051373303469113448943175038184109387791903134701713034701858624913539070225395847702540461622478110001421007083134714109454412450303471659622699750743347313472327825919303472105867784350091151155139413134739222458395164478157216791303473152254570270544438553757829525314285270831347482454573247901911067303474151621764427509051320321120338816651217773134751810577375671917221401212661021208705534192090142963034751624545736614280820810750133592171133437014813134761681775587307766907118670717234646311584070830347622107745147661467033908514766124218111142789024820390851473134778201454755611539879151303477225861115171263209079090190905919035985405205403675407907416631347881091251710966809669530347815339175147741872895142254824324723390176110531347927270165090965845114290145125090965086245451277103290147662114121253973030347914620766711329079117871110123810329027713031348014102861901058326590791730742347667307063034801623076666903524431564215113290181124342213134811862106066131300962255301725309665521511042214621403034819115346130140963051953009031348215102010005515168920316211985178822113170730348211392203156915905611539879160313483173714110740521511719021261110624648358193163303483179761969159018452481616496539091694325030051417963134842959651043203373415404154901024793979690153525111140750100411292051110345730348418227340161109772517919072249614519141291152903421403134852581212966516684111032907539907895905508349015671420515762113034852810284570282903219079478266690813141690161124321110142901667211902503007416631348618278117907505111441110299341120624292471571416211303486102221379015597511329078573134871688610715020316651249103290740371716247603730348719314320501101748798750514527610323811066648702411231313488112895265292715151690260737090201303488936681909674112922193429631348930300423371937140121266904890142967311111651701069103290475399041908606651607713034891130643702116161570374875703115131349021371773411354017143651156441522321386688414807514070830349014226125465106903257051130612015112451473134911527817866476473145811841581766411914096303491243451811732141740323951111769010354011195076901035409509079074166313492153311103150665114743237358923059511130096303492121727877013612105394137021016754662313493719407734111045401716053034932059631510166603567866035641664239097213413917141479113731349415206317663265831306622610385397309053696303494999845371455977791210318463134951093109111665110385399041653034951913732491513077912261845896570509038270690171105314031349621789466516649153441211137819059247172508901032909242303496820631791138110669177031349711302180665124210326323779041303497102223179112203710866805137331349825812596436657150344122350377431866101902875528790101496651600713134984289329661023134991626314111665773659014041571391166537503134991713135001952629380442750905141790310665622419061316151600713135004109454412450313501223061201503246525476342152334199151953582066811011491355708313501327825919313502311437681320379655171011110866805132146120111186374512041303157914262508142171131350292224583951644781572167913135032781215066518461001131906144710054827421906144728190411561541103167140129665131350382454573247901911067323504171313504181057737567191722140121266102120870553419209014296323505823220290952123145449731350516817755873077669071186707172346463115840708323506184751751529096090447411471380222901391132687202413135068201454755611539879151323507241776112460374690659090416011104775405246590108471038539730741663135078109125171096680966953235081753081115111350715690462835401032411429027221631350827270165090965845114290145125090965086245451277103290147662114121253973032350962891253521043141750313509141028619010583265907917307423476673070632351010699019373013735320501197413135101862106066131300962255301725309665521511042214621403235118105519012690145103540313511151020100055151689203162119851788221131707323512149764117113733120190109219909573672540313512173714110740521511719021261110624648358193163323513143572471434532217301205310329091170314431351329596510432033734154041549010247939796901535251111407501004112920511103457323514117292624154062567414779055713031351425812129665166841110329075399078959055083490156714205157621132351516252521301904052273442532471243211373707016104231351518278117907505111441110299341120624292471571416211323516161741488990981521001671081061619050492361423135161688610715020316651249103290740371716247603732351714596510436657738192315270611614156043893313517112895265292715151690260737090201323518157483151247548368807892770279146510692313518303004233719371401212669048901429673111116517010691032904753990419086066516077132351911296403871266872471409451201068943135192137177341135401714365115644152232138668841480751407083235201320678432113130590756914119054011131352015278178664764731458118415817664119140963235218532312427111013771171313521153311103150665114743237358923059511130096323522122067843888845415556115398791423135227194077341110454017160532352321117875107412827738137514696929682051213912821732477914831352315206317663265831306622610385397309053696323524933917525480460968049099131352410931091116651103853990416532352513686374905212610715402074149201309719631352521789466516649153441211137819059247172508901032909242323526143129219165146902559047011145411646214031352611302180665124210326323779041323527102224658429971294755613516031352725812596436657150344122350377431866101902875528790101496651600713235281111769578131187561072101122251313528162631411166577365901404157139116653750323529182361124427509051216904063879017790107607519773135291952629380442750905141790310665622419061316151600713235301735811224220795451278793324110324182216522177731353022306120150324652547634215233419915195358206681101149135570832353172555105151970645020831353131143768132037965517101111086680513214612011118637451204130315791426250814217113235321112164537147307791210315195613031353227812150665184610011319061447100548274219061447281904115615411031671401296651323533516469615571651151323533428932966102333534147915171665136839247937665019317113235341713335351281359643716651222906134414793235358232202909521231454497333536667681166611046232353618475175152909609044741147138022290139113268720241333537281332917139146721551967901241561034750714515628278103479490192902636610341323537241776112460374690659090416011104775405246590108471038539730741663335382825912876677198914411067105113162170106153959079859547701316612417011891263235381753081115111350715690462835401032411429027221633353929316454907507139711841587513234622790664239087447917281494922923690229479332353962891253521043141750333540171941652135135829053156122265649611669615390135270732354010699019373013735320501197413335418827744218123912028613132354181055190126901451035403335422230359643667761270702191554226347470117066165928987911711323542149764117113733120190109219909573672540333543161038681412293169143832514087071501719624690807013235431435724714345322173012053103290911703144333544631976872234431063235441172926241540625674147790557130333545131407323076613141104018390797358146707323545162525213019040522734425324712432113737070161042333546264823228051283154728146951202931353901227361901813171236111351055317073235461617414889909815210016710810616190504923614233354714281328939474435661075403179015510344232354714596510436657738192315270611614156043893333548131476679772391023113290668778140323548157483151247548368807892770279146510692333549151713296631708561747790920515122708013032354911296403871266872471409451201068943335502435137476660907573372536220677762206516690270741701901303235501320678432113130590756914119054011133355114171329446737927573323815030766150104323551853231242711101377117133355235281661107507718766100113706784111031417148256717707782477901151320761176610611216656717147821703143235521220678438888454155561153987914233355323171325384115078421241201573059063963627504115772470501363235532111787510741282773813751469692968205121391282173247791483335541773166926832936621971120123726629690907113432355493391752548046096804909913335551854710332574730766200307661314170613850223211773235551368637490521261071540207414920130971963335561844743471560901416591090215115668741201234227903235561431292191651469025590470111454116462140333557162591287716651155418731151362788241286666032355710222465842997129475561351603335581695117667756222766116811987019573077916621032355811117695781311875610721011222513335591639172398639130318390886246904543690115779194323559182361124427509051216904063879017790107607519773335601331532050110667743170100812926610467733235601735811224220795451278793324110324182216522177733356116842703455816414799655654520516813093171132356172555105151970645020833356214102120516061975661318372423076665452057323562111216453714730779121031519561303335631728166110750771010804369611073961604119093121113235635164696155716511513335641427130836532700210462130546307651605609633356442893296610233356520397137186104013790741209169192011196151152903354093121113335651479151716651368392479376650193171133356625625290443362941807476622492307661366446715719778856056553748890356333566128135964371665122290613441479333567148131307166511106641290488904504197733356766768116661104623335683010212111325756675135973166101814273341086579238107273114091068731390633292989648574233608261513335682813329171391467215519679012415610347507145156282781034794901929026366103413335692410386283018430766170962869084675865124230766910702141371667147333569282591287667719891441106710511316217010615395907985954770131661241701189126333570482276624177216145907702141189021122711086316093216962191015113065110972142131661664121090109666507361301211155671156616177053670733357029316454907507139711841587513234622790664239087447917281494922923690229479333357122351305662417713290637791906611535661080131211909311071413335711719416521351358290531561222656496116696153901352707333572138168116663214966379776669210987913335728827744218123912028613133357317151320526677153104766296106294901349271413335732230359643667761270702191554226347470117066165928987911711333574873192166928987911711333574161038681412293169143832514087071501719624690807013335753138227873335756319768722344310633357613259229772874114029090351217014074111333576131407323076613141104018390797358146707333577827120575811312015686333357726482322805128315472814695120293135390122736190181317123611135105531707333578896754931136252931711333578142813289394744356610754031790155103442333579630127175866419233357913147667977239102311329066877814033358082339116690755322750833358015171329663170856174779092051512270801303335811267681166611046274780368392479373335812435137476660907573372536220677762206516690270741701901303335822384270335651936799016590121561511329064054056851870298791171133358214171329446737927573323815030766150104333583622591287667721113086911474904763901551131411911042276090507265545193206511221964135114125313025947210524596514595314591304591306692811304904726581147238501205293171133358335281661107507718766100113706784111031417148256717707782477901151320761176610611216656717147821703143335843589151667719890411507210586643107675371867005165750130621115071301813967119061428145711906133335842317132538411507842124120157305906396362750411577247050136333585253133205011066771304904132173964218905743651377690152504831333585177316692683293662197112012372662969090711343335867010216612471790518819023485513766296111351907147199228215790142179023351259270813990498317215057893726717905155267137103855978272252470210657121112101204190766513293418104131987911711333586185471033257473076620030766131417061385022321177333587111513205271661311091732141351333587184474347156090141659109021511566874120123422790333588303203205011071665166567157490413717637106364377136437713371193769901656231333588162591287716651155418731151362788241286666033358914541143115127987911711931101865126651333589169511766775622276611681198701957307791662103335901410677475818439690661953076677279151333590163917239863913031839088624690454369011577919433359112103548459486184490411212574227772797333591133153205011066774317010081292661046773333592222591287667777611141051657501039016512422712747968130931711333592168427034558164147996556545205168130931711333593191713296296315404713601409041610401839079735846570903335931410212051606197566131837242307666545205733359469415431308687102256333594172816611075077101080436961107396160411909312111333595124476614540786132906377919066115333595142713083653270021046213054630765160560963335961531347616713024447661241469213016712014212133359620397137186104013790741209169192011196151152903354093121113335977341758139215066513335972562529044336294180747662249230766136644671571977885605655374889035633359883513747733189669533359814813130716651110664129048890450419773335991232813766131491112022829065532563335993010212111325756675135973166101814273341086579238107273114091068731390633292989648574233608261513336008134968290516131522531443336002410386283018430766170962869084675865124230766910702141371667147333601823315120280490101044625333360148227662417721614590770214118902112271108631609321696219101511306511097214213166166412109010966650736130121115567115661617705367073336021725661247713881662881167088114833198791171133360222351305662417713290637791906611535661080131211909311071413336039791371496650898791171133360313816811666321496637977666921098791333604141021948818430766899681890129620290138333604171513205266771531047662961062949013492714133360518459777156193909653714451143731038539110128112152333605873192166928987911711333606152591287667757422711066424998657709362668123336063138227873436071784310917837908341103290475399041357416583333607132592297728741140290903512170140741113436081813172891796283471429097479681347103290434115033360882712057581131201568633436093210242390322233775090129137103290375399090567112589311043141951218421301678623130779113733360989675493113625293171134361010270313132575675611539879160333610630127175866419234361111812109077375671814639013779733361182339116690755322750834361216931253004135139112229061887411714147912263336121267681166611046274780368392479373436131621730120111187505877021322331101443530779113733361323842703356519367990165901215615113290640540568518702987911711343614161178988049083916231791325874172366110691333614622591287667721113086911474904763901551131411911042276090507265545193206511221964135114125313025947210524596514595314591304591306692811304904726581147238501205293171134361529102768046750905114290161155219710324779035151103814290755477062414121715133361535891516677198904115072105866431076753718670051657501306211150713018139671190614281457119061334361613573588256115193611911912146214033361625313320501106677130490413217396421890574365137769015250483134361712302596436113015429590310146414151333617701021661247179051881902348551376629611135190714719922821579014217902335125927081399049831721505789372671790515526713710385597827225247021065712111210120419076651329341810413198791171134361827371773908552921201351017962077532962150908496340130351485052275051016249227333618111513205271661311091732141351343619195578790176521213114867231663140987261903214135206333619303203205011071665166567157490413717637106364377136437713371193769901656231343620271368049053941104320678365184862800151556451103212324511107941477115961151333620145411431151279879117119311018651266513436212012862082641355342623079057377110120504162159093711343336211410677475818439690661953076677279151343622161702649032653764951111751351013834110015542211583336221210354845948618449041121257422777279734362383373271413074311675033362322259128766777761114105165750103901651242271274796813093171134362417151598196277301963611111310962744413416810716033362419171329629631540471360140904161040183907973584657090343625195262938044275090511875024952427923698339362772532183336256941543130868710225634362610227903913256495510315519414033362612447661454078613290637791906611534362721998320501102283209096111308391069022032150901553571473336271531347616713024447661241469213016712014212134362826111590135354752090136754710329037539909056711563166609055779182130333628734175813921506651343629222631411713913826213174213818312015770241835751120321294876003733362983513747733189669534363017102861907191407275866130103853990377901303336301232813766131491112022829065532563436319596111141372951115473113033363181349682905161315225314434363211181520171411134985402531131231303336328233151202804901010446253343633121091256611325153175797912671303336331725661247713881662881167088114833198791171134363412206311427211069675131711063236247333634979137149665089879117113436357255510511117064502083336351410219488184307668996818901296202901383436361010603713612517173156125901303336361845977715619390965371445114373103853911012811215234363732196101491676908201418791146167872419172832471242881058701610422962743373827081468030779113733363715259128766775742271106642499865770936266812343638153435103274701765012020910914188206907911313436384289329661023436393420678413276353077912229010931608042087113127461351596835051748701293101260326908201418791137343639178431091783790834110329047539904135741658334364014357773143527321313296090315903424734364018131728917962834714290974796813471032904341150343641887410847497972110814434364132102423903222337750901291371032903753990905671125893110431419512184213016786231307791137343642132063114272110632032112033881212511303436421027031313257567561153987916034364323147171290511474398121751471301469190321271757624431023713847343643118121090773756718146390137797343644911048049067181463901967973436441693125300413513911222906188741171414791226343645203998101772591320906714735320829032112033881212511303436451621730120111187505877021322331101443530779113734364610142787253166146540124563623436461611789880490839162317913258741723661106913436471319247766841427832105909745114113834364729102768046750905114290161155219710324779035151103814290755477062414121715134364818117885104412827738139778201921001372019029321003116734364813573588256115193611911912146214034364934102268327065159711683077911377301013270641144708671111164512242333270641138463463155840708343649123025964361130154295903101464141513436501196090152863424733642290507473436502737177390855292120135101796207753296215090849634013035148505227505101624922734365114280711903008095074161110394717790791728343651195578790176521213114867231663140987261903214135206343652243187732462909603211515890163411107540301600655535126103192130343652271368049053941104320678365184862800151556451103212324511107941477115961151343653173193205011017661103221451909120490551411303436532012862082641355342623079057377110120504162159093711343436547104914114189021251130343654161702649032653764951111751351013834110015542211583436558944773264713914130343655833732714130743116750343656163121805621241341238205720011083117212605113034365617151598196277301963611111310962744413416810716034365710312111901314486111164701610423436571952629380442750905118750249524279236983393627725321834365898611190788756779214434365810227903913256495510315519414034365910861119010459521329073071103436592199832050110228320909611130839106902203215090155357147343660152523209078961329042918061771416810754343660261115901353547520901367547103290375399090567115631666090557791821303536612431432050110665132141761903127910376006747291137104103853929065833436612226314117139138262131742138183120157702418357511203212948760037353662191091251781903533011113047361601112539017166498413436621710286190719140727586613010385399037790130353663225621411132363110381429037766121073190351706656092814217113436639596111141372951115473113035366411278673664715290290112218475857343664111815201714111349854025311312313035366515143768132037965517101111086680511421711343665121091256611325153175797912671303536661337110290123229092811792809040151343666122063114272110696751317110632362473536671323221013257556115398797318773753077913436677255510511117064502083536682527643150665166915521011071113219035321908406613111928614576356717134366810106037136125171731561259013035366917587770452761032716045036412967211902502917417234366932196101491676908201418791146167872419172832471242881058701610422962743373827081468030779113735367024218116726631877375512326797365160177521211744612411314511322471903436701534351032747017650120209109141882069079113135367134280661107505142390323159025037350903204714732127037561904784719163540144905406039079072343671342067841327635307791222901093160804208711312746135159683505174870129310126032690820141879113735367228976196915901839847951616165545317252207950750968787125081071681772706292486473436721435777314352732131329609031590342473536732835990156416590530797121352626679015064223503774318661019028755287901014934367388741084749797211081443536741881257092375823661876290474411774214518731525513436741320631142721106320321120338812125113035367511931091117266414224911421711343675231471712905114743981217514713014691903212717576244310237138473536766217324177773115134367691104804906718146390196797353677596661107504734367720399810177259132090671473532082903211203388121251130353678343716647225447172437961571551045247966791135092312701714232095883184416754745781121321960737343678101427872531661465401245636235367943391524864734367913192477668414278321059097451141138353680428737140237343680181178851044128277381397782019210013720190293210031167353681444537961373436813410226832706515971168307791137730101327064114470867111116451224233327064113846346315584070835368216339909021245147321901806651479376148647343682119609015286342473364229050747353683496032451513436831428071190300809507416111039471779079172835368412960966313246905796751314136252343684243187732462909603211515890163411107540301600655535126103192130353685133314622484963354591779079172218475857343685173193205011017661103221451909120490551411303536867280711903077911701540343686710491411418902125113035368722701221941150254812116796941151114179355114290886651600713436878944773264713914130353688171286946651182829066920927709311501995014296343688163121805621241341238205720011083117212605113035368916608806092691722614038124415715566423496791513436891031211190131448611116470161042353690852612865691590822551813436909861119078875677921443536911630284284665129627123513911454906176747343691108611190104595213290730711035369221263941117506675312441631416341412259712151289024179145475854034369215252320907896132904291806177141681075435369313418961447970790268909610470612445435369342893296610235369411526131625351961217087416583144353694243143205011066513214176190312791037600674729113710410385392906583353695141038961613714296161319159021720590741353695191091251781903533011113047361601112539017166498413536961830650707707799016577037543155920319825175307797353696225621411132363110381429037766121073190351706656092814217113536972535090109112189399180132090951330414207719071741121013019085525396965513536971127867366471529029011221847585735369810331110315056103853910121416651353698151437681320379655171011110866805114217113536992486232345392313754132247124345392313730519530017010329072116374111353699133711029012322909281179280904015135370033140732873917105884513295462110125424507415399052075411032907377422676660905307915916521303537001323221013257556115398797318773753077913537011912878971568190139016751439964445110385391306651353701252764315066516691552101107111321903532190840661311192861457635671713537021933732574196059151112239020166960599014712682143537021758777045276103271604503641296721190250291741723537032645566540407864476654040716012851032121611543321112911283711126610329068535370324218116726631877375512326797365160177521211744612411314511322471903537043031515171561032903753990320901256671471111353058417790791178711101247103290287773537043428066110750514239032315902503735090320471473212703756190478471916354014490540603907907235370525303847166131791478215034418611061290111111062041894314266131742353705289761969159018398479516161655453172522079507509687871250810716817727062924864736370617035370628359901564165905307971213526266790150642235037743186610190287552879010149363707210938835370718812570923758236618762904744117742145187315255136370834211207135370811931091117266414224911421711363709365030011035370962173241777731151363710328912549735371059666110750473637117116712555951411471380353711343716647225447172437961571551045247966791135092312701714232095883184416754745781121321960737363712816231125766110167108134353712433915248647363713102441258834195106326790154523537134287371402373637141235831125148765755966570629016035371444453796137363715816231139570411397155833537151633990902124514732190180665147937614864736371612270210132758710453299169514739013509235371649603245151363717141028290165320567531514147848778108523537171296096631324690579675131413625236371884172070134610257175100935371813331462248496335459177907917221847585736371911386101522181033215854611863427013537197280711903077911701540363720151178324915132090329884762150232491411383537202270122194115025481211679694115111417935511429088665160071363721641610152150253138353721171286946651182829066920927709311501995014296363722513310643216147353722166088060926917226140381244157155664234967915136372312817739125643386270906267052138353723852612865691590822551813637249436146491321360611702801383537241630284284665129627123513911454906176747363725114214801461113115023314020190203537252126394111750667531244163141634141225971215128902417914547585403637267505512051613190480353726134189614479707902689096104706124454363727872952349741773140473537271152613162535196121708741658314436372815916373218961301450311002329264514165901702353728141038961613714296161319159021720590741363729510286112070261353729183065070770779901657703754315592031982517530779736373043072644916135373025350901091121893991801320909513304142077190717411210130190855253969655136373182061564401113189635140353731103311103150561038539101214166513637327391901692124012804335373224862323453923137541322471243453923137305195300170103290721163741113637331318771471429057908190151110139473537333314073287391710588451329546211012542450741539905207541103290737742267666090530791591652130363734870145782241133247151353734191287897156819013901675143996444511038539130665136373512548778322969046641108110273113537351933732574196059151112239020166960599014712682143637361133931869638790177107602177135373626455665404078644766540407160128510321216115433211129112837111266103290685363737611049512371505735373730315151715610329037539903209012566714711113530584177907911787111012471032902877736373810117175119686186486103275223537382530384716613179147821503441861106129011111106204189431426613174236373910167909634013069090454961603637394289329661023637408586112705454774590983637401703637411320631872369610328528156497307411213637412109388363742910664578228795740101752236374234211207136374381811257147503683061343736374336503001103637447185380754181283603773637443289125497363745151361309056287163101373716245136107243131363745711671255595141147138036374684351619013551295275223637468162311257661101671081343637476288415759075787363747102441258834195106326790154523637489916453775900111139535157363748123583112514876575596657062901603637496684151891253323637498162311395704113971558336375011704190770478562415087514070836375012270210132758710453299169514739013509236375111117012678322474129016908564736375114102829016532056753151414784877810852363752241028619032491511256632136901709882030779113166367812387514070836375284172070134610257175100936375372555105111170645020836375311386101522181033215854611863427013637548796511746241133212164136375415117832491513209032988476215023249141138363755733981413751161511136375564161015215025313836375610206247415409045782327907363637565133106432161473637571341720032980417063959062390971113836375712817739125643386270906267052138363758101104951234578224113324715136375894361464913213606117028013836375911596510413246637321190137031167363759114214801461113115023314020190203637607162133090878910251363760750551205161319048036376175262631109619069453637618729523497417731404736376261404181111967536376215916373218961301450311002329264514165901702363763525820290137131363763510286112070261363764437017874623637644307264491613637651410280905640148331514562111018071363765820615644011131896351403637665650300706143573637667391901692124012804336376786564831517313615083114036376713187714714290579081901511101394736376855365104419871036376887014578224113324715136376957565104387133363769125487783229690466411081102731136377011148784327971570547138110109087363770113393186963879017710760217713637719358141331650176110190361423637716110495123715057363772103393785154812155611082636142363772101171751196861864861032752236377372661127619018536596363773101679096340130690904549616036377412102357920321151351072476011964736377485861127054547745909836377583921101671241971909903637751320631872369610328528156497307411213637761214736125163765408175781522177736377691066457822879574010175223637776117102273176758233637778181125714750368306134373637786586112549241968136377871853807541812836037736377974061754166609017143637791513613090562871631013737162451361072431313637807110457755138561531363780843516190135512952752236378192164732641190521819511136378162884157590757873637821110274011782144907865219321077363782991645377590011113953515736378311290211042389013173512657181100836378366841518912533236378410150730521724537358741441303637841170419077047856241508751407083637851156695491782252163253490901037413637851111701267832247412901690856473637861418176217426157405111030710385397307411073637862410286190324915112566321369017098820307791131663678123875140708363787101667035146513212067022469236378772555105111170645020836378887295232050496217412013637888796511746241133212164137378921716093637897339814137511615111373790221172336379010206247415409045782327907363737912921953363791134172003298041706395906239097111383737923499651363792101104951234578224113324715137379376722081084710385392023637931159651041324663732119013703116737379468074961426852363794716213309087891025137379552453705090995363795752626311096190694537379695650909521421024123631363796614041811119675373797499773812193637975258202901371313737987603308558725689903236379843701787462373799124069908265278190417313054610663637991410280905640148331514562111018071373800393247532363800565030070614357373801498631927708363801865648315173136150831140373802413861620870836380255365104419871037380361022683270651144363803575651043871333738047704531018604774917033638041114878432797157054713811010908737380521246836380593581413316501761101903614237380648614971601303638061033937851548121556110826361423738077121645782242151517236380772661127619018536596373808695567069711144363808121023579203211513510724760119647373809711787510741231567063638098392110167124197190990373810714278476997779151636381012147361251637654081757815221777373811792300411416660903638116117102273176758233738123202962373638126586112549241968137381347973190413638137406175416660901714373814468687453236381471104577551385615313738155567872110917139363815921647326411905218195111373816614112090851011113836381611102740117821449078652193210773738175196483703213836381711290211042389013173512657181100837381810107014751032150901708171473638181015073052172453735874144130373819689752253136161188363819115669549178225216325349090103741373820410677152120836382014181762174261574051110307103853973074110737382151016804907661763638211016670351465132120670224692373822437623077052363822872952320504962174120137382310748663236317514070278963738234289329661023738246149601487657622083738242171609373825542120014114323738252211723373826411280484711137382629219533738276596510413246647373827349965137382848516677323738287672208108471038539202373829418630775673738296807496142685237383033565111237383052453705090995373831320145490373831956509095214210241236313738323633460110373832499773812193738335170908315510037383376033085587256899032373834362373582337383412406990826527819041731305461066373835720312645371036963137383539324753237383641303207921753738364986319277083738373166812126373837413861620870837383855678721109172133738386102268327065114437383973604071611351411313738397704531018604774917033738404325120721463738402124683738417190531018604774917033738414861497160130373842420549135131373842712164578224215151723738435927790286190373843695567069711144373844569442451466131373844711787510741231567063738456113990500212165733738457142784769977791516373846351210812237384679230041141666090373847687410847788973237384732029623737384851051124417065137384847973190413738494228260706600373849468687453237385061845084188810751373850556787211091713937385141091535160523738516141120908510111138373852692121901203508573738525196483703213837385344112767611537385310107014751032150901708171473738546989621796137176373854689752253136161188373855798903391167551540373855410677152120837385659271358515403738565101680490766176373857489159118963738574376230770523738584341747110125373858107486632363175140702789637385951287211778301403738596149601487657622083738604105013534214037386054212001411432373861510811787111012313738614112804847111373862485166773237386265965104132466473738635142270641071403738634851667732373864510512539047125373864418630775673738654194451315160373865335651112373866489290115677373866320145490373867523290641101313738673633460110373868424970770523738685170908315510037386942271289056373869362373582337387038921352540373870720312645371036963137387142897859057373871413032079217537387251401342071470137387231668121263738736532742157481317013738735567872110917213373874567066604111237387473604071611351411313738754232204101012137387543251207214637387641309011551230373876719053101860477491703373877321061211373877420549135131373878330612552337387859277902861903738796507322114814112813738795694424514661313738804615319041373880611399050021216573373881414310031551281373881351210812237388231534622037388268741084778897323738834914415331313738835105112441706513738844596477907237388442282607066003738857929022211435601383738856184508418881075137388652622793572933738864109153516052373887613921241708611373738876921219012035085737388852209040720237388844112767611537388938810736383738896989621796137176373890283849066311515276464118140311131610742123173161162902116162111311711151032151373890798903391167551540373891412544113215137389159271358515403738924259115112737389248915911896373893724970770522485941043738934341747110125373894513374417065137389451287211778301403738953102071215637389541050135342140373896489290115677373896510811787111012313738973259110131373897485166773237389832497077037389851422706410714037389942271289056373899510512539047125373900522090631725643739004194451315160373901101022259771581356961701161152803739014892901156773739025268116110141140373902523290641101313739035105125390198166373903424970770523739044112445158442373904422712890563739053593454514373905389213525403739063681331122373906428978590573739074892901566773739075140134207147013739084268116110131373908653274215748131701373909424970770523739095670666041112373910422712890973739104232204101012137391144211201025737391141309011551230373912595632181131701373912321061211373913582211913621035313739133306125523373914512874208262663739146507322114814112813739153113417681337391546153190413739164851667732373916414310031551281373917489290115677373917315346220373918413131110131373918491441533131373919424970770523739194596477907237392042271289056373920792902221143560138373921442112046573739215262279357293373922417447119701373922613921241708611373739234129490873237392352209040720237392438922955403739243881073638373925420015572611737392528384906631151527646411814031113161074212317316116290211616211131171115103215137392636561121093739264125441132151373927442112012657373927425911511273739285435161411037013739287249707705224859410437392949439015118637392951337441706513739304120174456563739303102071215637393152019071561473739314892901156773739326638564166905623739323259110131373933421017314888373933324970770373934517990508115510373934422712890563739356877111564135337393552209063172564373936468416861783739361010222597715813569617011611528037393751398148425310663739375268116110141140373938636651553137781413739385105125390198166373939523214690963237393941124451584423739404809102664037394035934545143739414143110484190373941368133112237394245241109041373942489290156677373943213761123739434268116110131373944410215090413739444249707705237394552555105148548837394542271289097373946101134968954014011389686711637394644211201025737394742361116612137394759563218113170137394848516677323739485822119136210353137394935324719137394951287420826266373950459311549141373950311341768133739515921211190323739514851667732373952618618135329147373952489290115677373953325813858373953413131110131373954319713858373954424970770523739553232785737395542271289056373956612890921175513637395644211204657373957485166771013739574174471197013739584206226738737395841294908732373959542115854156214037395938922955403739603473759637396042001557261173739614112075108573739613656112109373962468418165516373962442112012657373963335822634437396354351614110370137396426299073739644943901511863739656108110115151687782373965412017445656373966468418165442373966520190715614737396733582262993739676638564166905623739686236111113202222121373968421017314888373969342111013737396951799050811551037397042322026589373970687711156413533839714951710388903739714684168617838397265078290307791323739725139814842531066383973101816843714235090177901076037397363665155313778141383974107232697063881371359905951883739745232146909632383975876350706512037721043739754809102664038397612215350706514961103063485113510219637397641431104841903839771011323270651837106907082214137397745241109041383978157738237132930903209045321139095111589373978213761123839797451252222536681694137397941021509041383980109790827108471038539907541373980525551051485488383981650909810641573739811011349689540140113896867116383982844370641281641461771122373982423611166121383983750676710845152556373983485166773238398471731883217223250513739843532471913839851018790364124113325211604737398545931154914138398681025613216081103253144373986592121119032383987111056467012112792720241110293373987618618135329147383988763941313011567911523739883258138583839895103550559256373989319713858383990664320610447395365373990323278573839917282673701761534224137399161289092117551363839922333177416771837141113149872110923101278110803113813523721110641701373992485166771013839931564390143197211241284612859253035611706513739934206226738738399432602928062071821536922195645411765611539879132872110917105268190731571294154399990134131373994542115854156214038399594312415717535577503514113739953473759638399631102561174331877375661021208967915166102120940528723714114262149103290725174522111373996411207510857383997162829030782012630779195075043108471038142781473739974684181655163839981333563115341103290295561153987911534137399833582263443839999674313664172532636114442337399926299073840007105610716019151703740006108110115151687782384001649653413115107070137400146841816544238400211471007418212920120841104136121137400233582262993840036259199109269110216374003623611111320222212138400495454068295110198191531140374004342111013738400515454517186904310723191401340128120213137400542322026589384006894518811248613249359913840064289329661023840074110363504173840074951710388903840084207904508673840086507829030779132384009771121212172211377063840091018168437142350901779010760384010643124157175355738401010723269706388137135990595188384011117791444011606120765701191279273840118763507065120377210438401265092071530706255102138401212215350706514961103063485113510219638401310677793691253155621413570384013101132327065183710690708221413840141410561071602946952958377108323013613063840141577382371329309032090453211390951115893840158331564719417625912892738401574512522225366816941384016523693072881752384016109790827108471038539907541384017584331012017510238401765090981064157384018884390561617071772129273840188443706412816414617711223840196431486605792070638401975067671084515255638402054375533124454384020717318832172232505138402175097351139614096530384021101879036412411332521160473840224604320792175384022810256132160811032531443840235102865364170638402311105646701211279272024111029338402471359035413887065138402476394131301156791152384025543530113057706384025510355055925638402648115219298384026664320610447395365384027411679893770638402772826737017615342241384028418355908073840282333177416771837141113149872110923101278110803113813523721110641701384029102821279647251311705888970638402915643901431972112412846128592530356117065138403011532152815954916225131491321383840303260292806207182153692219564541176561153987913287211091710526819073157129415439999013413138403111282909517749670681144902531383840319431241571753557750351411384032107339016971235260318141144384032311025611743318773756610212089679151661021209405287237141142621491032907251745221113840336325165140841871179738403316282903078201263077919507504310847103814278147384034628236113113875051384034133356311534110329029556115398791153413840351133750663236904799052921303840359674313664172532636114442338403671312125108471038539202384036710561071601915170384037410205311130384037649653413115107070138403831166125491384038114710074182129201208411041361211384039911967011421041409040714138403962591991092691102163840408102960529232413451384040954540682951101981915311403840419699050373161166222131701384041154545171869043107231914013401281202131384042912835257224909511364817823840428945188112486132493599138404341709513714738404341103635041738404463929077683103323840444207904508673840451519290470411083261130714675118041103111313840457711212121722113770638404610699011412519011909581052131384046643124157175355738404752531519688413138404711779144401160612076570119127927384048695564156013057384048650920715307062551021384049663856411291202131384049106777936912531556214135703840504128190151131384050141056107160294695295837710832301361306384051421753756413840518331564719417625912892738405241741142579131384052523693072881752384053485113597323840535843310120175102384054413714521913138405488439056161707177212927384055717413549213611098152384055643148660579207063840561066190524720490115152411303840565437553312445438405752619203211513840577509735113961409653038405846876586263840584604320792175394059610912566904544973840595102865364170639406010953576166157141454611395238406071359035413887065139406133301723119029316651117695454190107786651127664139932171415865901708797752956532384061543530113057706394062163375066111263214174081220411710516620636384062481152192983940632313121251132150642235037743186610111028724228711010123614110385397303840634116798937706394064368261411132363112135262667901031137190730769073150767908001860619390909422961035402419090790384064418355908073940653133111031505659651043212373262415408112132196073790101592757331112102037180106066131707513840651028212796472513117058889706394066342821029071171322910130107120870616510913290469071411209516564170254046103207751000193100708384066115321528159549162251314913213839406724674313309220631797206791486351302072532258379181586910162551119138406711282909517749670681144902531383940682271121224938010692142661007123967109012682026250898791771113038406810733901697123526031814114439406999535761667751641611303840696325165140841871179739407052613777816473840706282361131138750513940719102056773212570516826113038407111337506632369047990529213039407267435761776613038407271312125108471038539202394073191339421175032187569723686779195251130659075041164384073410205311130394074176377711827666967509608539628290960231907538407431166125491394075127758254375664167985114474637973840759119670114210414090407141394076136743457366557916712461816763679138407681029605292324134513940771028290901250532804951151081713840779699050373161166222131701394078201566672031668028881490613107128019290128075247508791100384078912835257224909511364817823940793167779607509051591185404116862854093115127878135401032901431955114290886651600713840794170951371473940802010286190676692090183236126207902561109119229966508171384080639290776831033239408134109035121668709632190729661975066920411898849054024796679143951070601749424553119876638408115192904704110832611307146751180411031113139408213538510418131091146187568047621520171384082106990114125190119095810521313940831063631518908045271779079172238408352531519688413139408412206783622383780996559064866927384084695564156013057394085111386175570509038270690171105314038408566385641129120213139408675661757971012102833523840864128190151131394087192063176632658357153735263131240877531952345716610023840874217537564139408845061024507138408841741142579131394089715862621241875611154038408948511359732394090154215569890101197012277286611072213097117038409041371452191313940918627456772002271474738409171741354921361109815239409282492175024712437741753840921066190524720490115152411303940931220678741121249811477416816566340384093526192032115139409415109035121668709665907937788110366101384094468765862639409512592710966610187090351216619963940954289329661023940963658346611566801306535615535255266710058025535100266266516660905304173213066226103853973090536963940966109125669045449739409710596226141615711101481461113039409710953576166157141454611395239409881907731155463277342690394098333017231190293166511176954541901077866511276641399321714158659017087977529565323940991868155451471168401728309630542017014117145413013952394099163375066111263214174081220411710516620636394100267661764427509051150344184230647711691044121013790840704474526822250666394100231312125113215064223503774318661011102872422871101012361411038539730394101142663732115631784313046166609017084139410136826141113236311213526266790103113719073076907315076790800186061939090942296103540241909079039410211729465401038539903512448765130394102313311103150565965104321237326241540811213219607379010159275733111210203718010606613170751394103181028457026590791920708839162317911387492366920708394103342821029071171322910130107120870616510913290469071411209516564170254046103207751000193100708394104171176957841909762468451352104314110385392901061303941042467431330922063179720679148635130207253225837918158691016255111913941052553693704166907513187568047690752211558112410329041977820514239410522711212249380106921426610071239671090126820262508987917711130394106115487784147115894148175133941069953576166775164161130394107222063176610653515321401108229213191165692702540126100019310078239410752613777816473941081114878411651061121177907911371043941089102056773212570516826113039410915182454789414812175290977797894148121939410967435761776613039411015162176442750905132032112033881665115777394110191339421175032187569723686779195251130659075041164394111212891317115612478912906651662539056631236110348791871113039411117637771182766696750960853962829096023190753941121379631540804481511329035144262417639411212775825437566416798511447463797394113161026314971407804481511329026290101884111948639411313674345736655791671246181676367913941141595212047057665590689411106691119053651394114102829090125053280495115108171394115963190500706651365367394115201566672031668028881490613107128019290128075247508791100394116122499015722540513680461068536739411631677796075090515911854041168628540931151278781354010329014319551142908866516007139411710392904761089812024224341044239411720102861906766920901832361262079025611091192299665081713941181478255698901011156566110729791610187623941183410903512166870963219072966197506692041189884905402479667914395107060174942455311987663941191113145371071553157550879166793941191353851041813109114618756804762152017139412096632050110173205073166394120106363151890804527177907917223941211194845676641430779710385391853539412112206783622383780996559064866927394122712617777076612911303941221113861755705090382706901711053140394123149529056216010992190152907914761251403941237566175797101210283352394124661290761576632394124192063176632658357153735263131240877531952345716610023941251758611151712611746654518756130712410383091086631147394125450610245071394126221216151457828119573054066311903210329096539909034032790736394126715862621241875611154039412715103631511411079163571552945488220825810321007394127154215569890101197012277286611072213097117039412892464314117540411905050239412886274567720022714747394129343921108049550810642138706116141108226241217049615029047171106375137188882670241824898413077911763941298249217502471243774175394130975355615296695981264214039413012206787411212498114774168165663403941312069572745117013110637513718894267024182488941247508791176394131151090351216687096659079377881103661013941321623220424036151889904591032764852457416583144394132125927109666101870903512166199639413317232202658314614110791624754136601449014913761639413336583466115668013065356155352552667100580255351002662665166609053041732130662261038539730905369640413414839413410596226141615711101481461113040413561811256690454497394135819077311554632773426904041361437146113236317671020431843913978312813941361868155451471168401728309630542017014117145413013952404137136890577143011130779132664129048413941372676617644275090511503441842306477116910441210137908407044745268222506664041382117371190182613978597551135234346504511219056641461771122394138142663732115631784313046166609017084140413910282102963077911102224905087763941391172946540103853990351244876513040414027927731511224864108201361147253320505362539882018127168247541364996601144791394140181028457026590791920708839162317911387492366920708404141161091254517113626959901289652544112445468625339414117117695784190976246845135210431411038539290106130404142121051124117566531847665125009651215139414225536937041669075131875680476907522115581124103290419778205142404143158361334153070125160090223665701213077915139414311548778414711589414817513404144131029080941115811882101148610114922531383941442220631766106535153214011082292131911656927025401261000193100782404145152631416517950375305774023668470258790394145111487841165106112117790791137104404146147290321330473081429090103417280741113941461518245478941481217529097779789414812194041478388225429535820661623941471516217644275090513203211203388166511577740414816562569908290321901102469024515060170663936039414821289131711561247891290665166253905663123611034879187111304041491533750658712112032013566110700312664556394149137963154080448151132903514426241764041501310234066518797031482431905042087394150161026314971407804481511329026290101884111948640415115904603798901091411021293441697011245610023941511595212047057665590689411106691119053651404152633110904716266615039415296319050070665136536740415315333211116651322966316590140797141920723941531224990157225405136804610685367404154301079066907571478056614261032907091111353054578177907879117871110124710329028777394154103929047610898120242243410442404155132043181165666142638749633585647198750394155147825569890101115656611072979161018762404156610215646511634214039415611131453710715531575508791667940415777232692183631034064139415796632050110173205073166404158198619032392344716649211598791645381381759014159151394158119484567664143077971038539185354041591817610329011155171244651682612071201165319664061373941597126177770766129113040416013102581063166250902682141170611161373941601495290562160109921901529079147612514040416139723380119029316651144741872162196305772719572430572629049674110662121465123498710747040631901362331373941616612907615766324041622753610232804721141322714140613165516663904011701032901166871219014611394162175861115171261174665451875613071241038309108663114740416311505657017068261146119174113739416322121615145782811957305406631190321032909653990903403279073640416414137971224664712190797556816414675703941641510363151141107916357155294548822082581032100740416574865617068261146173941659246431411754041190505024041661610903512166870962019066909041306492563941663439211080495508106421387061161411082262412170496150290471711063751371888826702418248984130779117640416730643380119066840770297819066582805705570241877481320904771214961329015674140394167975355615296695981264214040416823206662132501106691770987911306612454122244715012126641290104791394168206957274511701311063751371889426702418248894124750879117640416910971033140299405397114061373941691623220424036151889904591032764852457416583144404170234059032406344713312010014576436677767249866711636411905396639417017232202658314614110791624754136601449014913761640417195361027052914611917411374041714289329661024041721253220515837575119655710921461140417214840417323711212963738970014713617561792090130140965763230111851409040417361811256690454497404174102824159690411414041146174041741437146113236317671020431843913978312814041751513121254114158140740100417527683315904041751368905771430111307791326641290484140417622282102454715766412955783790379690853510046590922433140417621173711901826139785975511352343465045112190566414617711224041771211030266516641251893901374115164041771028210296307791110222490508776404178108047640633115267414816619240417827927731511224864108201361147253320505362539882018127168247541364996601144791404179138043054063164216754662387101111611362824041791610912545171136269599012896525441124454686253404180192829015312111464911154739071526908209922262829047870740418012105112411756653184766512500965121514041811210862681046651965052690791131404181158361334153070125160090223665701213077915140418213804905712177026282986922829079113740418213102908094111581188210114861011492253138404183168619032392854716213842138496350871420771384041831526314165179503753057740236684702587904041841134215662965590987973414205240418414729032133047308142909010341728074111404185102367681186811455106221031564041858388225429535820661624041868454312627645011646214040418616562569908290321901102469024515060170663936040418746777936194041871533750658712112032013566110700312664556404188122614132225476802174710866805137340418813102340665187970314824319050420874041892333321111566813111050454122232345905144715012126641290104791514041891590460379890109141102129344169701124561002404190122063114272110614273090223103853976040419063311090471626661504041911317764117115137561153987973391524864740419115333211116651322966316590140797141920724041921116231142721106962123144616751404192301079066907571478056614261032907091111353054578177907879117871110124710329028777404193138659876048712074879151904661412621374041931320431811656661426387496335856471987504041942058631142721106142110910736665133329395567101901037416640419461021564651163421404041951256214111323631320507312626679040419577232692183631034064140419678166414787911167704041961986190323923447166492115987916453813817590141591514041972123220266703262667904539037335619936263148502103290103741664041971817610329011155171244651682612071201165319664061374041981423220265839535820166113236314911404198131025810631662509026821411706111613740419920232232131516472129049474716660905307917751465611304041993972338011902931665114474187216219630577271957243057262904967411066212146512349871074704063190136233137404200306561961503514751329050690156917513540365146954012087354020590540144905406039079074111404200275361023280472114132271414061316551666390401170103290116687121901461140420112166703514617224291078246638741114042011150565701706826114611917411374042021043661664129010479141600714042021413797122466471219079755681641467570404203920622634173424945672979140420374865617068261146174042046136218267901093701404204161090351216687096201906690904130649256404205632928290540129904042053064338011906684077029781906658280570557024187748132090477121496132901567414040420679765104161751405404042062320666213250110669177098791130661245412224471501212664129010479140420717392668407703211329013012070321218371386660904042071097103314029940539711406137404208117045104913912121032907445104379040420823405903240634471331201001457643667776724986671163641190539664042098753556152966959812642404209953610270529146119174113740421014339172616716974187233012210866805137340421012532205158375751196557109214611404211321681068661419106624114782667533218421513267147130330709014113033190135152902913421404042112371121296373897001471361756179209013014096576323011185140904042129507102966591939010374166404212102824159690411414041146174042131253416111612236090171161475241969640421315131212541141581407401004175276833159040421467266641291417286404214222821024547157664129557837903796908535100465909224331404215251487841165106112110329070911131113572178177907911787111012471032902871514042151211030266516641251893901374115164042161554877841471151719016943295496335459151404216108047640633115267414816619240421712620771433572368921381142081514042171380430540631642167546623871011116113628240421817388106866829010301044416651011420871147255301504042181928290153121114649111547390715269082099222628290478707414219148404219121086268104665196505269079113141422042893299049740422013804905712177026282986922829079113741422172061762833524176004234042211686190323928547162138421384963508714207713841422272363112576611519675134042221134215662965590987973414205241422317197102221148811396306803964653181769018914440422310236768118681145510622103156414224166805217584669819369692413463050252921304042248454312627645011646214041422583574583951644723179140422546777936194142269186121020475561153987915140422612261413222547680217471086680513734142271423220275061355651169010327307437861211304042272333321111566813111050454122232345905144715012126641290104791514142281522177522789051496310962291929027796109404228122063114272110614273090223103853976041422916150462532226786422106736211655211424147754040422913177641171151375611539879733915248647414230191811257147509951539614274247111509031116905081321036404230111623114272110696212314461675141423195567526657026614112101078131404231138659876048712074879151904661412621374142322335777314313210611825331136138663248332755967062903214597014042322058631142721106142110910736665133329395567101901037416641423325814658411113530511775741665121777111913059014413912121032907707512240423312562141113236313205073126266790414234194063151618837809965590648773935519529058121915542240423478166414787911167704142351414878439280426618265011015155819555048404235212322026670326266790453903733561993626314850210329010374166414236556684987911204042361423220265839535820166113236314911414237814912528241668651862404237202322321315164721290494747166609053079177514656113041423812206784394345215155309264170241840423830656196150351475132905069015691751354036514695401208735402059054014490540603907907411141423918729522453779017320501607416621113816174970118144404239121667035146172242910782466387411141424020596817311503166511440106103373543723017031951151651047404240104366166412901047914160071414241995290621266264144074110107964042419206226341734249456729791414242116039045121949577555636230913140424261362182679010937014142432592178961488490177901030104819016715511475547706241751543617596740424363292829054012990414244111488190951044382736577313077911374042447976510416175140540414245102067874168201319774307791102040424517392668407703211329013012070321218371386660904142461481465784321665205967528266862175040424611704510491391212103290744510437904142471626290117197808199148849088382125225330779113740424787535561529669598126424142481953651044191516472371088321371558876095406625313879151404248143391726167169741872330122108668051373414249165304196962511115419696837969655901141084042493216810686614191066241147826675332184215132671471303307090141130331901351529029134214041425042581286908840425095071029665919390103741664142511326190111137130146664175130137119964042511253416111612236090171161475241969641425217984676867382741782119154431551163715487637404252672666412914172864142531110209087063214747299791321474740425325148784116510611211032907091113111357217817790791178711101247103290287151414254111812111156681311105740190113748404254155487784147115171901694329549633545915141425519532175105178574165814003746047431377437293101417964042551262077143357236892138114208151414256121673151293103351362221248716901314042561738810686682901030104441665101142087114725530150414257223143205011056487982674151608813821161397829761032610714179641425742893296610241425826302596435675041148187569242190418102829015017116174631463901087915141425814841425999445362597195330779151414259428932990497414260136278904977159037296290734263141426072061762833524176004234142611781173712132573622251152903501401044132501414141426172363112576611519675134142623086111901216712015517306797901623179739719988201113028812541760067168125352159424142621719710222114881139630680396465318176901891444142631825295320120102107940222905629573951191454116462140414263166805217584669819369692413463050252921304142641114697322247196729630513014090414264835745839516447231791414265283199091417721385416112062147321270375619047847108901141901203471671402144641426591861210204755611539879151414266121489075419631329014078411658364142661423220275061355651169010327307437861211304142671116516653110557841859019311131414267152217752278905149631096229192902779610941426832194077390991147433077912721881294051212416739615616795147407062265051011769091253857964142681615046253222678642210673621165521142414775404142691310808578653110570863671071193110212708414269191811257147509951539614274247111509031116905081321036414270178650190111308319077405406612490715165213041427095567526657026614112101078131414271193193205011056224110771395675472418236962139046336541427123357773143132106118253311361386632483327559670629032145970141427212673205256322471419025590963241427225814658411113530511775741665121777111913059014413912121032907707512242427314841427319406315161883780996559064877393551952905812191554224242741230414274141487843928042661826501101515581955504842427510109125661529079147613477041427555668498791120424276101051141171032904753990413541427681491252824166865186242427719289131711665132103290120181224754136143241907495394254142771220678439434521515530926417024184242781268155451471559986658659017087974142781872952245377901732050160741662111381617497011814442427922371903968990390952123114456135650963414113802833526176776414279205968173115031665114401061033735437230170319511516510474242801935037469075411064653903219064410624461786631142414280995290621266264144074110107964242811631432050110174873817771114658659017084141428111603904512194957755563623091314242821563528561152126679066411533209095155147414282259217896148849017790103010481901671551147554770624175154361759674242831933321117320595100959761919396192519090103103853929041428311148819095104438273657731307791137424284131503205256320321120338811038539185354142841020678741682013197743077911020424285387290463532190464256646525416511102229511873795158511561222597157476176747657106419590905704142851481465784321665205967528266862175042428630252953201201219045471479157107940150344122290562957310710131715941769032787474142861626290117197808199148849088382125225330779113742428734371521131236612811316312029619381268253661221356474239066884349113668872376416160715586041428719536510441915164723710883213715588760954066253138791514242881831877381180216124712481845635476417690669078797414288165304196962511115419696837969655901141084242891131216713024447145141454887416641428942581286908842429022868611201679030779151321395721296576987978162317918573414290132619011113713014666417513013711996424291912514717321903178412966414291179846768673827417821191544315511637154876374242922215290837903547964619670822471967139035618377082247190414292111020908706321474729979132147474242932281773751062571079402319573667761704195907557753175414142931118121111566813111057401901137484242942426394111750247124377417548514079056115398797471771789815801062610414294195321751051785741658140037460474313774372931014179642429529526128666511199635611237909634390863220511515231130561153987918266512741750414295121673151293103351362221248716901314242962233111031505649813912473666415211010506631113172366110691202414142962231432050110564879826741516088138211613978297610326107141796424297126364115651212017282120444142741174142972630259643567504114818756924219041810282901501711617463146390108791514242981231877375394915908256115398791491414298994453625971953307791514242991730281284563214130697106103290103911233866714241429913627890497715903729629073426314243001393771765356616641769015419774117414300178117371213257362225115290350140104413250141414243011631432170215811017129013650247103853973041796414301308611190121671201551730679790162317973971998820111302881254176006716812535215942424302107301201728548212314790154474143021825295320120102107940222905629573951191454116462140424303143503746906660909047103290182491474143031114697322247196729630513014090424304619324190241417964143042831990914177213854161120621473212703756190478471089011419012034716714021446424305155262938044275090511110110231110024914031151414305121489075419631329014078411658364243067730120166894317374143061116516653110557841859019311131424307914890754146390104791156414307321940773909911474330779127218812940512124167396156167951474070622650510117690912538579642430817522247116988201198106612447965559132090857121414308131080857865311057086367107119311021270842430910134645180941708432572233521797414309178650190111308319077405406612490715165213042431011296403871075162921571552774747974143101931932050110562241107713956754724182369621390463365424311680645104313970279741431112673205256322471419025590963242431214106220315666110289135151170576858527424312428932966102424313910290155411479757674112642431314842431415817737567139121210329010741421036791110133924243141230424315827811712075051128629212642431510109125661529079147613477042431620102902444135202804208711062616819046903512166870964243161010511411710329047539904135424317271907739010625132187569723686779195251987911376902899012167619010311161136652424317192891317116651321032901201812247541361432419074953942542431816102903512166870966660904515890757147424318126815545147155998665865901708797424319212809090477667490904166903524431564215113290292483424319223719039689903909521231144561356509634141138028335261767764243202730619313170544438553757828825391193852702581064321305199915536212110781314243201935037469075411064653903219064410624461786631142424321159573211202355332112017321417401038539906542432116314320501101748738177711146586590170841424322113141505622132190119559972717424322156352856115212667906641153320909515514742432322781105632141758114297300714217907253266105515327147424323193332111732059510095976191939619251909010310385392904243242765030041449771289036190769257159106133374544161447041292902156176776424324131503205256320321120338811038539185354243251527870066413210329047539904135741663004243253872904635321904642566465254165111022295118737951585115612225971574761767476571064195909057043432614842432630252953201201219045471479157107940150344122290562957310710131715941769032787474343272133460424327343715211312366128113163120296193812682536612213564742390668843491136688723764161607155860434328665619028335215952424328183187738118021612471248184563547641769066907879743432977814095454419062424329113121671302444714514145488741664343308440147510511799511801133424330228686112016790307791513213957212965769879781623179185734343316128906290342664243319125147173219031784129664343328548778326290466474243322215290837903547964619670822471967139035618377082247190434333712857085631213530518742433322817737510625710794023195736677617041959075577531754143433410181125785226103853973090536964243342426394111750247124377417548514079056115398797471771789815801062610434335118651909396901095010329010374142433529526128666511199635611237909634390863220511515231130561153987918266512741750434336121259770451417682306511429087747424336223311103150564981391247366641521101050663111317236611069120241434337116784119916190901095649730747424337126364115651212017282120444142741174343382045035714770681860741121549115917702262165132754011161109034243381231877375394915908256115398791491434339430825341584243391730281284563214130697106103290103911233866714243434091023361935121829035116424340139377176535661664176901541977411743434171452384537408117014142434116314321702158110171290136502471038539730417964343421297017111199305713581002435850270842434210730120172854821231479015447434343910212107629017849036197424343143503746906660909047103290182491474343441216375588277531755332977457911371164243446193241902414179643434515956324551140907527541172413293113614442434515526293804427509051111011023111002491403115143434686767125137904245074142434677301201668943173743434711505747110584611065645213832424347914890754146390104791156434348216007471105846110656452732131329609031590152903424177642434817522247116988201198106612447965559132090857121434349143577731435213874115453812247343131424349101346451809417084325722335217974343507853178711101231135722424350112964038710751629215715527747479743435195328121311115748259131707424351680645104313970279743435251391363497413242435214106220315666110289135151170576858527434353733917517790118951154243539102901554114797576741126434354910230213959418655291032424354158177375671391212103290107414210367911101339243435593577582687061381395977424355827811712075051128629212643435610102080190233110382706876714442435620102902444135202804208711062616819046903512166870964343572517981810222654871873917174060887218691740796559086510725110822264826646424357271907739010625132187569723686779195251987911376902899012167619010311161136652434358171171116320885902414933313101201842446142865173424358161029035121668709666609045158907571474343595496116467134994243592128090904776674909041669035244315642151132902924834343601266022212484396555117175050578944243602730619313170544438553757828825391193852702581064321305199915536212110781314343611136035913713596032992012038096424361159573211202355332112017321417401038539906543436275059614213312023510242436211314150562213219011955997271743436312391152731768872440111316570241842436322781105632141758114297300714217907253266105515327147434364910168049011114107018727086424364276503004144977128903619076925715910613337454416144704129290215617677643436511102861907196151419716157053242436515278700664132103290475399041357416630043436666861351322280712243436642893296610243436778001551321767413307434367148434368865030011071612574366143436821334604343696547152202509506243436966561902833521595243437013142413296090155341901529034290984343707781409545441906243437112232202296612119140641465116342140434371844014751051179951180113343437278949645702465591514343726128906290342664343731333917580614031007902231532169030547434373854877832629046647434374125351021447943222817530016111444343747128570856312135305187434375763645702804165451151434375101811257852261038539730905369643437618748112818906132887163309040101146111311519040671434376118651909396901095010329010374143437711723537105117417069081052414343771212597704514176823065114290877474343781185013711514770790272115141147434378116784119916190901095649730747434379730114778961721511221434379204503571477068186074112154911591770226216513275401116110903434380617414771356421981514343804308253415843438149215771712794343819102336193512182903511643438291609516670257129053100277434382714523845374081170141434383147861464532383250101341114181048814443438312970171111993057135810024358502708434384103129257116511521276321151434384910212107629017849036197434385877610329010615018436142434385121637558827753175533297745791137116434386106503007065358109011119617062434386159563245511409075275411724132931136144434387710280905640121437434387867671251379042450741434388171526658895156674187290991064731041314961501477434388115057471105846110656452138324343899650300706168268212116651434389216007471105846110656452732131329609031590152903424177643439011815677390977820126107905011914343901435777314352138741154538122473431314343911063631511407856511673212163543439178531787111012311357224343927631328090291776667343439295328121311115748259131707434393952149137871706863177114343935139136349741324343945230844659879143439473391751779011895115434395566684491896424343959102302139594186552910324343961569196497162113622211204110236707901811551004343969357758268706138139597743439775965104311594418945643439710102080190233110382706876714443439865079673511196904343982517981810222654871873917174060887218691740796559086510725110822264826646434399669198773903745143439917117111632088590241493331310120184244614286517343440061889551165690314344005496116467134994344016106245781061066474344011266022212484396555117175050578944344029617111131222161940911168434402113603591371359603299201203809643440372821687811061411241344344037505961421331202351024344045338132242250414344041239115273176887244011131657024184344051148889347421113052203152136414344059101680490111141070187270864344068168371324035871511304344061110286190719615141971615705324344078236111601202103853920212143440766861351322280712243440881467411011484181251423102543440878001551321767413307434409111811091736103296361429074117434409865030011071612574366143441013729521671401351084710385399035741629434410654715220250950624344111320651141309903248765901407911003743441113142413296090155341901529034290984344128172141662267759053696434412122322022966121191406414651163421404344138162311465251202111514344137894964570246559151434414620622613113616525943441413339175806140310079022315321690305474444151484344151253510214479432228175300161114444441621334604344167636457028041654511514444178105071522687590144524344171874811281890613288716330904010114611131151904067144441857824150390964344181172353710511741706908105241444419639071521759024243441911850137115147707902721151411474444207181211115622290253434420730114778961721511221444421825651051108471038539202434421617414771356421981514444221012874208262466381132363143442249215771712794444235168320904532434423916095166702571290531002774444246102657142811567834344241478614645323832501013411141810488144444425581773706142132043442510312925711651152127632115144442661925280412140125343442687761032901061501843614244442771022965911096175614344271065030070653581090111196170624444286149180144125443540434428710280905640121437444429614111117180440752434429171526658895156674187290991064731041314961501477444430668652263347361564344309650300706168268212116651444431827029665406146177531140434431118156773909778201261079050119144443291012969061667741125143443210636315114078565116732121635444433910215247161661105073157434433763132809029177666734444346699512682141170674344349521491378717068631771144443556444050370574344355230844659879144443663391465251207155434436566684491896424444375568111718934143443715691964971621136222112041102367079018115510044443861396579621224162743443875965104311594418945644443951424549062760434439650796735111969044444032701872894344406691987739037451444441416696781714344416188955116569031444442486114777077043444261062457810610664744444381250784710381421554221214344439617111131222161940911168444444713680490312621141404344447282168781106141124134444445747190112715640690434445533813224225041444446623211014011012971404344461148889347421113052203152136414444477102439541443905134344478168371324035871511304444483232525143444882361116012021038539202121444449865210847788973215514344498146741101148418125142310254444505255510516748843445011181109173610329636142907411744445112343789615217790797472146418104643445113729521671401351084710385399035741629444452716310847103853978147434452132065114130990324876590140791100374444538206317661061413282741434453817214166226775905369644445451745962315651434454816231146525120211151444455104064537321861208610703156434455620622613113616525944445682891251156662489032444456428932966102444457318490351444457148444458258212044445821334604444594989010501264444598105071522687590144524444602129106044446057824150390964444615927741592131144446163907152175902424444627129773902661869954044446271812111156222902534444635301125451718004444638256510511084710385392024444646109675104170651444464101287420826246638113236314444655101181906315144446551683209045324444663142454904444666102657142811567834444675633769174901584444675817737061421320444468413021611877044446861925280412140125344446951511115296140444469710229659110961756144447010927731587848232477968723144447061491801441254435404444717105112411750222909114444716141111171804407524444725138617516332617244447266865226334736156444473379896783444473827029665406146177531140454474148444474910129690616677411251454475610912566904544974444759102152471616611050731574544766256442103853990514444766699512682141170674544779222176412129051247790964444775644405037057454478202661764122507864527610327100307901429066884729310111184444786339146525120715545447912162423667652293141130492664124504444795568111718934145448045511028046444480613965796212241627454481148177558718670717233005401158406641218044448151424549062760454482111057737567191707321463901407084444823270187289454483191020773815866609017084137321894116510703798262904444834166967817145448411812109077375247414307797197064444844861147770770454485149761969159018452489516164324190860741664444858125078471038142155422121454486167661764427509051951241032904753990419086644448671368049031262114140454487141487843147606652269318201297988201304444877471901127156406904544881172926241540196729630513014090444488623211014011012971404544891323211010124539040910010545431262462140444489710243954144390513454490241176957813118756107920222511071013171594176903211181212729046351344449032325251454491132063179123872375592729058511017454044449186521084778897321551454492156314672872589171062573216690140106780964444925255510516748845449372221762592517130370644449312343789615217790797472146418104645449417134417153210477561153988111985151261979170414444947163108471038539781474544951310363151482431905045614110385396673644449582063176610614132827414544962413761126676903417013122971101091431751101046140110668421741170190692444496517459623156514544972110163245511409075275472403211647754969647032154114444449710406453732186120861070315645449816255510516741813851324567141463463155840708444498828912511566624890324544991820631142721106952123118756411835405205409866130444499318490351454500101688707661675466210385399071444500258212045450114596510414668742941484465051946506164445014989010501264545021159651041122071521411701694747064445022129106045450313133124117506539024776956115398791122444503592774159213114545041234314751612031708404224701513077914844450471297739026618699540454505227221084795132100051167412644157096212311731086680511407084445055301125451718004545061154877841471151474148175134445066109675104170651454507144019090472821147061161415606122187146444507510118190631514545081699845379686931167965516661966412214111379044450831424549045450982322021032208539202831454445095633769174901584545108109125171038539902744144451041302161187704645111484445115151111529614046451261091256690454497444512109277315878482324779687231464513151166958111307797150401413210847103853978141444513710511241175022290911464514292555105114090707770613290425477539905207541103290737742267666090530416521304445145138617516332617246451518116713012051187564135485319066609090130831964445153798967834645169361524848675781425087084545164289329661024645171410226870659711683077911314634631558407084545171484645182528913171712872320711095134643141113216690405461111096511306872024145451861091256690454497464519241029603252474134413247351623712190412154732190774704113045451962564421038539905146452024106217729316651112917157511031262903103157746661249071516521304545209222176412129051247790964645211915410170634274267070746219418117136988203077911374545212026617641225078645276103271003079014290668847293101111846452216278518977791990283142234423712259831164231379645452212162423667652293141130492664124504645231313145371556861116095406625313879151454523455110280464645249206784321966958910267454524148177558718670717233005401158406641218046452545261906761802611320904013514061301415751116110561441580521511442021311153331038310103270241850610872128922612872264648312158193163454525111057737567191707321463901407084645261814678741225808910290526120473147411191655827916745452619102077381586660901708413732189411651070379826290464527281282813270641226108668051916666203152142903871030110804515869181861317474545271181210907737524741430779719706464528179217896148849017790103010481901671551087916745452814976196915901845248951616432419086074166464529910363151187187147816088645452916766176442750905195124103290475399041908664645302769651049139121210329011385104392773466167814179647990482114828211030779110806245453014148784314760665226931820129798820130464531251020567731706826166324833271596296290981103011022315195170175602927454531117292624154019672963051301409046453212286904705152543532487120582465138454532132321101012453904091001054543126246214046453313494147262116769141109966124171921314545332411769578131187561079202225110710131715941769032111812127290463513464534188177396218710044111323401071706138466632107221215145453413206317912387237559272905851101745404645351437417770770216322203118820824332050644454535156314672872589171062573216690140106780964645363254877841471156641481787013209054037339372151651061121106301171751609517151131156140454536722217625925171303706464537103391754434273419010441107140454537171344171532104775611539881119851512619791704146453817746784714675616583732413546660901708791385147454538131036315148243190504561411038539667364645391810501914143910151548138101915138263684903316142170745453924137611266769034170131229711010914317511010461401106684217411701906924645402065031947139412929627123511676908842422152197111384545402110163245511409075275472403211647754969647032154114446454115817739027981890901290710466852319711454541162555105167418138513245671414634631558407084645421810286190675865903510610329012218066851531964545421820631142721106952123118756411835405205409866130464543223143205011056424873851110307787907610385397307416651217774545431016887076616754662103853990714645441875651043804893131259421381417061012821103077911080624545441459651041466874294148446505194650616464545273281773265115103325690136325497014641266561167596337321901484329261373454545115965104112207152141170169474706474546818783166102120107307791454546131331241175065390247769561153987911224745471878135526165300247901391792110874310456115398797454547123431475161203170840422470151307791484745481861717166101277024790139480987915773480307791537504545482272210847951321000511674126441570962123117310866805114070847454938187840160661029053779787493278106135771663214275022124112704189548769112263839116427024183341082307791580782454549115487784147115147414817513474550378144134454550144019090472821147061161415606122187146474551475356896954545511699845379686931167965516661966412214111379047455210206918410667475198791171145455282322021032208539202831454745536187837756113077974545538109125171038539902744147455481871006688412329875046455442893296610247455516578427155662441779079117871110124710329028715146455514847455611758631392579879186665375046455661091256690454497474557227555628819345161123976307797288814906134545611539879164466514645571511669581113077971504014132108471038539781414745581475341111152122444173090111305153159087464558292555105114090707770613290425477539905207541103290737742267666090530416521304745591368486145763567110207906711071171464559181167130120511875641354853190666090901308319647456044167259995117328290635111102479013311172509096812201609026362373584090263124162070829026311112105190257966278044189570464560936152484867578142508708474561246848618311066817916713213174217141482013814490810702418615809014146456114102268706597116830779113146346315584070847456265524531957417797464562252891317171287232071109513464314111321669040546111109651130687202414745631596645970275141517141841407856511673212161154645632410296032524741344132473516237121904121547321907747041130474564146136321507257426280217476632363156221464564241062177293166511129171575110312629031031577466612490715165213047456527751274779011513811150611216104018390791611562969261132714887822714876798791152464565191541017063427426707074621941811713698820307791137474566127581110166201116272117782396142854645661627851897779199028314223442371225983116423137964745671031059210329055151886515801154645671313145371556861116095406625313879151474568733912725666195791674645689206784321966958910267474569721813811041382672112464569452619067618026113209040135140613014157511161105614415805215114420213111533310383101032702418506108721289226128722646483121581931634745701675877596401507546241769025311061279151464570181467874122580891029052612047314741119165582791674745711550715072272872902596687412328201389875046457128128281327064122610866805191666620315214290387103011080451586918186131747474572725965106813793170219046457217921789614884901779010301048190167155108791674745731018710010622386667041480987504645739103631511871871478160886474574111897668138051104018390791704146457427696510491391212103290113851043927734661678141796479904821148282110307791108062474575122021507216788908811589053573614246457525102056773170682616632483327159629629098110301102231519517017560292747457688649439015014419041823446457612286904705152543532487120582465138474577211879532166101780507546241769032741466102120107307791514645771349414726211676914110996612417192131474578112024483732710366979879117114645781881773962187100441113234010717061384666321072212151474579157566129016030151448540661021201073077915146457914374177707702163222031188208243320506444745801220267086170721884971614148746211146458032548778414711566414817870132090540373393721516510611211063011717516095171511311561404745811313816137270476913503574710296559246458110339175443427341901044110714047458261912819103923817351464582177467847146756165837324135466609017087913851474745833063293315401270147506843574224971091721951206421726429664290230661029066753052491646458318105019141439101515481381019151382636849033161421707484584510348950539524645842065031947139412929627123511676908842422152197111384845851565130155130565456120147772905444166501320464585158177390279818909012907104668523197114845864953416637646458618102861906758659035106103290122180668515319648458719791516677103853963711471101036322713890176887411146458722314320501105642487385111030778790761038539730741665121777484588191021946612475077526165316966952888149061345457422767446458818756510438048931312594213814170610128211030779110806248458921341477987581201155661808107220155107950681042998657709362788464589273281773265115103325690136325497014641266561167596337321901484329261373484590879956677103853963714745904289329661024845915967549311362524745918187831661021201073077914845928138227487723694307685334745921878135526165300247901391792110874310456115398797484593251021205571661158043979619511058017257017070186661466149921697915147459318617171661012770247901394809879157734803077915375048459437813596436671322016220671001622065132166909010017013018390100415882028118219912917813059083750206474594381878401606610290537797874932781061357716632142750221241127041895487691122638391164270241833410823077915807824845952020914751610795014461989075073891412293271928051144032474595378144134484596934142152613230768106709647459647535689695484597142591287667732190788321120129010385399071474597102069184106674751987911711484598311713225131783257932342132906613181092980130669153512805829571743113141630702837206474598618783775611307797484599288277484213290886618435711920566476496131196710323186347146415903059087013047459981871006688412329875048460027827747874469628881490613454649307668996211108111037211305110372111521101004746001657842715566244177907911787111012471032902871514846011931348955515517616818390412205398081697012271206610101344746011175863139257987918666537504846027799566771373735113747460222755562881934516112397630779728881490613454561153987916446651484603186513019525616512180142251067109018317637351131661404746031475341111152122444173090111305153159087484604143153205011066778661910411671170817474604136848614576356711020790671107117148460512351374773315402397330779159142474605441672599951173282906351111024790133111725090968122016090263623735840902631241620708290263111121051902579662780441895704846061244766145407861329010301044416611547460624684861831106681791671321317421714148201381449081070241861580901414846071930359643667715512415176906563165911807010074117474607655245319574177974846084082774135307791853454363219065390666741401212315135642470515917053712719223473831042512175628013812016630779145474608159664597027514151714184140785651167321216115484609281513205266774881098454795129227116301110545661688563941839030779110370147460914613632150725742628021747663236315622148461028313489750609018354770412201137314963362381516631151280138111414124830166194134474610277512747790115138111506112161040183907916115629692611327148878227148767987911524846111432068116559511011501397052301291741114746111275811101662011162721177823961428548461254102121113251355611539879166803324719503098517111055724712933158042971259062164390615750104701906590156106466909111468682916461072593321103161157976629692474612103105921032905515188651580115494613161501806651665143076624625513198791171147461373391272566619579167494614231026314972024195190293222816935615379349618655875731987911711474614721813811041382672112494615171020210132575576183664997916766296124543186679151474615167587759640150754624176902531106127915149461692663176664321790141791514746161550715072272872902596687412328201389875049461712258128672758111018612034182999642474617725965106813793170219049461818155620411105874614750951549552417451987911711474618101871001062238666704148098750494619285924567258283331101231198907813310112661065902729073090159366629615051154474619111897668138051104018390791704149462077815072171669091147462012202150721678890881158905357361424946213030020665118313710821649113166241415004181412441618842110601402131108216938227905515747462188649439015014419041823449462210704190665146776221661222392474622211879532166101780507546241769032741466102120107307791514946234010584514741270961337627713272167467372514843714581180511401219012137135811935114014690146870319879117114746231120244837327103669798791171149462432258409665166514756451616786151732187393214123753037541981872519819073146398791171147462415756612901603015144854066102120107307791514946252181215066515626612432151788149379220567920908415214217114746251220267086170721884971614148746211149462627258128666513212029050031307664965719890133644771821431065037013092305531474626131381613727047691350357471029655924946271828245676610290242125266207054030768987912239247462761912819103923817351494628161503205272103290475399041150721266659713047462830632933154012701475068435742249710917219512064217264296642902306610290667530524916494629192555105116270511701006632192110497311301385113015648462942893296610249463010596433027210385391012150665148463051034895053952504631388388100484631156513015513056545612014777290544416650132050463211853207063882111359905951823248463249534166376504633786273750604774917034846331979151667710385396371147110103632271389017688741115046349998423181135103264041191104484634191021946612475077526165316966952888149061345457422767450463592532419012559711417293248463521341477987581201155661808107220155107950681042998657709362788504636122899036478011911023114241116715148463687995667710385396371504637112016509096510277961981051038484637596754931136252504638510276809366974846388138227487723694307685335046391014316454758426451142901444846392510212055716611580439796195110580172570170701866614661499216979151504640586410936564717484640378135964366713220162206710016220651321669090100170130183901004158820281182199129178130590837502065046418840770451417861373084846412020914751610795014461989075073891412293271928051144032504642755629110864146177112248464293414215261323076810670965046434456644128148464314259128766773219078832112012901038539907150464499018832172250472152671084846443117132251317832579323421329066131810929801306691535128058295717431131416307028372065046451021730909290453268763222484645288277484213290886618435711920566476496131196710323186347146415903059087013050464614251409046303114195753241196193781140484646278277478744696288814906134546493076689962111081110372113051103721115211010050464781844021261411206625507014846471931348955515517616818390412205398081697012271206610101345046488484312493213690102041484648779956677137373511375046499422954704175014147728542048464918651301952561651218014225106710901831763735113166140504650612156750327907364846501431532050110667786619104116711708175046516325171116190504204846511235137477331540239733077915914250465212268739210401405317069011159047013448465212447661454078613290103010444166115504653648444417063651374846531930359643667715512415176906563165911807010074117504654613430150989014248465440827741353077918534543632190653906667414012123151356424705159170537127192234738310425121756280138120166307791455046554252514870161484655281513205266774881098454795129227116301110545661688563941839030779110370150465610349804902278013766110103741484656283134897506090183547704122011373149633623815166311512801381114141248301661941345046571086861907110614254125336513148465714320681165595110115013970523012917411150465881231015441104415373113148465854102121113251355611539879166803324719503098517111055724712933158042971259062164390615750104701906590156106466909111468682916461072593321103161157976629692504659814697352474416746414946594289329661025046609619035542872351281865649466016150180665166514307662462551319879117115046615861210660895244946612310263149720241951902932228169356153793496186558757319879117115046626998108053641706494662171020210132575576183664997916766296124543186679151504663710213420104532991090494663926631766643217901417915150466456715675013364749466412258128672758111018612034182999642504665661101963774175494665181556204111058746147509515495524174519879117115046661514890356890239312135305453509017710766494666285924567258283331101231198907813310112661065902729073090159366629615051154504667133191720114171323571120960750905149466777815072171669091150466813103890151475246590108471038539781140494668303002066511831371082164911316624141500418141244161884211060140213110821693822790551575046691212391384311151322225476202411103734946691070419066514677622166122239250467051042141551019649467040105845147412709613376277132721674673725148437145811805114012190121371358119351140146901468703198791171150467173121119012665565774946713225840966516651475645161678615173218739321412375303754198187251981907314639879117115046727840567501411442365649467221812150665156266124321517881493792205679209084152142171150467363719850678108524946732725812866651321202905003130766496571989013364477182143106503701309230553150467492801615087503321651032900564946741828245676610290242125266207054030768987912239250467513906919038410002081554514720243141108494675161503205272103290475399041150721266659713051467629071349494676192555105116270511701006632192110497311301385113015651467723075914946771059643302721038539101215066515146782271726504678428932966102514679224275250467938838810051468032255369250468011853207063882111359905951823251468132079557504681786273750604774917035146823611101148504682999842318113510326404119110451468341150136120111504683925324190125597114172932514684410190125116504684122899036478011911023114241116715151468529785305046851120165090965102779619810510385146865122124590457915046865102768093669751468749556621575046871014316454758426451142901445146885596282110455650468858641093656471751468971019751074170699081350468988407704514178613730851469051424549063151504690755629110864146177112251469192187501327896247447411361504691445664412815146926144411019017178504692990188321722504721526710851469331806453095046931021730909290453268763222514694533116110812396504694142514090463031141957532411961937811405146954316412103296504695818440212614112066255070151469647481122519650469684843124932136901020415146975536473671429650469794229547041750141477285420514698961511141570138561038142288504698612156750327907365146996391259890522422355046996325171116190504205147009366146131131132218115641701504700122687392104014053170690111590470134514701616010594414112815047016484444170636513751470255073213186387504702613430150989014251470391501073519108031138695135150504703425251487016151470492208653720590295906476135047041034980490227801376611010374151470581811091156222131770138504705108686190711061425412533651315147065417176711211315047068123101544110441537311315147076343146413425213850470781469735247441674641514708569902171553705047089619035542872351281865651470945002221241515047095861210660895245147106227909671909355047106998108053641706514711726190412121096641215047117102134201045329910905147127112804747820169667750471256715675013364751471381021524064134770111696504713661101963774175514714614972691372775265047141514890356890239312135305453509017710766514715712017819092874143750471513319172011417132357112096075090515147167251249155342701759650471613103890151475246590108471038539781140514717934150832115801320901300415047171212391384311151322225476202411103735147188684189177514070155096504718510421415510196514719812165129718262472411205575047197312111901266556577514720784078471519054812150472078405675014114423656514721830114778961329064152504721637198506781085251472252625817119148504722928016150875033216510329005651472341372406371038504723139069190384100020815545147202431411085147247137619076781320509651472442893296610251472581029609590616641367514725290713495147261110296095906180137661105103751472623075915147271314972691383229690177907914114177051472722717265147286106614645327505514728224275251472951184511211655165147293225536925147305227600961131926514730320795575147316172321488411304751473136111011485147329185512154730790135215415147324115013612011151473375311427063391166515147334101901251165147349629111147758570759977820131514734297853051473571467411019030782012651473551221245904579152473612525147364955662157524737231542951473755962821104556524738359630090514738710197510741706990813524739238744951473951424549063151524740242727751474092187501327896247447411361524741234024751474161444110190171785247424207222773515147423180645309524743415590354151474353311611081239652474442471426465651474443164121032965247453271676765147454748112251965247463882766126514746553647367142965247475168140690457915147479615111415701385610381422885247486759825141140565147486391259890522422355247496117885104412827105147499366146131131132218115641701524750674831491417063495147506160105944141128152475112596510414669217077699317380133514751550732131863875247525176454906315151475291501073519108031138695135150524753892773247158247447431665147539220865372059029590647613524754659651043765165751475481811091156222131770138524755713021611830146011053051475554171767112113152475619265824325150320901859052747135547190104135592498797514756634314641342521385247575771818411315151475756990217155370524758895137961036318296594514758450022212415152475971667211675112115511151475962279096719093552476055678721109171395147607261904121210966412152476175808790132715213851476171128047478201696677524762617777316416166170514762810215240641347701116965247639289233115613513290715251476361497269137277526524764814937782225624511211000514764712017819092874143752476571772127742571202415147657251249155342701759652476668239017014169913051476693415083211580132090130041524767810661464541708125686415147678684189177514070155096524768616231325412024151476881216512971826247241120557524769625578515755245285147697840784715190548121524770881845413201210907374151477083011477896132906415252477172223132103853973741514771526258171191485247727436454122266816941514772413724063710385247739102152655521956361307541514773713761907678132050965247745139964843541514774810296095906166413675247757726128090125205536415147751110296095906180137661105103752477654881251043169415147761314972691383229690177907914114177052477771614530787135280415147776106614645327505524778958611166121661210367541514778511845112116551652477993067115317114290161217575147795227600961131926524780732695741101148418102551478061723214884113047524781940645373217916510703156514781918551215473079013521541524782102063176610675060774977820575147827531142706339116651524783105466822254761841512229829951478396291111477585707599778201315247845130214155101965147847146741101903078201265347853217021305247854289329661025347865101647161830415247861252534787452120169475247872315429534788534243211515247883596300905347893147318145524789238744953479035572457065247902427277534791314221417524791234024753479235245554052479242072227735153479356572261031515247934155903541534794525418141105524794424714264656534795521141122722415247953271676765347964220411107835247963882766126534797481192206140524797516814069045791534798353626912452479867598251411405653479938858130524799611788510441282710534800513204130013207015248006748314914170634953480151019473231008415248011259651041466921707769931738013353480262632074129021113452480251764549063151534803312446273252480389277324715824744743166534804384210671025248046596510437651657534805459241951915248057130216118301460110530534806482720570245052480619265824325150320901859052747135547190104135592498797534807255024790591402224214798132538511509086688417649156211232155152480757718184113151534808450041222415248088951379610363182965945348093848371455248097166721167511211551115348101810263211206676151769032321896146031539909090665248105567872110917139534811959251513719683916231791515248117580879013271521385348121632113990107031981579813253851140907754752481261777731641616617053481311965532214769711204469012011515248139289233115613513290715253481416420921411710712083092141112225117190111775052481481493778222562451121100053481516161126791361474379791601032904753990417152481571772127742571202415348163151192141112514341115076790594917071032904127016214111135613722251141324325722335217915248166823901701416991305348173446741692524817810661464541708125686415348183411719652481861623132541202415348195220911043140130524819625578515755245285348207116178904363704152482088184541320121090737415348213967412655248217222313210385397374153482258112132196073252482274364541222668169415348236140413222210057524823910215265552195636130754153482442201461455752482451399648435415348254128522654052482577261280901252055364153482645362224157524826548812510431694153482743982911625248277161453078713528041534828426442116252482895861116612166121036754153482955989511077306252482993067115317114290161217575348304500702144905248307326957411011484181025534831484238711557524831940645373217916510703156534832416710611162524832102063176610675060774977820575348334611202116252483310546682225476184151222982995348344787656625248345130214155101965348353113121556534835428932966102534836910269714578961329064152534836321702130534837222588534837510164716183041534838313104113875348384521201694753483941051222429353483953424321151534840578981909607065348403147318145534841212448853484135572457065348426406666090361005348423142214175348434531553706171534843352455540534844347837129053484456572261031515348452161497534845525418141105534846390651555348465211411227224154484743714571671103534847422041110783544848774026815910871621757534848481192206140544849680024156684867355348493536269124544850725495419590591405348503885813054485159811450121103873534851513204130013207015448528270320411068456165516534852510194732310084154485389902081165409086933997153485362632074129021113454485483305670638814610641184534854312446273254485592211491441278096414617711225348553842106710254485658211078612071555348564592419519154485753355314212619534857482720570245054485893041042411108262113710323405348582550247905914022242147981325385115090866884176491562112321551544859527046110111014053485945004122241544860630071120211846135348603848371455448616264901151667714053486118102632112066761517690323218961460315399090906654486249567837119053486295925151371968391623179151544863726490115980382321140534863163211399010703198157981325385114090775475448646956783711907511225348641196553221476971120446901201151544865974011856905812191553425253486516420921411710712083092141112225117190111775054486664606808211614252753486616161126791361474379791601032904753990417154486749567837119053486731511921411125143411150767905949170710329041270162141111356137222511413243257223352179154486872649011598038232114053486834467416925448693983550112253486934117196544870103368611207025252720915042185348705220911043140130544871950172311321139011595114253487171161789043637041544872553275490100526653487239674126554487373088287553518733652534873581121321960732544874814485025010720582511135348746140413222210057544875445057014614253487542201461455754487649567837119053487641285226540544877815793751582411315534252534877453622241575448787264901159803823211405348784398291162544879498345146112253487942644211625448809270159453132102155342525348805598951107730625448817520907077017590165534881450070214490544882598372876299614053488248423871155754488399567838931762408951202221405348834167106111625448845800773227145140534884461120211625448853956783893534885478765662544886726490115980382321140534886311312155654488759814063114140534887910269714578961329064152544888774494130114775646572953488822258854488992409021890411079081036253488931310411387544890578012310820241534890410512224293544891423710814412253489157898190960706544892624720173165167325348922124488544893533686190374515348936406666090361005448949360100813651102829013656534894453155370617154489553067863205052534895347837129054489663259824322924753489621614975448976264901154421071405348973906515554489852409019132056544898428932966102544899470923813005654489943714571671103544900526145490631515449007740268159108716217575449016744100124194214905449016800241566848673555490213295449027254954195905914055490323821405449035981145012110387355490421937305449048270320411068456165516554905294145544905899020811654090869339971554906312337743154490683305670638814610641184554907312854013054490792211491441278096414617711225549084139882356148544908582110786120715555490941399014163254490953355314212619554910613912673720294164544910930410424111082621137103234055491131528821038544911527046110111014055491251331101717111965449126300711202118461355491343062717064754491362649011516677140554914411732634293544914495678371190554915593224190193730544915726490115980382321140554916625190244908573654491669567837119075112255491741173263429354491797401185690581219155342525549184133320873120254491864606808211614252755491941173263429354491949567837119055492036013012435449207264901159803823211405549214107331809108544921398355011225549224117326342935449221033686112070252527209150421855492343311031368135449239501723113211390115951142554924411732634293544924553275490100526655492561932419082224141544925730882875535187336525549264117326342935449268144850250107205825111355492741311169050544927445057014614255492862999570622214128544928495678371190554929411732634293544929815793751582411315534252554930103519011565010385399090106544930726490115980382321140554931411732634293544931498345146112255493247121690139054493292701594531321021553425255493341173263429354493375209070770175901655549341715232128631918103853931190123751980511488461011544934598372876299614055493541173263429354493599567838931762408951202221405549368119111112525190120717130054493658007732271451405549374117326342935449373956783893554938611121555114285178254493872649011598038232114055493941173263429354493959814063114140554940854371117571201013184654494077449413011477564657295549414117326342935449419240902189041107908103625549426183190139615837036054494257801231082024155494341173263429354494342371081441225549446370873244198710544944624720173165167325549455519868681615449455336861903745155494641173263429354494693601008136511028290136565549475504207181681126544947530678632050525549484117326342935449486325982432292475549492182110854494962649011544210714055495041173263429354495052409019132056554951366418113654495147092381300565549524117326342935449525261454906315155495356711150901365449536744100124194214905549544117326342935549544289329661025549559555446976390785801105305549551329554956411732634293554956238214055495795437177111614703207921455549572193730554958411732634293554958294145554959333154812655495931233774315549604117326342935549603128540130554961515132151213555496141398823561485549624117326342935549624139901416325549633504106965549636139126737202941645549644117326342935549643152882103855496515415549655133110171711196554966411732634293554966430627170647554967319021811365549674117326342935549684117326342935549685932241901937305549694297686111136554969625190244908573655497041173263429355497041173263429355497131191211145554971413332087312025549724117326342935549724117326342935549734682908372145549733601301243554974411732634293554974410733180910855497565437177111614705549754117326342935549764117326342935549764331103136813554977611938816005601105305549774117326342935549784117326342935549786193241908222414155497962999571022210162355497941173263429356498032135767025549804131116905056498137286121005549816299957062221412856498223561486554982411732634293564983420410326037025549831035190115650103853990901065649843636746855498441173263429356498535931855155498547121690139056498631036195165549864117326342935649875176102411761825549871715232128631918103853931190123751980511488461011564988541710241417108554988411732634293564989225025655498981191111125251901207171300564990242967554990411732634293564991320145490554991611121555114285178256499231289053555499241173263429356499338929017655499385437111757120101318465649943907460110554994411732634293564995363311653055499561831901396158370360564996473091155105554996411732634293564997517090873203255499763708732441987105649985203371262303155499855198686816156499931276811175549994117326342935650004771812198455500055042071816811265650012130220555001411732634293565002319710359255500221821108565003420678432155500341173263429356500469523710379623631555004366418113656500541321321413255500541173263429356500651411024114110855500656711150901365650073145026490555007411732634293565008290053555008955544697639078580110530565009294936555009411732634293565010212857555010954371771116147032079214556501127351175550114117326342935650124211372303155501233315481265650132401586555013411732634293565014336245852555014515132151213556501522252895550154117326342935650162605273555016350410696565017214113255501741173263429356501831289053555501815415650193892905415550194117326342935650205402102414021085550203190218113656502131041469055502141173263429356502231049093655502242976861111365650234270372073155502341173263429356502457807501327896555024311912111455650255105158911035684555025411732634293565026970453101860477491712202845550264682908372145650272124685550274117326342935650284898128511305550286543717711161470565029518656551412455550294117326342935650305849918171115405550306119388160056011053056503151539050390137555031411732634293565032398962175550326299957102221016235650334129901156395650334289329661025650343865026395650343213576702565035495561327065650353728612100565036465014784110856503623561486565037354641732565037420410326037025650385818108411191492565038363674685650397270108474771223551085650393593185515650409596314190476632865111056504031036195165650416137614778387580140565041517610241176182565042311644173256504254171024141710856504353651084173849256504322502565650446561145059189361365650442429675650452136652565045320145490565046335010832565046312890535565047495874182732565047389290176565048721410841128905394925650483907460110565049697614791593613656504936331165305650504662441282732565050473091155105565051648710841909792492565051517090873203256505252665181325160108565052520337126230315650534105122210315056505331276811175650544130219201111565054477181219845650555102059636230625650552130220565056327038156565056319710359256505731664239056505742067843215650584341321153156505869523710379623631565059423220290497565059413213214132565060415549155378956506051411024114110856506141178111367565565061314502649056506242151432702147565062290053565063316067784975650632949365650647748311061504630311456506421285756506551641210510511475650652735117565066425551051735565066421137230315650675433907151122565067240158656506841704592752945650683362458525650696141102907151485650692225289565070514110290502115650702605273565071692285390715148565071214113256507239890167565072312890535565073261541565073389290541565074520110841706515650745402102414021085650754105122210315056507531041469057507691091251710385399041657056507631049093657507711314320501101746638103853990355650774270372073157507891503205217991143838681156507857807501327896575079363025964372510416117017962834714290974796813471032904341150601110477540524659010385397307411156507951051589110356845750808278673664710385399035565080970453101860477491712202845750811233111031501710190287552879010149565081212468575082152322047524415098871951270163812443076898565082489812851130575083151965105171113011102645331503336855231904756508351865655141245575084172583266266572874114029090346341281110977411156508458499181711154057508537812596437215966805754476902387919021210116753751913290231901504863110385397517166102906373290475650855153905039013757508612270204413510461191101661110741701905650863989621757508722105112411750966952888149061345487563155706230115057422761056565087412990115639575088278041379011172849567535268107108225761827728114031690612120898820709358146565650883865026395750892014376812666624114418133166610491138251970166421381701207116656508949556132706575090153717813715282108307791903799150131631167565090465014784110857509128297135736183640761551201329045441481193371399087476695018313705198820617156509135464173257509213656190443906310445276103238665114856509258181084111914925750931227020481759611191101661114672325515650937270108474771223551085750942092102674657353077973072497524712435729145673016898797565094959631419047663286511105750953914375113296554710636690133131877383796598654041168628540458332761510590791099011271221287784710296559214856509561376147783875801405750962510519417067232190431669107503016898820475103814210901076642629013254117056509631164417325750972128066110750512595113290423903225190371032901479094415650975365108417384925750981588610715020317246243695375414111046891565098656114505918936136575099129310911166131446966651423136987915650992136652575100289411666511045301355906618617124731863955714520214218614545415514549634134213456510033501083257510114297135736449215460941356901602656534214056510149587418273257510239297135736249135987915426871082821216610571414321554794148927925928648479113890160125473290531522473437471102415405651027214108411289053949257510322258128672901296779625790119653901904763031046650898791171156510369761479159361365751042210519417067232190431661694157669109032011037032454361507156510446624412827325851051830218066516761807266411136229045844113666170104565105648710841909792492585106231286186665722016790311232102135823249251492554116690150117279156510652665181325160108585107218125964372714327905125113290307898138711465401669011727975651074105122210315058510826817734276622456307685337501815202015497017051251132909735652211770170565108413021920111158510918105773427463412139110177907914226142930766797915156510951020596362306258511015319320501107212766105147431971246662756565110327038156585111471503205266511875614743117540784161155113272137750906537170113270537318113210366990864110329047539904115066516007156511131664239058511238371152192981151864366833672369020866748704344407083276161685745261256271146540100120627914160071565112434132115315851132096446741665145532354673276161685748611119047029879117115651134232202904975851141722357666116667533232110481069879110540190100925651144155491553789585115318125964372608171414797150987916636044536514070890661582361659055590140702987911711565115411781113675655851162325812866613141470131221908107501991202462231327504702987911711565116421514327021475851172459643812723076610364414157238170664095877078159512024625515192256511731606778497585118192065175311019013537150454115566180214744379141600715651187748311061504630311458511910206784171963197747566755651195164121051051147585120101057731556610212018158147170856512042555105173558512115691964528210267321669087371231651460805651215433907151122585122178104596323201109614290184613526412466627565651224170459275294585123159484540117513240117676692023740115511755651236141102907151485851248822906730766797915156512451411029050211585125994116665130652111366422565125692285390715148585126512454566175132661767125101316566101096695288814906134546959521666133183904226710257703710975978423076613907783293681621474073156512639890167595127111091251710329047539904165705651272615415951284132547117602273172463868303183908864877051890665276690199606969638205114404153967260904543690307791804741115651285201108417065159512914282773837908196908477515566422517356512941051222103150595130122043186613166411963076640898750575130428932966102595131133326636683313311015610727959061941575131910912517103853990416570595132253143205011072321901102951096610622337640901155301211353011106692475751321131432050110174663810385399035595133372043186651665145431251164713913274624715011036245863130133592184983437463621453413690301110669241575133915032052179911438386811595134182824567307664121064669091114681292609081179134045157513436302596437251041611701796283471429097479681347103290434115060111047754052465901038539730741115951353124545147195308116967864771422361107784148117345907337862099076177901392364257975751358278673664710385399035595136232582967125398820103118990503371352197917458112812532021219021797575136123311103150171019028755287901014959513728809963197253097657814150139371709331244904543690307791733202238791416007157513715232204752441509887195127016381244307689859513816406315402391263919645131543961558693181190575138151965105171113011102645331503336855231904759513912251311469875066903459021230552157513917258326626657287411402909034634128111097741115951402326631146987507101891245153181071082072179071933109032124657315751403781259643721596680575447690238791902121011675375191329023190150486311038539751716610290637329047595141118177381286398083131779079159057514112270204413510461191101661110741701905951421723220266682611102226113130015130122213170140159057514222105112411750966952888149061345487563155706230115057422761056595143101062217569669528290976191515751432780413790111728495675352681071082257618277281140316906121208988207093581465659514418596438126651665141034544411901586665089879117115751442014376812666624114418133166610491138251970166421381701207116659514510328456723623766117811483375751451537178137152821083077919037991501316311675951461018545891028910828210248631575146282971357361836407615512013290454414811933713990874766950183137051988206171595147187661751711058603456669159060597264635110382706139365751471365619044390631044527610323866511485951481328932911352104314111323631741661157514812270204817596111911016611146723255159514919586111661216932371251761671622011211132363174166115751492092102674657353077973072497524712435729145673016898797595150171091251710385399041358015914335367244762661157515039143751132965547106366901331318773837965986540411686285404583327615105907910990112712212877847102965592148605151491337783018415019596591471131431415888867161451142011290141243510512626850351783278691399074433071108886586581469021073198791171157515125105194170672321904316691075030168988204751038142109010766426290132541170605152137563623109592701019486909375651575152212806611075051259511329042390322519037103290147909441605153133025964372122210187561023731066080575153158861071502031724624369537541411104689160515452371671046750713025332090669050914750182148259136322368503418818501171281131362351666090532871502135222113870111579725990123729047110457515412931091116613144696665142313698791605155131091254517125381128730782053555431253575155289411666511045301355906618617124731863955714520214218614545415514549634134213460515619931091116613144696832936621971120123721359071134575156142971357364492154609413569016026565342140605157152581286723147255135525791681221135166140575157392971357362491359879154268710828212166105714143215547941489279259286484791138901601254732905315224734374711024154060515821300206651865826535127590879769590607707911206612631575158222581286729012967796257901196539019047630310466508987911711605159211058451474919648751865110111927590876959059779112066126925751592210519417067232190431661694157669109032011037032454361507160516056781507212278666879023841144671411053382025273726591270253951170623723841458851044537753855313324173411153764113115914166640650568747029879117115851604289329661026051612119274917416651423841570631107791488693332417890320541575851611830218066516761807266411136229045844113666170104605162392581286665166851747218396902503729580627554604713797590371273742037321685803151110163568347029317115851622312861866657220167903112321021358232492514925541166901501172791605163203391029033280618379087104155661802147843319879117115851632181259643727143279051251132903078981387114654016690117279761516411109125171032904753990416570585164268177342766224563076853375018152020154970170512511329097356522117701706151659636314159270987911711585165181057734274634121391101779079142261429307667979151615166963631415435166124541222585166153193205011072127661051474319712466627566151671142611311617110790597791206651585167471503205266511875614743117540784161155113272137750906537170113270537318113210366990864110329047539904115066516007161516824332177293172183661009101515110166296615961101222701461118111613170758516838371152192981151864366833672369020866748704344407083276161685745261256271146540100120627914160071615169321022687061384965915153106869042129854964390246271235101662966131262112905315013170758516920964467416651455323546732761616857486111190470298791171161517016106217729317216341941775366110691130971965851701722357666116667533232110481069879110540190100926151711138822542261480721406625614628058517131812596437260817141479715098791663604453651407089066158236165905559014070298791171161517214647225425595110115013970523012917411158517223258128666131414701312219081075019912024622313275047029879117116151731281773905236091109535987911711585173245964381272307661036441415723817066409587707815951202462551519226151741559651051908107902571406610290475307685525851741920651753110190135371504541155661802147443791416007161517517105112475012445490261772888149061345471081890129058517510206784171963197747566756151769227508312494669034047281758517610105773155661021201815814717086151773611661881251109879114610570631262901055716634210831213166413529034529053150131616634283987911711585177156919645282102673216690873712316514608062517812109125201121103290475399041658058517817810459632320110961429018461352641246662756625179211028611201329078571104542019841715544613529714290572741115851791594845401175132401176766920237401155117562518081091251747155711358675851808822906730766797915162518110105194170672321904316691075058518199411666513065211136642262518223106217729317266414729791177570723438828059010070540643857915705851825124545661751326617671251013165661010966952888149061345469595216661331839042267102577037109759784230766139077832936816214740731625183182555105147757714260906558111557511779117111305951834289329661026251849106415072705444385613759518411109125171032904753990416570625185185965104321235210431414166054024113695736741477511305951854132547117602273172463868303183908864877051890665276690199606969638205114404153967260904543690307791804741116251862259651051908107901139136692041218149569018670702987911711595186142827738379081969084775155664225173625187155741907316693466910901416103290103815713107825951871220431866131664119630766408987506251882139981072640967290810661244113015265247938427609208708595188133326636683313311015610727959061941635189178093625131972331711507266326713591383583470259518925314320501107232190110295109661062233764090115530121135301110669247635190122067841719666102120181581471708595190372043186651665145431251164713913274624715011036245863130133592184983437463621453413690301110669241635191112513112518311016130754098987505951911828245673076641210646690911146812926090811791340451635192221726166576103411145155113501361599021162115701535715049565670859519231245451471953081169678647714223611077841481173459073378620990761779013923642579763519314778511606623214366296901750508751407085951932325829671253988201031189905033713521979174581128125320212190217976351941833217729316651756612908075214070417521411557759519428809963197253097657814150139371709331244904543690307791733202238791416007163519520251313621061038539668719474186629612490110637312027914559519516406315402391263919645131543961558693181190635196172063136210626233711371762961098931404132490202595196122513114698750669034590212305521635197189484514775019096669201201023713849531987911711595197232663114698750710189124515318107108207217907193310903212465731635198212209077275312344112616720222647773421511329041841902445951981181773812863980831317790791590635199115964381272401470219166816865951991723220266682611102226113130015130122213170140159064520017314320501101783411213510329047539904165805952001010622175696695282909761915164520111302596437213615630123079074111595201185964381266516651410345444119015866650898791171164520293715235619936214110385397305952021032845672362376611781148337645203143311103150726064771641156103853990411505952031018545891028910828210248631645204138177381286398881329030779153471715952041876617517110586034566691590605972646351103827061393664520516621060726615274493871265032184963358564715875059520513289329113521043141113236317416611645206182806611075658043538540105221842130589805130779111759520619586111661216932371251761671622011211132363174166116452071081259643721397412933076817859520717109125171038539904135801591433536724476266116452082710511247508966952888149061345465548612531013015668106961484567501448618356605208428932966102645209113717896695282102674657353077976052094913377830184150195965914711314314158888671614511420112901412435105126268503517832786913990744330711088865865814690210731987911711645210161503205272137196810696667533214790944160521013756362310959270101948690937565164521111133106434711017288613132710366103605211133025964372122210187561023731066080645212922357666116113236316660521252371671046750713025332090669050914750182148259136322368503418818501171281131362351666090532871502135222113870111579725990123729047110464521319258128666131169359155757104090811087890519879117116052131310912545171253811287307820535554312536452148102020412972535108138926052141993109111661314469683293662197112012372135907113464521516245451471953081169628181124410318498041665886052151525812867231472551355257916812211351661406452161288526729012969096611911016615075160521621300206651865826535127590879769590607707911206612631645217510912535210431416052172110584514749196487518651101119275908769590597791120661269265521842242750765226613061431195970184662248496662245610739647151328633747390126431262665141101125592801525797029317116052185678150721227866687902384114467141105338202527372659127025395117062372384145885104453775385531332417341115376411311591416664065056874702987911711655219308443511366510968329368106719079867906534616415010471632339844273982628910827826052192119274917416651423841570631107791488693332417890320541576552202130532080661031042461033665175916611046696480315189032860522039258128666516685174721839690250372958062755460471379759037127374203732168580315111016356834702931711655221282712469035113665109613393051891114448687088506103660910435118190889901308860522120339102903328061837908710415566180214784331987911711655222142053510264861253106651096101936624175061522242893296610265522332811351610117157398122654265542901121131133930418165318784387057165134714623773905705189019261522311109125171032904753990416570655224252713307666173408413219166140316640781350312115304965359013570627061522496363141592709879117116552251427177483531972208301208241120870315908761522596363141543516612454122265522678612471787724739128161522611426113116171107905977912066516552271792110166881049879167471166588319774756675615227243321772931721836610091015151101662966159611012227014611181116131707655228343083566119104896695288814906134546491301566810696287411402905611539879184350366412170446297615228321022687061384965915153106869042129854964390246271235101662966131262112905315013170765522925141320521910466573143205011066515771172724976251032965081327307416661522916106217729317216341941775366110691130971966652301525812867238144118125066394164870931711615230113882254226148072140662561462806652311110918117137721624439066108010461523114647225425595110115013970523012917411166523229843181113131706749053175915187212010778773501156611177453151523238724193261707615232128177390523609110953598791171166523321111575076143227135251821166131115150757199149018466418095161523315596510519081079025714066102904753076855266523417231913480478814952537571160811195151209512071406152341710511247501244549026177288814906134547108189012906652352331241252286416622631309193110611625414212225211225110798791171161523592275083124946690340472817665236125965104146692871777313077911711615236361166188125110987911461057063126290105571663421083121316641352903452905315013161663428398791171166523746314320501107181128730781481253202155706215030111598797936662731562888149061345471054118031051262140155413664141598791171162523742893296610266523812371789899155193736833213931711625238121091252011211032904753990416580665239277261102826361463216690166107115011781891289013680847245648646423078205716610026252392110286112013290785711045420198417155446135297142905727411166524024106217790119151406901198990413144405320253170140664298820571661008625240810912517471557113586766524117642904774332084936002659095861289549441361453296625241101051941706723219043166910750675242931432050110171212174162362524223106217729317266414729791177570723438828059010070540643857915706752431113171251714111971138614777307416252431825551051477577142609065581115575117791171113067524418295906103532335488790329730906104111350813273074162524491064150727054443856137675245102781767232361192680323274540625245185965104321235210431414166054024113695736741477511306752461237177375532440250166153961426814062524622596510519081079011391366920412181495690186707029879117116752477371789877324930782662524715574190731669346691090141610329010381571310782675248868621416361779613870262524821399810726409672908106612441130152652479384276092087086752491396047171106313689961419119419045742563524942893296610267525018232861903249151320906687411878539606510442138635250178093625131972331711507266326713591383583470267525111371102907141250722071361446352511220678417196661021201815814717086752525371132249799838635252112513112518311016130754098987506752539232210132575104524796679151635253221726166576103411145155113501361599021162115701535715049565670867525493311103150567216719627463525414778511606623214366296901750508751407086752557843160177309015032635255183321772931665175661290807521407041752141155776752561458752312906311990428767103290103741116352562025131362106103853966871947418662961249011063731202791456752571164615782103262750511429090532635257172063136210626233711371762961098931404132490202675258129601107361021703005114290905314163525818948451477501909666920120102371384953198791171167525982807119017790791722140635259212209077275312344112616720222647773421511329041841902446752601530232052563293218541968572231250412177763526011596438127240147021916681686675261151406903238851329609041090571174170691645261428932966102675262123424769040323121215137774170691645262173143205011017834112135103290475399041658067526312650300110773609120191106336017164526311302596437213615630123079074111675264129764117113733120190109412741111306452649371523561993621411038539730675265896452103290961741111306452651433111031507260647716411561038539904115067526672555105111170645020864526613817738128639888132903077915347171675267910296052986612417192130645267166210607266152744938712650321849633585647158750675268135307510741706146307791204801222121516452681828066110756580435385401052218421305898051307791117675269158177390392223170299712096661165165213064526910812596437213974129330768178675270131028619011907365071217923291113064527027105112475089669528881490613454655486125310130156681069614845675014486183566752711017053481170120710710151652130645271113717896695282102674657353077976852724335472075064527216150320527213719681069666753321479094416852735151222167451416452731113310643471101728861313271036610368527451861210235505764527492235766611611323631666852754102073014077645275192581286661311693591557571040908110878905198791171168527623648326452768102020412972535108138926852772607836452771624545147195308116962818112441031849804166588685278115421411710712083092141112225164527812885267290129690966119110166150751685279385347911164527951091253521043141685280420545936176552804289329661026852815105119504793765528142242750765226613061431195970184662248496662245610739647151328633747390126431262665141101125592801525797029317116852823142351536552823084435113665109683293681067190798679065346164150104716323398442739826289108278268528345515148701616552832130532080661031042461033665175916611046696480315189032868528441077507650065528428271246903511366510961339305189111444868708850610366091043511819088990130886852855118717017151655285142053510264861253106651096101936624175068528671282811314631158407026552863281135161011715739812265426554290112113113393041816531878438705716513471462377390570518901926852873886110215655287252713307666173408413219166140316640781350312115304965359013570627068528810200426208701891028961134526552881427177483531972208301208241120870315908768528921076376552897861247178772473912816852907157512229010011617065529017921101668810498791674711665883197747566756852912391581655291343083566119104896695288814906134546491301566810696287411402905611539879184350366412170446297685292220054265529225141320521910466573143205011066515771172724976251032965081327307416668529373915105176811010125166529342893296610268529431547512776652941525812867238144118125066394164870931711685295618017087700315166529511109181171377216244390661080104685296436521211010176652962984318111313170674905317591518721201077877350115661117745315152323872419326170768529759175213821315166529721111575076143227135251821166131115150757199149018466418095168529833501083266529817231913480478814952537571160811195151209512071406852997526679013171121131665299233124125228641662263130919311061162541421222521122511079879117116853006103171522531211386653001259651041466928717773130779117116853015543872110917213665301463143205011071811287307814812532021557062150301115987979366627315628881490613454710541180310512621401554136641415987911711685302610707152971113866530212371789899155193736833213931711685303101259253415296811975125314066530327726110282636146321669016610711501178189128901368084724564864642307820571661002685304820678362238378098047706653042410621779011915140690119899041314440532025317014066429882057166100868530562014542471246605166530517642904774332084936002659095861289549441361453296685306339426123467530642893296610268530745241109041675307931432050110171212174162368530857209542390416753081113171251714111971138614777307416853095126671959051675309182959061035323354887903297309061041113508132730741685310125247190511875641103816110290416753101027817672323611926803232745406853114127752561356753111237177375532440250166153961426814068531282557851578528531754167531273717898773249307826685313961511110441146161120410566753138686214163617796138702685314111875110441140781107357503399766753141396047171106313689961419119419045742568531510206315189082255370873296104067531518232861903249151320906687411878539606510442138685316550044517587675316113711029071412507220713614468531777261280901252055364167531753711322497998386853185488125104316941675318923221013257510452479667915168531911100617657014451214703722298373675319933111031505672167196274685320108261731478220790165630516767532078431601773090150326853215220901882074926753211458752312906311990428767103290103741116853221217956208951177713412533077913557675322116461578210326275051142909053268532352619203211476753231296011073610217030051142909053141695324114567532482807119017790791722140695325214541675325153023205256329321854196857223125041217776953264145412264767532615140690323885132960904109057117417069169532744098155011226753271234247690403231212151377741706916953284105814355012267532812650300110773609120191106336017169532964865802201437548675329129764117113733120190109412741111306953301562268082116370961776901155261271132155866675330896452103290961741111306953315118907561011567533172555105111170645020869533266589841379640620675332910296052986612417192130695333621813061426247296247675333135307510741706146307791204801222121516953347250901898210197152675334158177390392223170299712096661165165213069533569275149213259018967533513102861901190736507121792329111306953366247353279073078267533610170534811701207107101516521306953376242950573103248468533742893296610269533832135768466853384335472075069533952776695142857685339515122216745141695340960676623122257094221110127685340518612102355057695341669615010903115267666853414102073014077695342943831852226117428417901226853422364832695343586171611400616853432607836953444101638590916853441154214117107120830921411122251695345311658906853453853479111695346270201685346420545936176953478677839061143765165768534751051195047937695348114384077050011226378428417904868534831423515369534948641205766853494551514870161695350494747144611685350410775076500695351486130106141685351511871701715169535231651305568535271282811314631158407026953532112113116853533886110215695354313192540685354102004262087018910289611345269535572029721889761859054068535521076376953566105168106317156685356715751222901001161706953575211120110818376853572391581695358598628735180685358220054269535951150903212037685359739151051768110101251695360470732663168536031547512776953614748432011116853616180170877003151695362374831476853624365212110101769536342702961665668536359175213821315169536475524117157113811476853643350108326953656137641171761383768536575266790131711211316953664232202904976853666103171522531211386953675179872161536426853675543872110917213695368314395138268536861070715297111386953694497952605406853691012592534152968119751253140695370679125139015012168537082067836223837809804770695371366013556268537162014542471246605169537258221505122058685372339426123469537343921103036268537345241109041695374320113862685374572095423904169537541051222103150685375512667195905170537641777751019168537612524719051187564110381611029041705377415535100421685377412775256135705378434571066906853788255785157852853175417053791111511176035071569046251137673685379961511110441146161120410567053803842933736853801118751104411407811073575033997670538138727196685381102063151890822553708732961040705382231326268538255004451758770538341261424765668538377261280901252055364170538431766748268538454881251043169417053854999810137685385111006176570144512147037222983737053869697667739050436314204036853861082617314782207901656305167705387262251268538752209018820749270538834274416216853881217956208951177713412533077913557705389678540124103290966853895261920321147705390394057516953904289329661027053912376133695391114570539244522079048069539221454170539321671196953934145412264770539441127301935169539444098155011227053954875311057026953954105814355012270539641678411057086953966486580220143754870539722513269539715622680821163709617769011552612711321558667053985111566110457916953985118907561011570539951861081239079769539966589841379640620705400233116169540062181306142624729624770540149558260797695401725090189821019715270540265762477739045797695402692751492132590189705403513712102477735169540362473532790730782705404410453644579769540462429505731032484705405101761210176147490417631103269540532135768467054067162451477502171413170695406527766951428577054075327130568457976954079606766231222570942211101277054084207758457976954086696150109031152676670540951055566110457976954099438318522261174284179012270541043564549067695410586171611400617054115184152307791151695411410163859091705412513740212614112069541231165890705413817058644511352515013069541327020170541452068182652516954148677839061143765165770541573915212806722042011116954151143840770500112263784284179048705416827010847135811865111069541648641205767054178146741101148418125142310256954174947471446117054189952142411163325409086956695418486130106141705419914678741877507357503399766954193165130557154201481773466511329016695151151416534252695420211211311715421710296090611461113169542131319254071542251525186684516954227202972188976185905407154231859651036816311470266345115034418828189090129069542361051681063171567154247263711564806120213169542452111201108183771542554823295661506954255986287351807154261468569630455817747979020911075171052591676954265115090321203771542742105256154069542747073266317154287463758677555161540695428474843201111715429612827156262174861069542937483147715430444617014230069543042702961665671543192589011945490119118801246954317552411715711381147715432630865659319041695432613764117176138377154333218790110695433423220290497715434811350813266730110607716954345179872161536427154357265431109257145371109695435314395138271543654541032905137269543644979526054071543758068799615454069543767912513901501217154385731032901037269543836601355627154394889396547695439582215051220587154401386232517626709048622696202641316954404392110303627154413224261273695441320113862715442133171921516371383711135037496135031144695442410512221031507154438862321062411377318381107054434289329661027154441234366609075241502527221308107581705444417777510191715445102163929010321101300312026413770544541553510042171544610302285325137978471345517170544643457106690715447156043210624113757426213742263412687401281202705447111151117603507156904625113767372544813763522215221884903305715641251307054483842933737254499142555708671725354129705449387271967254509413710617014125375116270545023132627254517319661102061467162705451412614247656725452107236611090142536805110015870545231766748272545311306143849023684214290234716270545349998101377254549146658280511440619571027054549697667739050436314204037254558314319269480150142181587054552622512725456132953093517825801702302159622471587054563427441621725457135052474720641103290922155012643158705457678540124103290967254589109320717506097216915870545839405751725459112081358610329066130805110015870545923761337254601430637663691111209106170792502217158705460445220790480725461105056151471311702579725791587054612167119725462520128158257487054624112730193517254638110551297355110609365770546348753110570272546410165774125207920120108096956557054644167841105708725465814661104811116513957705465225132725466103711514232956676141716270546651115661104579172546781475213721281921307054675186108123907977254688505371001909131611307054682331161725469124836590886136690283806113070546949558260797725470168966959825135131307661709670366901034327054706576247773904579772547111791373429519034614641208702418705471513712102477735172547211462123511341536413132155113070547241045364457977254737141017110111511110431417054731017612101761474904176311032725474132957159629629012013629690141190327054747162451477502171413170725475137932050115894325247692104010451180705475532713056845797735476314817117054764207758457977354774171321011407054775105556611045797735478517195241722570547843564549067735479610413826361151177054795184152307791151735480564113713025052705480513740212614112073548181411532630515101366517054818170586445113525150130735482656712879050517054825206818265251735483684346838222101927705483739152128067220420111173548496717861132363112796712027054848270108471358118651110735485784209260202411102997054858146741101148418125142310257354866171126196478599667054869952142411163325409086956735487468103955170548791467874187750735750339976735488582780109570112771548842893296610273548988653367477731032683567154891481773466511329016695151151416534252735490112974064134261170311297101342527154907102960906114611131735491649130214373274062507154915152518668451735492831312211357740519561907154921859651036816311470266345115034418828189090129073549362278571737914271549372637115648061202131735494910320741170131117013257105171549454823295661507354957825812866651661754205101781111661244188109028155147119110166111464414157164956704139866102905978636691090146810329010688631050150146511403829067041398170483509805114029310131472130791901111041231101104090655467115022251715495146856963045581774797902091107517105259167745496377517117154964210525615407454972103114071549774637586775551615407454982302228715498612827156262174861074549922945397154994446170142300745500228924771550092589011945490119118801247455013158054037715501630865659319041745502237325871550232187901107455034388903507827155038113508132667301106077174550443405676683071550472654311092571453711097455054280121039211071550554541032905137274550642911309696071550658068799615454074550749572355097155075731032901037274550823161187155084889396547745509346035455715509138623251762670904862269620264131745510422511295407155103224261273745511513549371565171551113317192151637138371113503749613503114474551221713717155128862321062411377318381107455133310300567155131234366609075241502527221308107581745514330411061071551410216392901032110130031202641377455154304110530540715515103022853251379784713455171745516211505407155161560432106241137574262137422634126874012812027455173268132540725517428932966102745518368920754072551813763522215221884903305715641251307455196716268327065121172551991425557086717253541297455205533136327065172552094137106170141253751162745521236019672552173196611020614671627455224360412264772552210723661109014253680511001587455234130037512317255231130614384902368421429023471627455242562507255249146658280511440619571027455253570535116725525831431926948015014218158745526575629303215471132222631504732190353219066840770571708662067423941040183907911822294544147916133710398791324544147916603078205353251915447106322821021544772552613295309351782580170230215962247158745527237751725527135052474720641103290922155012643158745528320770110772552891093207175060972169158745529334170213772552911208135861032906613080511001587455303253535772553014306376636911112091061707925022171587455312562961725531105056151471311702579725791587455327121175545115031112072553252012815825748745533527048243190507255338110551297355110609365774553431411023272553410165774125207920120108096956557455353567454907255358146611048111165139577455362374120725536103711514232956676141716274553743609017041725537814752137212819213074553852519070701387255388505371001909131611307455394211169707672553912483659088613669028380611307455404150211014567772554016896695982513513130766170967036690103432745541495587727772554111791373429519034614641208702418745542320145341872554211462123511341536413132155113074554345424566451217255437141017110111511110431417455445117013561207512172554413295715962962901201362969014119032745545383524811672554513793205011589432524769210401045118074554633719068073554642893296610274554795951794265113525150224327355473148171174554858377473132517355484171321011407455493132556517355495171952417225745550392531117073555061041382636115117745551111356425473611663215132986477355515641137130250527555524187582013173555281411532630515101366517555534113223201377355536567128790505175555451016163811938173555468434683822210192775555561081265111036542735555967178611323631127967120275555658732319322432735556784209260202411102997555574187566210173555761711261964785996675555833233027827355584681039551755559237174673555958278010957011277555603377431119735560886533674777310326835675556153516176619314673556111297406413426117031129710134252755562321331517355626491302143732740625075556348317662224173556383131221135774051956190755564680714443766193637355646227857173791427555655307195110193327355659103207411701311170132571051755566310261414273556678258128666516617542051017811116612441881090281551471191101661114644141571649567041398661029059786366910901468103290106886310501501465114038290670413981704835098051140293101314721307919011110412311011040906554671150222517555676753316176283174556742893296610275556843621181615174556837751711755569435655335778274556921031140755570468161515407455702302228755571414046632517455712294539755572283713627455722289247755573310567662074557331580540377555743115620841745574237325875557532687662674557543889035078275557653868190511350745576434056766830755577474214327025174557742801210392110755578330190146745578429113096960755579341256956745579495723550975558031941929177455802316118755581423276622241745581346035455755582413037194111745582422511295407555833452722106745583513549371565175558454694141707540745584217137175558531275047745585331030056755586412750475407455863304110610755587574630511938174558743041105305407555886110100901443071745588211505407555895156810205715407455893268132540755590559895110795183745590368920754075559174873851110307750101745591671626832706512117655921196732180702409068193110411357455925533136327065176559310303181239497345144901937815274559323601967655947307485224213375527455944360412264776559563471069181421526527455954130037512317655968308577181905684355174559625625076559776943556677851213174559735705351167655987720505715775398315274559857562930321547113222263150473219035321906684077057170866206742394104018390791182229454414791613371039879132454414791660307820535325191544710632282102154477655997278467181151101511917455992377517656001052737211502643166442299274560032077011077656017560139572539073152745601334170213776560284731055182877505006623274560232535357765603542558299436274560325629617656041046337401962663126311096530745604712117554511503111207656056117120111669671557674560552704824319050765606851847136885906815510674560631411023276560757153168859051774560735674549076560861035771829623274560823741207656094193510961317456094360901704176561097977351565670273091155111745610525190707013876561172339717161154061170874561142111697076765612132215042472128859026851769160017451315674561241502110145677765613856720077219071706517456134955877277765614649838213013810852745614320145341876561593077542135479372229837374561545424566451217656165138227222101927745616511701356120751217656177567181351481019674561738352481167656188641572629721407652517456183371906807656199447617873617083063658261087456199595179426511352515022432765620910320741170131117013257105174562058377473132517656211179151716651663215132767477456213132556517656221082774757510686539032190644745622392531117077562323517687456231113564254736116632151329864777562422417537556244289329661027756252551989755625418758201317756262381893755626411322320137775627292169275562751016163811938177562839517971755628610812651110365427756293207536927556295873231932243277563035091307827556304187566210177563136831427087556313323302782775632359067708755632237174677563339013217087556333377431119775634343456417556345351617661931467756352231867556353213315177563652315641226477556364831766222417756373882766467556376807144437661936377563831281057175563853071951101933277563938925675407556393102614142775640337623077075564067533161762831775641388276646755641436211816151775642510551908407175564243565533577827756434120501902397556434681615154077564431863044175564441404663251775645339224043575564528371362775646388276646755646310567662077564745021032153717556473115620841775648245530755648326876626775649768251288134227796160755649538681905113507756503882766467556504742143270251775651611787510414119775565133019014677565263721031710930411977556523412569567756536689010703797031755653319419291777565444417026505775565442327662224177565533704747675565541303719411177565638827664675565634527221067756574225315670675565754694141707540775658415167576637755658312750477756593882766467556594127504754077566051342242315670675566057463051193817756615170349071131755661611010090144307177566238827664675566251568102057154077566351429619063151755663559895110795183775664377181118755664748738511103077501017756656596510437651657765665428932966102775666424970770527656661196732180702409068193110411357756673882766467656671030318123949734514490193781527756685339111171923577656687307485224213375527756693882766467656696347106918142152652775670635631298751407087656708308577181905684355177567138827664676567176943556677851213177567241628152293765672772050571577539831527856732567110765673727846718115110151191785674310518412076567410527372115026431664422992785675412069545741765675756013957253907315278567622665176567684731055182877505006623278567732665154076567754255829943627856784511032153717656781046337401962663126311096530785679241373765679611712011166967155767856802198477656808518471368859068155106785681346415616076568157153168859051778568239410116076568261035771829623278568334122871607656834193510961317856844310133246119765684979773515656702730911551117856853162651607656857233971716115406117087856865508518329014576568613221504247212885902685176916001745131567856874460117883765687856720077219071706517856882193460765688649838213013810852785689555271231565176568993077542135479372229837378569069293732790740567656905138227222101927785691413551142894765691756718135148101967856924264551676767656928641572629721407652517856934336471985176569394476178736170830636582610878569424411307656949103207411701311170132571051785695311396593765695117915171665166321513276747785696650437207968723176569610827747575106865390321906447856973116899327756974289329661027856982188217756982351768785699572269317896775699224175378570037244657357757002551989785701442416532056775701238189378570257743213116089377570229216927857033129660517757033951797178570421311237757043207536927857052605105775705350913078278570621118877570636831427087857076724371037962363177570735906770878570857290222902177570839013217087857091061395156313291084710385392027757093434564178571014100137329357519032556311711432451565677571022318678571194420741170131117013987750775711523156412264778571216604470500113321522054441281116056313774106252775712388276646795713213015667757133128105717957142360798775714389256754079571527150977571533762307707957162163675775716388276646795717224275877571751055190840717957183320683567757184120501902397957192321878775719318630441795720395766138775720339224043579572129763007757213882766467957225325903405320277572245021032153717957234855101271703775723245530795724586622570245013877572476825128813422779616079572542421515172775725388276646795726330445782775726611787510414119779572741165224223577572763721031710930411977957286252354420761701775728668901070379703179572951019564064170877572944417026505779573064375141503521077573033704747679573141390222414677573138827664679573232634728777573242253156706795733217680277573341516757663779573431502075407757343882766467957352145588775735513422423156706795736414226252211775736517034907113179573758483710166138677573738827664679573869201203077509051775738514296190631517957396591424173130549277573937718111879574031531263507757406596510437651657795741481581076131677574142497077052795742419750761038775742388276646795743432357968047757435339111171923577957442268737757443882766467957453258905127757456356312987514070879574642638641478277574638827664679574751404119313305677574741628152293795748422012092615785748428932966102795749310199012278574925671107957503965570778575031051841207957514881592131785751412069545741795752952120221712071816819048785752226651795753488158913178575332665154079575453076216712017778575445110321537179575549279045113078575524137379575635022224178575621984779575759179099045192785757346415616079575898157385325497027256116785758394101160805759245213278575934122871608057603152195178576043101332461198057614471352444778576131626516080576249616859307785762550851832901458057633152190427857634460117883805764350435531785764219346080576544732130477857655552712315651805766415034904878576669293732790740568057672920177857674135511428948057683445125531785768426455167676805769313255751785769433647198518057703925311170785770244113080577133051789078577131139659380577222594017857726504372079687231805773234527785773311689932805774240726178577421882180577543064119353078577557226931789680577647353201190785776372446573580577743897351449078577744241653205680577832751335407857785774321311608938057793388447540785779312966051805780455631170254078578021311238057815246419107151785781260510580578241254119312707857822111888057834938214552785783672437103796236318057844401103255154078578457290222902180578531196584785785106139515631329108471038539202805786290912978578614100137329357519032556311711432451565680578726874807857879442074117013111701398775080578821033129785788166044705001133215220544412811160563137741062528057892101177957894289329661028057903258905127957902130156680579137274147827957912360798805792561690281290567957922715098057932245279579321636758057942735127957942242758805795610753517661352518079579533206835680579633857662079579623218788057972100783479579739576613880579841207116766267957982976300805799270571179579953259034053202805800431933645677958004855101271703815801362643170279580158662257024501388158023675130708795802424215151728158033670677087958033304457828158043509602708795804411652242235815805390835170879580562523544207617018158063663242708795806510195640641708815807341622770879580764375141503521081580835001027087958084139022241468158093930752137958093263472878158103950209708795810217680281581137291427087958113150207540815812373092708795812214558881581335188970879581341422625221181581441409411905407958145848371016613868158153743201111795815692012030775090518158162161241795816659142417313054928158173260702107795817315312635081581835907021377958184815810761316815819427029616656795819419750761038815820612060171012411171079582043235796804815821310154012079582122687381582231511614779582232589051281582341332142061407958234263864147828158245912104311011477958245140411931330568158255253370138114779582542201209261581582621163141795826310199012281582752619203211517958273965570781582856205115031112079582848815921318158298232202663215132767477958299521202217120718168190488258303740142702795830488158913182583131551807087958315307621671201778258323683242708795832492790451130825833311723397087958333502222418258345120754441190540795834591790990451928258357301224122041193171179583598157385325497027256116825836420416775074180583642893296610282583762423114130111908058372452132825838497117832518058383152195182583931079170578058394471352444782584024832628058404961685930782584136364120680584131521904282584241701204355180584235043553182584346112031557805843447321304782584439556192805844415034904882584541075126454780584529201782584659556412264780584634451255318258476955641226415408058473132557518258489657662783212201904903156805848392531117083584923294680584933051789083585066121421104597027918058502259401835851592611471027088058512345278358525674966796032805852240726183585321020868058534306411935308358545232232142156568058544735320119083585561231203154235151805855438973514490835856412341226478058563275133540835857238642380585733884475408358583882766468058584556311702540835859495587887918058595246419107151835860755151450327732478058604125411931270835861712828113146311584070280586149382145528358628148784118311025132518058624401103255154083586361457662471209651805863311965848358644921579654080586429091298358657117875107417061415408058652687480835866617012043542351518058662103312983586741664122647805867210117835868238642380586832589051283586924293248058693727414782835870417012043551805870561690281290568358713121626311080587122452835872520110556590750805872273512835873410863189022680587361075351766135251808358746718711750961201046805874338576620835875356090628058752100783483587644298512131805876412071167662683587788949879190782517915180587727057118358784151447247708805878431933645678358796165190814119070881587942893296610283588069175251138252708815880362643170283588141049155298478158813675130708835882689433290987911678158823670677088358833121626311081588335096027088358846246784133250835815884390835170884588538511427028158853663242708845886351423811578158863416227708845887344410327088158873500102708845888414369641537815888393075213845889351423811578158893950209708845890926633222413371193171181589037291427088458915117428417901228158913730927088458924281728122681589235188970884589345074141198815893414094119054084589461110217428417904881589437432011118458953709902268158952161241845896234114681589632607021078458975507419071568158973590702137845898522480519505681589842702961665684589963037712075142815899612060171012411171084590035132011118159003101540120845901316647107815901315116147845902356170237781590241332142061408459034111120112702815903591210431101147845904416231751218159045253370138114784590561333138215531070881590521163141845906478830779132815906526192032115184590741424314172815907562051150311120845908381775627815908823220266321513276747845909918612102047556115398791328259094289329661028559103242110114882591037401427028559112157938259113155180708855912236131682591236832427088559133646102530825913311723397088559143147110128282591451207544411905408559154180116457018259157301224122041193171185591663152292464111051825916420416775074185591799312568113513213519747825917624231141301119085591810319320501107210385399035741825918497117832518559191434977381987731554257054057422753779151825919310791705785592014263124750288814906134547556115398791518259202483262855921434822231151825921363641206855922410026115682592241701204355185592335113171782592346112031557855924388601706825924395561928559253224711818259254107512645478559264945224223582592659556412264785592725564068259276955641226415408559285113290307791328259289657662783212201904903156855929467262907283592942893296610285593045735111328359302329468559313103444908359316612142110459702791865932234714883593259261147102708865933434141226478359335674966796032865934263412483593421020868659356989116711905051835935523223214215656865936473080193127083593661231203154235151865937418551907308359374123412264786593856501536290813835938238642386593943352781105683593938827664686594035024425683594049558788791865941634137111903512183594175515145032773247865942330411011488359427128281131463115840702865943319511011038835943814878411831102513251865944320016656835944614576624712096518659453751147835945492157965408659463351009683594671178751074170614154086594723541835947617012043542351518659484221121392155835948416641226478759494142222101708359492386423875950315673074183595024293248759513993047478359514170120435518759523351804747835952312162631108759533251511188835953520110556590750875954352011144083595441086318902268759559700472391505666311413283595567187117509612010468759562340346835956356090628759574961600511000835957442985121318759583920909908359588894987919078251791518759592442477835959415144724770887596042632821407418359606165190814119070887596163837964563154083596169175251138252708875962443790119104835962410491552984787596342102071019268359636894332909879116787596449655116232835964312162631108759653119810843835965624678413325083587596657820912070651845966428932966102875967312225917884596738511427028859684134752242235845968351423811578859693976766208459693444103270888597021481468459704143696415378859713642525308459713514238115788597246613090570845972926633222413371193171188597361080903212075100845973511742841790122885974679901070371603184597442817281226885975316676620845975450741411988859762101617684597661110217428417904888597731165890845977370990226885978410469657031845978234114688597932191309684597955074190715688598034014609684598052248051950568859812927368459816303771207514288598223013978459823513201111885983210532268459833166471078859846113011064411216112845984356170237788598547501101424784598541111201127028859864542110674784598641623175121885987447711010324784598761333138215531070888598849604519210008459884788307791328859893351155490845989414243141728859904306446903284599038177562788599142548046686784599191861210204755611539879132885992359925185599242893296610288599341161615154085599332421101148895994132085599421579389599525707785599523613168959962643487855996364610253089599732707021078559973147110128289599862117402007509035855998418011645701895999677222180110600718559996315229246411105189600031461101241856000993125681135132135197478960016689057674070441856001103193205011072103853990357418960025449211379155685600214349773819877315542570540574227537791518960033443710412856003142631247502888149061345475561153987915189600446890101679185600443482223115189600531769680885600541002611568960065773752221551728560063511317178960073398222518560073886017068960081131121222617134620743941702193122856008322471181896009101072122263121153844394170248856009494522422358960105491716313251856010255640689601152111201101265378560115113290307791328960124715211325138560124672629072896013444111024728560134573511132896014625251032424702518560143103444908960155171171127222208660154289329661028960169961356719313307661007662986601623471488960175459544500111468660174341412264789601851377878231846866018263412489601941361261637866019698911671190505189602041852214171186602047308019312708960215105510162224128486602141855190730896022387907258660225650153629081389602324636518660234335278110569060244677082013186602435024425690602546770838457866025634137111903512190602634047478660263304110114890602752690193781134866027319511011038906028613115314805181866028320016656906029437724561468660293751147906030513215705181866030335100969060314190351537186603123541906032284614886603242211213921559060332148818760334289329661029060343208549111876034414222210170906035420841226478760353156730741906036230710087603639930474790603761107710569012178760373351804747906038334770146187603832515111889060394647701181787603935201114409060409326510325510987919071540876040970047239150566631141329060413176102678760412340346906042641710245465307797876042496160051100090604331452511558760433920909909160442821437876044244247791604534377023778760454263282140741916046340702293876046638379645631540916047313177021078760474437901191049160483594714887604842102071019269160493244710388760494965511623291605037347196876050311981084391605135192951628760515782091207065191605243490119104876052312225917891605347190603110886053428932966102916054310245501122886054413475224223591605534086237018860553976766209160567183661566629675211886056214814691605771537992471551684628138860573642525309160583179691378860584661309057092605931320702107886059610809032120751009260603443702293886060679901070371603192606145989517304788606131667662092606237402005188606221016176926063451790901228860633116589092606421612008860644104696570319260652340465886065321913096926066415276329048886066340146096926067216172888606729273692606824004658860682301397926069661470276125107047886069210532269260703791615188607061130110644112161129260714848668157886071475011014247926072313402521491886072454211067479260734442321373188607344771101032479260743452722741886074496045192100092607525421378860753351155490926076444776426741886076430644690329260776420165901294347886077425480466867926078514220714141432886078359925192607921020182886079411616151540936080185589608042893296610293608137370210789608113209360825140472221004189608225707793608357890508108728960832643487936084414902221191828960843270702107936085497461377189608562117402007509035936086399832398960866772221801106007193608731141112398960873146110124193608847051114911228960886689057674070441936089465511113248896089544921137915569360904592222167488960903443710412946091431450558718960914689010167919460923233140933896092317696808946093311259517418960935773752221551729460943940504078960943398222519460954271361110131896095113112122261713462074394170219312294609642713611105189609610107212226312115384439417024894609732231680782896097549171631325194609831283222478960985211120110126537956099251049789609947152113251395610021802218961004441110247295610131326771289610162525103242470251956102655611990193781134896102517117112722220956103423117126454089610399613567193133076610076629956104918612102041555611539879132896104545954450011146956105497767521218961055137787823184695610641607166101896106413612616379661075730741222103302896107418522141711966108420090193730896108510551016222412849661093292228302896109387907259661103203140741896110246365196611151507041193140906111428932966102966112410591935151906112467708201319661133152120651906113467708384579661144314222415190611434047479661153757416129061155269019378113496611631307027790611661311531480518196611755011071516129061174377245614696611835492417906118513215705181966119445272251612906119419035153719661205220665315071906120284614896612161892914657090519061212148819661223625728156906122320854911196612327019490612342084122647966124210618490612423071009661255709744843151906125611077105690121797612653357590144529061263347701461976127533575412264790612746477011817976128650511190810335759061289326510325510987919071540976129924150902477539625113748790612931761026797613053141494181513190613064171024546530779798613112988564182506574543690307791807090613131452511559861326259179446669029691613242893296610298613331554229691613328214379861341198459417690324544147917804791613434377023779861351618664756644291571731499535820661233224847916135340702293986136162485004567966959825190657454369030779151916136313177021079861379248810456756115398791519161373594714898613821207910120750125101316566101089669528881490613124454247124629161383244710389961394811032474702916139373471969961403638103212109161403519295162996141436411931379161414349011910499614238109127669161424719060311099614343625222539161433102455011229961446187247110314230476691614434086237019961456215811905671150170916145718366156662967521199614662155019056711509691614671537992471551684628131006147281152391614731796913710061482113768926148428932966102100614921011762926149313207021071006150322178319261503443702293100615131147205926151459895173047100615241102371935192615237402005110061534349750110629261534517909012210061544348841406292615421612001006155733990417727021501129261552340465100615643319041134926156415276329048100615758427664724751926157216172810161581407926158240046510161592407419261596614702761251070471016160440741226479261603791615110161615107963214286569261614848668157101616245071766748292616231340252149110161634119103090122926163444232137311016164410163859091926164345272274110161654119108090489261652542137101616622712692616644477642674110161674204122647926167642016590129434710161682642519261685142207141414321026169211529792616921020182102617033746474189361704289329661021026171359614651936171185510261724596146515409361723737021071026173520114059636519361735140472221004110261742926869361745789050810872102617542011306925409361754149022211918210261765201120766571540936176497461377110361771397936177399832391036178486012019351936178311411123910361799325510141510561153987913293617947051114911221046180482578046936180465511113248104618148972113741936181459222216748104618246407651809461824289329661021046183493908425194618343145055871104618449341226479461843233140933104618531866625194618531125951741104618641311105094419461863940504071046187314515557946187427136111013110461883931149094618842713611105110561897151104222180110600719461893223168078210561905127090791137194619031283222471056191446220155297956191428932966102105619241039021969595619225104971056193397260228956193218022110661942610152956194313267712106619542177422431679561956556119901937811341066196444370620220395619642311712645401066197768690142799016574195619791861210204155561153987913210761984977327416129561984977675212110761994491847418309561994160716610110762005211120110818379662004289329661021076201228012696620157307412221033021076202512256612045791966202420090193730107620332774579196620332922283021076204219823296620432031407411086205375716152966205515070411931401086206326525220096620641059193515110862074634113815196620731521206511096208438817111309662084314222415110962094532417731966209375741612109621057741133491379662103130702771096211551641775237966211550110715161210962125774113349137966212354924171096213464461249096621344527225161211062145525663401470296621452206653150711106215792666490700142617966215618929146570905111062167410715617522225415096621636257281561116217540837131580296621727019411162186824776125106141966218210618411162194371101252200966219570974484315111162203508465397622042893296610211162215104904023909762215335759014452112622241366111309762225335754122647112622321656697622365051119081033575112622445076447097622492415090247753962511374871126225513107358076976225531414941815131113622642412047771309862264289329661021136227473041500909862271298856418250657454369030779180701136228510870211615009698622862591794466690296113622952059010635009698622931554229611362305727027350096986230119845941769032454414791780471146231414220477713098623116186647566442915717314995358206612332248471146232214290986232162485004567966959825190657454369030779151114623321423698623392488104567561153987915111462344742164500909862342120791012075012510131656610108966952888149061312445424712462114623551423009014274199623542893296610211462363148899099623648110324747021142893296610299623736381032121012423220265839962384364119313713228932999623938109127661439556919962404362522253154640381263299624161872471103142304766163681331619962426215811905671150170179922371551879121015556179130099624362155019056711509628171100624442893296610229766019952123145475010062452811523210829640387157222104516279110062462113768211122224584515290884761884316279710062472101176221282454573247901911067100624832217831213111623113957041139715577307791511006249311472052141210207738113123391162151161831106610401006250411023719351215111984547832956892146901429610062514349750110622161063647236327404798797667411006252434884140622171278878438177381104166137104018390100625373399041772702150112218112241089213810329055131751407081006254433190411342197636311062714596321006255584276647247512201920631106187459632187916114713814291619875140708101625642893296610222116578108921705213842541637708921389879113770810162571407222718111159010547492661016258240741223115097847104961012152897908791671016259440741226472241735831137190671303667074941121215125257174159061510162605107963214286562256339311251206213010162614507176674822261939467724779082989079790209169308280137195142901227101626241191030901222272531432050110665134521773766311421481559717089534775812913396993333510162634101638590912281295619019290797790741262841421711101626441191080904822923596497616551011190308117290788451142909463148582103290103741101626522712623020255510516660903808857590273488127110138812129051057101626642041226472311342147525414212244128258858786587701311016267264251232346919651259189681749741413290358741706138308745909631491288814906134547551561153987915081026268428932966102233393323278404773173573178405717086620674228230779148247901395628698791122192121883415711012514983166511026269211529723420948456710329021613651766241412516567690667910167911026270337464741823513729465409854052054016044951668756110102627135961465123619150320521750813220214241477540124103290419073074111102627245961465154023728596314114161131502207412011486176961549096504138725103290104611662221317071026273520114059636512381525551051521141292111371101115540561434514610262742926862391210918145171591413281140311411381026275420113069254024023916510474624114710385391012141619013171131159991511591084511131102627652011207665715402411339290776891310332154757516618170710362774289329661022421910629055753971070337751518120596578942451131451118710362781397243196841517800103290968090293224187957281930126401164103627948601201935124411289440115611548349120790456201036280932551014151056115398791322451713145371556861112047217019100531122124962418110462814289329661022461069196452821026746573530779710462824825780462471434428141879110017056144157092831262111046283489721137412481863728171591424130737730137483371707123548843104104628446407651802498596497139873751394993710462854939084251250738211030464414157164104628649341226472511065611245488649725157223514269810462873186662512528106211032267631633256041046288413111050944125383304610224717796101679110462893145155572541223211013706717056144157092831262111046290393114902551940645371049613163745696142373211901201904203157514105629142893296610225618102026290437909618155012477680476232406319017470710562927151104222180110600712571016064974063113582552416243170710562935127090791137125812102749781901342141540753331161327071056294446220155297259897619075076901802075401056295410390219695260786519046845411646270710562963972602282612728944011561704832731249081079025161827341495134176425114101111461118111613170710662974289329661022621516064972971841213662604185014680116115707071066298261015226379761905067690683540106629942177422431672641810362367810610274741841422905714312117014511121701017106630044437062022032652024913768190133022149683664812057505189613734671064218170710663017686901427990165741266183067843142902119777911102197514074112101379777911161076302428932966102267282441032909773766307905165758711250140104131575952958142421831003261181116631707107630349773274161226860540841674375013912121536026641436678987506690180426212766155140853141901313312481011743651174195313113414613862313890103285281818132228115519120110342801161157070710763044491847418302692413145371556863724712424915513014683293689190200388177979879151107630552111201108183727015956190954193411352241130724624640771113527071076306228012627113952905406591706691014775076908865401076307512256612045791272127313098375261493901504827915801401076308327745791273966010277164730627110224010763092198232274201309077516877713119215213830711175131166511811161317071086310428932966102275237024126875062127222371081313075714656131154181722228175138108631137571615227618124266092251381307571465613192418172222817513810863123265252200277175356631151581617083335115418172222817513810863134634113815127824246324780214141382138963153117573957037103211107663130757146561311096314428932966102279109165104184372967271919707071096315438817111302801165619041728648766387708801014261109631645324177312813759611111136647669159026719657829589351071965728895693712489057171305726895750769019856054010963175774113349137282192065121141769035954066912361353907111090113516561096318551641775237283236561122621247118170664884310141388724191763170892138987911377081096319577411334913728492164732641150665120638109632046446124902851110163245571023245420631107141110632142893296610228624148817552708228175126171591794766124907062025407245448882012611063225525663401470228723596314166110592418466720160806612421411301295332282551801441106323792666490700142617288136919645282102147103474258582904211063247410715617522225415028910691964589102675611539879711163254289329661022902911664971501713288654064414157164119171149218498343716121140663253231312626511352707111632654083713158022911576549794154027590251125937115616317111352707111632768247761251061412924959611111136647804305412701876296559061732150750190902112187476245487463385017028817536272477571685741551562260901503911265251986524915401116328437110125220029313406453780416577011183996559087916711163293508465329428986397116247111232514213143296741721952167749429053150468323819024745411646214011163305104904023902951016241251347661953211101891441126331428932966102296263921106623573073574159151307791110101413290841557123466124904235977112633241366111302972710577342718021101804100829032190110915906697511013668843317512367908113112633321656629830196510511329066749861501301557123513917222433721618843146138668843987514070811263344507644702991110274978190134214154049611674140112633551310735807621002719651051162731111313034713418390516227221138184113522411307246246407711135270711363364289329661022101172555105147757714260907266612483723690471511301136337424120477713021029106415072705444385118611363384730415009021032520643302723205180490771147115111320365820528791962411014229953811363395108702116150096210418256518252962712356675315211092136275817190130113634052059010635009621051242180661311072513015126581719011363415727027350096210610328328310474634126113914011463424289329661022107101623176632135390757808798114634341422047771302108222063111611562176642345441479190390752155712346612490296597711463442142902109742067836236750741108731908379035419071201471402553710554161266753321390710634547272816274464113668670011153510892147418139020147653612371811108847299142206307411106191300471919011041183641486114634521423621101220678368106612490583514989642114634647421645009021111381773427184120214932254331987911711114634751423009014274121122510519417067232190655110072262908109017097516513745436903077912041114634831488990”

4.2.5 Overall probability of all the key coding based evidences with only letters information

Considering all the presented and considered key coding based evidences with letters information, we have 18 trials and 8 successes so far. Probability of observing them by chance alone can be approximated as follows:

tmp1 <- key_codings_success_nums-key_codings_success_nums_NoLetter
tmp2 <- key_codings_tested_nums-key_codings_tested_nums_NoLetter

tmp <-binom.test( (tmp1), 
                 (tmp2), p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", tmp1,
            "successes out of", tmp2 ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 8 successes out of 18 (with p=1/19) is: 1.60e-06"

To see a more conservative probability, I will again double the total number of trials and keep the successes the same and see the overall probability in such a case:

tmp <-binom.test( (tmp1), 
                 (2*tmp2), p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", tmp1,
            "successes out of", 2*tmp2 ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 8 successes out of 36 (with p=1/19) is: 4.72e-04"

4.3 Final probability of all the key coding based evidences

Considering all the presented and considered key coding based evidences in the main chapter, we have 34 trials and 16 successes so far. Probability of observing them by chance alone can be approximated as follows:

tmp <-binom.test( (key_codings_success_nums), 
                 (key_codings_tested_nums), p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", key_codings_success_nums,
            "successes out of", key_codings_tested_nums ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 16 successes out of 34 (with p=1/19) is: 3.07e-12"

To see a more conservative probability, I will again double the total number of trials and keep the successes the same and see the overall probability in such a case:

tmp <-binom.test( (key_codings_success_nums), 
                 (2*key_codings_tested_nums), p = (1/19),
                 alternative = c("greater"))
tmp <- formatC(tmp$p.value, format = "e", digits = 2)
print(paste("The probability of", key_codings_success_nums,
            "successes out of", 2*key_codings_tested_nums ,
            "(with p=1/19) is:", tmp))
## [1] "The probability of 16 successes out of 68 (with p=1/19) is: 3.68e-07"

Now, I will add these trials and successes so far we observed in this main chapter on key coding patterns based 19 System to the global counters for overall system probability calculations in the end of the book.

global_tested_nums <- global_tested_nums + key_codings_tested_nums
global_success_nums <- global_success_nums + key_codings_success_nums

4.4 Relevant Verse Meanings and their key codes

In this chapter, I will share some of the interesting verses from Quran, which are likely to be associated with the 19 system we witness over the text of Quran. Because their meanings remind also the 19 System, maybe as addition to their core understood meanings.

4.4.1 Verse 83:20 Numbered book?

Chapter 83 and verse 20 might potentially be referring to a mathematical system in the book but it is not directly clear when first read from the classical translations. Therefore I will share it in Arabic first, then its transliteration and one of the classical translations and a direct independent computer translation using Google Translate.

83:20 كِتَـٰبٌۭ مَّرْقُومٌۭ

As we see, in its original Arabic text, this a two words and simple looking verse. Let me share its transliteration to make the words clear:

83:20 Kitabun marqoom

As we see the first word is Kitabun, which means “a book”. The second word should be looked more carefully to be able consider its potential other meanings too as it has multiple meanings.

Here is a classical translation from of Dr.Ghali from quran.com:

83:20 (It is) a Book imprinted,

83:21 witnessed by those nearest ˹to Allah˺.

As we see the word “marqoom” is translated as “imprinted”. The others also have similar translations in that site.

However, there are some people who translates this word in question, “marqoom”, as “numbered” as well. In fact, when I paste the verse “كِتَـٰبٌۭ مَّرْقُومٌۭ” in to Google Translate, it returned the following translation:

“Numbered book”

So, computer automatically translated the word in question as “numbered”. I then asked the AGI of Google, Google BARD, the question that made the issue more clear (on 11/22/2023).

My question: “What is the root word of مَّرْقُومٌۭ and what meaning does it have in order ?”

BARD answer between triple quotes:

“““

The root word of مَّرْقُومٌۭ (marqūm) is رَقَمَ (raqama), which has a broad range of meanings related to marking, writing, and inscribing. Here’s a breakdown of the root word and its significance:

Root Word: رَقَمَ (raqama)

Meaning:

  • To mark, to write, to inscribe
  • To stamp, to impress
  • To brand, to label
  • To sign, to seal
  • To number, to enumerate

Significance in the Word مَّرْقُومٌۭ (marqūm):

The passive participle مَّرْقُومٌۭ (marqūm) is derived from the root word رَقَمَ (raqama), capturing the essence of being marked, written, or inscribed. This reflects the underlying meaning of the root word, which encompasses various forms of marking and recording information.

In essence, the root word رَقَمَ (raqama) provides the foundation for understanding the meaning and usage of the word مَّرْقُومٌۭ (marqūm). It highlights the act of leaving a mark or impression, whether through writing, inscribing, or otherwise.

“““

So, as we see the root word R-Q-M has also meaning “To number, to enumerate”.

Therefore, it is also possible that the translation of the verse 83:20 be in the meaning like “a numbered book”. God knows best and I am just trying to write what I understand from what I read as someone who does not know Arabic. So, feel free to do you own research too if you have doubts. However, there are already translators who translate with this “numbered” meaning. For example famous Turkish scholar Yaşar N. Öztürk has the following translation for the verse. In the original Turkish, he translates as “Rakamlanmış bir kitaptır o.” and I translate it to English as “a numbered book, it.”. My research also confirms their alternative translations. So, I will also consider this second meaning and understand that the verse in question might also be referring to “a numbered book” and so tried to see if there is any clear 19 based key coding in it that might also exist in the full text of Quran. Then I observed two clear 19 based key codings that exist over this verse and also in the full text of Quran as will be describe below.

The natural numbers of this verse is as follows.

It is chapter 83, verse 20, the number of words and letters are 2 and 9, respectively.

  • Chapter: 83
  • Verse: 20
  • Words: 2
  • Letters: 9

First key code of the verse 83:20:

When we concatenate those numbers in their natural order we get this coding number, which. is multiple of 19:

[chapter index | verse index | number of words | number of letters]

832029

As you might recall from previously presented evidence, Evidence 4.2.2.1, this same key coding pattern also exist over the full text of Quran with the verse level data (in all 6348 verses), which I referred to as the rewriting coding pattern. Moreover, this same key coding pattern also exist in chapter level data (in 6236 numbered verses) as presented in Evidence 4.2.2.2. So, this might mean that in the verse where the book is defined as “numbered”, we might also be seeing an example of how it is being numbered by seeing its key coding coding over the text of that particular verse itself.

Second key code of the verse 83:20:

Let’s sum the 4 of the natural numbers of the text of verse 83:20.

chapter index + verse index + number of words + number of letters

83 + 20 + 2 + 9 = 114!

As we see there is a clear 19 based coding relation with the sum of all its 4 natural numbers. The sum resulting number 114 is not only multiple of 19 but there are also 114 chapters in Quran. This seems like a more clear sign that might point to the 19 System of the text of Quran we observe. So, again, this might mean that in the verse where the book is defined as “numbered”, we might also be seeing an example of haw it is being numbered by seeing its key coding coding over the text of that particular verse itself.

Also, when we consider this observed coding in this verse as a key coding pattern, then we would expect it to exist over the full text of Quran too. In fact, we observed it in Evidence 4.2.3.1, where we use the exact same key coding pattern and rewrite the full text of Quran and the resulting big coding number is also multiple of 19. Moreover, I already presented in the chapter of Evidence 4.2.3.1 that the sum of the number of chapters, verses, words and letters is 417544 and it was used as the key coding pattern of Evidence 4.2.3.1. The same key coding pattern also observed in the verse 83:20 as I just presented. This fact further supports this key coding pattern and make it more important key coding pattern that exist over the full text of Quran.

So, as we witnessed, the two key coding patterns of this special verse, 83:20, I considered relevant to 19 System of the text of Quran, also exist in the full text of Quran too. It is as if we see in this special verse how the book was numbered.

Having said that, there are many other mathematical miracles in the text of Quran and the verse might also refer them as well. Thus, we might have witnessed just one aspect of this verse and it is not necessarily have to be the only interpretation as there might be layers of truth.

One final note on the verse 83:20 is that the same exact verse also appears in the verse 83:9. However, that book is for the “deniers” or “non-believers” as clear from the neighboring verses. For example the following verse 83:10 is this: 83:10 “Woe on that day to the deniers,”. So, we only observe the key coding patterns of 19 in the verse 83:20 where the book is mentioned for believers. The following verse of 83:20 is this: 83:21 “witnessed by those nearest ˹to Allah˺.”.

4.4.2 Verse 10:38

Because of its meaning, chapter 10 and verse 38 might potentially be referring to a mathematical system in the book and presenting the coding patterns of the text in its verse. Let’s first see the translation of this verse.

10:38 Or do they say, ‘He has devised it’? Say, ‘Then produce a sura like it, and call on anyone you can beside God if you are telling the truth.’

As we see in this verse there is a challenge to disbelievers who claim Prophet Muhammed made it up. The challenge in this verse is to produce a chapter like it.

So the question is what might be the attributes of the chapter. The verse number is 38 (19x2) and it is small sign that take our attention the potential 19 System of the text. Therefore, I looked at the natural text numbers of the verse and witnessed two clear 19 coding patterns that we had already witnessed the exact same coding patterns in the one chapter Al-Fatiha, where I presented the key coding patterns from the chapter Al-Fatiha and witnessed that the same coding patterns are also exist in the full text of Quran. Hence I had categorized that as part of the Main 19 System. See Evidence 4.1.2.3 and Evidence 4.1.2.6 for details. Below are the key coding patterns in this challenge verse.

Key coding pattern 1 in the verse 10:38: Chapter 10, verse 38 has 16 words. When concatenated we get 103816 coding number and it is multiple of 19. The exact key coding pattern also exist in the first chapter of Quran, Al-Fatiha, and also in the full text of Quran as presented in Evidence 4.1.2.3. As a side not, the remaining of 103816 after dividing to 19 is 5464 and the digit sum of 5464 is also exactly 19.

We also observe the exact same key coding pattern in chapter 11 verse 17, which has 39 words. When concatenated we get 111739 coding number and it is multiple of 19.

11:17 Can they be compared to those who have clear proof from their Lord, recited by a witness from Him, and before it the Book of Moses, as a guide and mercy? These people believe in it, whereas those groups that deny its truth are promised the Fire. So have no doubt about it [Prophet]: it is the Truth from your Lord, though most people do not believe so.

Key coding pattern 2 in the verse 10:38: The digit sum of the coding number 103816 is also exactly 19 (1+0+3+8+1+6=19). The exact key coding pattern also exist in the first chapter of Quran, Al-Fatiha, and also in the full text of Quran as presented in Evidence 4.1.2.6.

Then the question is, can the challenge be to bring up a chapter like Al-Fatihah, from which we observe key coding patterns and observe all of them in the full text of Quran too?

References

“Good Calculators.” 2019. 2019. https://goodcalculators.com/big-number-calculator/.
Lucas, Antoine, Immanuel Scholz, Rainer Boehme, Sylvain Jasson, and Martin Maechler. 2019. Gmp: Multiple Precision Arithmetic. https://CRAN.R-project.org/package=gmp.
Saleem, Shehzad. 2018. History of the Quran- a Concise Study. Al-Mawrid.