diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 21a2ddbe..00000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitignore b/.gitignore index 28fc1c56..e2af64a2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ *.o *.exe .idea +.DS_Store #Jupyter Notebook checkpoints .ipynb_checkpoints +node_modules diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..20065ec1 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "arrowParens": "avoid", + "singleQuote": false, + "semi": true, + "printWidth": 120, + "useTabs": false, + "tabWidth": 4 +} diff --git a/Algorithms/Array/LPS_O(n) b/Algorithms/Array/LPS_O(n) new file mode 100644 index 00000000..28473ed5 --- /dev/null +++ b/Algorithms/Array/LPS_O(n) @@ -0,0 +1,54 @@ +//Returns Longest Palindrome Subsequence length. +//Time Complexity O(n). +int LPSManchers(string input) { + char forOddPalindrome = '-'; + //Uncomment the next line for odd length palindromes only. + //forOddPalindrome = '$'; + + string newInput = "$"; + for(int i = 0; i < input.length(); i++) { + newInput += input[i]; + newInput += '$'; + } + input = newInput; + + int length = input.length(); + int T[length]; + for(int i = 0; i < length; i++) { + T[i] = 0; + } + int start = 0; + int end = 0; + for(int i = 0; i < length; ) { + while((start > 0) && (end < length - 1) && (input[start-1] == input[end+1])) { + start--; + end++; + } + T[i] = end - start + 1; + if(end == length - 1) { + break; + } + int newCenter = end + (i%2 == 0 ? 1 : 0); + for(int j = i + 1; j <= end; j++) { + T[j] = min(T[i - (j - i)], 2 * (end - j) + 1); + if(j + T[i - (j - i)]/2 == end) { + newCenter = j; + break; + } + } + i = newCenter; + end = i + T[i]/2; + start = i - T[i]/2; + } + int max = INT_MIN; + for(int i = 0; i < length; i++) { + if(input[i] != forOddPalindrome) { + int val; + val = T[i]/2; + if(max < val) { + max = val; + } + } + } + return max; +} diff --git a/Algorithms/Array/fps_O(n) b/Algorithms/Array/fps_O(n) new file mode 100644 index 00000000..28473ed5 --- /dev/null +++ b/Algorithms/Array/fps_O(n) @@ -0,0 +1,54 @@ +//Returns Longest Palindrome Subsequence length. +//Time Complexity O(n). +int LPSManchers(string input) { + char forOddPalindrome = '-'; + //Uncomment the next line for odd length palindromes only. + //forOddPalindrome = '$'; + + string newInput = "$"; + for(int i = 0; i < input.length(); i++) { + newInput += input[i]; + newInput += '$'; + } + input = newInput; + + int length = input.length(); + int T[length]; + for(int i = 0; i < length; i++) { + T[i] = 0; + } + int start = 0; + int end = 0; + for(int i = 0; i < length; ) { + while((start > 0) && (end < length - 1) && (input[start-1] == input[end+1])) { + start--; + end++; + } + T[i] = end - start + 1; + if(end == length - 1) { + break; + } + int newCenter = end + (i%2 == 0 ? 1 : 0); + for(int j = i + 1; j <= end; j++) { + T[j] = min(T[i - (j - i)], 2 * (end - j) + 1); + if(j + T[i - (j - i)]/2 == end) { + newCenter = j; + break; + } + } + i = newCenter; + end = i + T[i]/2; + start = i - T[i]/2; + } + int max = INT_MIN; + for(int i = 0; i < length; i++) { + if(input[i] != forOddPalindrome) { + int val; + val = T[i]/2; + if(max < val) { + max = val; + } + } + } + return max; +} diff --git a/Algorithms/Array/moore.cpp b/Algorithms/Array/moore.cpp new file mode 100644 index 00000000..b6233cc5 --- /dev/null +++ b/Algorithms/Array/moore.cpp @@ -0,0 +1,43 @@ +#include +#include +#include +#include + +using namespace std; + + + +main() +{ + int n,i=0; + cin>>n; + int arr[100]; + while(i>arr[i]; + i++; + } +int ele=arr[0],count=0,flag=0; + for(i=0;in/2)cout<<"majority element is "< +#include +#include +#include + +using namespace std; + +int hello() +{ + vectorarr(100); + int n; + cin>>n; + for(int i=0;i>arr[i]; + } + int target; + cin>>target; + int low=0,high=n-1; + while(low<=high) + { + int mid=low+(high-low)/2; + if(arr[mid]==target)return mid; + if(arr[mid]>=arr[low]) + { + if(target>=arr[low]&&targetarr[mid]&&target<=arr[high]) + low=mid+1; + else + high=mid-1; + } + } + +} + +main() +{ + cout< +#include + +int main(){ + int n, i, j, c, i1, j1; + scanf("%d", &n); + int a[n][n]; + int count[n]; + int k = sqrt(n); + int not_row, not_col, not_box, not_sudoku = 0; + for(i = 0; i < n; i++) + for(j = 0; j < n; j++) + scanf("%d", &a[i][j]); + for(i = 0; i < n; i++){ + for(c = 0; c < n; c++) + count[c] = 0; + not_row = 0; + for(j = 0; j < n; j++){ + if((a[i][j] > n) || (a[i][j] < 1)) + not_row = 1; + else + count[a[i][j] - 1]++; + } + for(c = 0; c < n; c++) + if (count[c] > 1 || count[c] == 0) + not_row = 1; + if(not_row){ + printf("Row %d is invalid\n", i+1); + not_sudoku = 1; + } + } + + for(i = 0; i < n; i++){ + for(c = 0; c < n; c++) + count[c] = 0; + not_col = 0; + for(j = 0; j < n; j++){ + if(a[j][i] > n || a[j][i] < 1) + not_col = 1; + else + count[a[j][i]-1]++; + } + for(c = 0; c < n; c++) + if(count[c] > 1 || count[c] == 0) + not_col = 1; + if(not_col){ + printf("Column %d is invalid\n", i+1); + not_sudoku = 1; + } + } + + int box_number = 0; + for(i = 0; i + k - 1 < n; i += k){ + for(j = 0; j + k - 1 < n; j += k){ + not_box = 0; + box_number++; + for(c = 0; c < n; c++) + count[c] = 0; + for(i1 = 0; i1 < k; i1++){ + for(j1 = 0; j1 < k; j1++){ + if (a[i+i1][j+j1] > n || a[i+i1][j+j1] < 1) + not_box = 1; + count[a[i+i1][j+j1]-1]++; + } + } + for(c = 0; c < n; c++) + if(count[c] > 1 || count[c] == 0) + not_box = 1; + if(not_box){ + printf("Box %d is invalid\n", box_number); + not_sudoku = 1; + } + } + } + if(!not_sudoku) + printf("Valid Sudoku"); + return 0; +} diff --git a/Algorithms/Data Structures/SegmentTree.cpp b/Algorithms/Data Structures/SegmentTree.cpp new file mode 100644 index 00000000..155b875e --- /dev/null +++ b/Algorithms/Data Structures/SegmentTree.cpp @@ -0,0 +1,158 @@ +// Node structure +struct Node{ + ll max=0; // Change according to function + ll min=1e9+7; + ll sum=0; + Node(ll mx, ll mn, ll sm): max(mx), min(mn), sum(sm){} + Node(ll x): max(x), min(x), sum(x){} + Node(): max(0), min(1e9+7), sum(0){} +}; + +struct ST{ + ll N; + vector st, lazy; + vector clazy; + Node ret; + + ST(ll n): N(n), st(4*n+10),lazy(4*n+10),clazy(4*n+10,false){} + + //Assignment + void assign(ll n){ + N=n; + st.resize(4*n+10); + lazy.resize(4*n+10); + clazy.assign(4*n+10,false); + ret.max=0; // Change according to function + ret.min=1e9+7; + ret.sum=0; + } + + // All merging functions + void merge(Node &cur, Node &l, Node &r){ + cur.max = max(l.max , r.max); // Change according to function + cur.min = min(l.min , r.min); + cur.sum = l.sum + r.sum; + } + + void assignNode(ll node, ll val){ + st[node].max = val; + st[node].min = val; + st[node].sum = val; + } + + void assignLazy(ll node, ll val){ + lazy[node].max = val; // Change according to function + lazy[node].min = val; + lazy[node].sum = val; + } + + + //Propogation in lazy-update + void propogate(ll node, ll l, ll r){ + if(!clazy[node]) return; + clazy[node]=false; + st[node].max = lazy[node].max; // Change according to function + st[node].min = lazy[node].min; + st[node].sum += (r-l)*lazy[node].sum; + if(r-l>=2){ + clazy[2*node]=true; + clazy[2*node+1]=true; + lazy[2*node].max = lazy[node].max; + lazy[2*node+1].max = lazy[node].max; // Change according to function + + lazy[2*node].min = lazy[node].min; + lazy[2*node+1].min = lazy[node].min; + + lazy[2*node].sum += lazy[node].sum; + lazy[2*node+1].sum += lazy[node].sum; + + } + lazy[node] = ret; + } + + void build(ll node, ll l , ll r, vll & a){ + if(r-l<2){ + assignNode(node,a[l]); + return; + } + ll mid = (l+r)/2; + build(2*node,l,mid,a); + build(2*node+1,mid,r,a); + merge(st[node], st[2*node], st[2*node+1]); + } + + void build(ll node, ll l, ll r){ + st[node]=ret; + if(r-l<2){ + return; + } + ll mid = (l+r)/2; + build(2*node,l,mid); + build(2*node+1,mid,r); + } + + Node Query(ll node, ll l, ll r, ll x, ll y){ + propogate(node,l,r); + if(x>=r or y<=l) return ret; // Change according to function + if(x<=l and y>=r) return st[node]; + ll mid = (l+r)/2; + Node L = Query(2*node,l,mid,x,y); + Node R = Query(2*node+1,mid,r,x,y); + Node C; + merge(C,L,R); + return C; + } + + Node pQuery(ll node, ll l, ll r, ll pos){ + propogate(node,l,r); + if(r-l<2) return st[node]; + ll mid = (l+r)/2; + if(pos=r or y<=l) return; + if(x<=l and y>=r){ + clazy[node]=1; + assignLazy(node,val); + propogate(node,l,r); + return; + } + ll mid = (l+r)/2; + Update(2*node,l,mid,x,y,val); + Update(2*node+1,mid,r,x,y,val); + merge(st[node], st[2*node], st[2*node+1]); + } + + void pUpdate(ll node, ll l, ll r, ll pos, ll val){ + propogate(node,l,r); + if(r-l<2){ + assignNode(node,val); + return; + } + ll mid = (l+r)/2; + if(pos=R) return ret; + return Query(1, 0, N, L, R); + } + + void update(ll pos, ll val){ + return pUpdate(1, 0, N, pos, val); + } + + void update(ll L, ll R, ll val){ + if(L>=R) return ; + return Update(1, 0, N, L, R, val); + } +}; diff --git a/Algorithms/Dynamic Programming/BoardPath.java b/Algorithms/Dynamic Programming/BoardPath.java new file mode 100644 index 00000000..938ee621 --- /dev/null +++ b/Algorithms/Dynamic Programming/BoardPath.java @@ -0,0 +1,77 @@ +package DynamicProgramming; +/* +* this is an important Algo in which +* we have starting and ending of board and we have to reach +* we have to count no. of ways +* that help to reach end point i.e number by rolling dice +* which have 1 to 6 digits + +Test Case: +here target is 10 + +int n=10; + startAlgo(); + System.out.println(bpR(0,n)); + System.out.println(endAlgo()+"ms"); + int[] strg=new int [n+1]; + startAlgo(); + System.out.println(bpRS(0,n,strg)); + System.out.println(endAlgo()+"ms"); + startAlgo(); + System.out.println(bpIS(0,n,strg)); + System.out.println(endAlgo()+"ms"); + + + +*/ +public class BoardPath { + public static long startTime; + public static long endTime; + public static void startAlgo() { + startTime=System.currentTimeMillis(); + } + public static long endAlgo() { + endTime=System.currentTimeMillis(); + return endTime-startTime; + } + public static int bpR(int start,int end){ + if(start==end) { + return 1; + } + else if(start>end) + return 0; + int count=0; + for(int dice=1;dice<=6;dice++) { + count+=bpR(start+dice,end); + } + return count; + } + public static int bpRS(int curr,int end,int strg[]){ + if(curr==end) { + return 1; + } + else if(curr>end) + return 0; + if(strg[curr]!=0) + return strg[curr]; + int count=0; + for(int dice=1;dice<=6;dice++) { + count+=bpRS(curr+dice,end,strg); + } + strg[curr]=count; + return count; + } + public static int bpIS(int curr,int end,int[]strg){ + strg[end]=1; + for(int i=end-1;i>=0;i--) { + int count=0; + for(int dice=1;dice<=6&&dice+i +#include +using namespace std; +int arr[5]={1,2,5}; +int main() +{ + int sum; +cin>>sum; +int dp[5+1][sum+1]; +for(int i=0;i + * Edit distance is a way of quantifying how dissimilar two strings (e.g., words) are to one another, + * by counting the minimum number of operations required to transform one string into the other. The + * distance operations are the removal, insertion, or substitution of a character in the string. + *

+ *

+ * The Distance between "kitten" and "sitting" is 3. A minimal edit script that transforms the former into the latter is: + *

+ * kitten → sitten (substitution of "s" for "k") + * sitten → sittin (substitution of "i" for "e") + * sittin → sitting (insertion of "g" at the end). + * + * @author SUBHAM SANGHAI + **/ + +import java.util.Scanner; + +public class EditDistance { + + public static int minDistance(String word1, String word2) { + int len1 = word1.length(); + int len2 = word2.length(); + // len1+1, len2+1, because finally return dp[len1][len2] + int[][] dp = new int[len1 + 1][len2 + 1]; + /* If second string is empty, the only option is to + insert all characters of first string into second*/ + for (int i = 0; i <= len1; i++) { + dp[i][0] = i; + } + /* If first string is empty, the only option is to + insert all characters of second string into first*/ + for (int j = 0; j <= len2; j++) { + dp[0][j] = j; + } + //iterate though, and check last char + for (int i = 0; i < len1; i++) { + char c1 = word1.charAt(i); + for (int j = 0; j < len2; j++) { + char c2 = word2.charAt(j); + //if last two chars equal + if (c1 == c2) { + //update dp value for +1 length + dp[i + 1][j + 1] = dp[i][j]; + } else { + /* if two characters are different , + then take the minimum of the various operations(i.e insertion,removal,substitution)*/ + int replace = dp[i][j] + 1; + int insert = dp[i][j + 1] + 1; + int delete = dp[i + 1][j] + 1; + + int min = replace > insert ? insert : replace; + min = delete > min ? min : delete; + dp[i + 1][j + 1] = min; + } + } + } + /* return the final answer , after traversing through both the strings*/ + return dp[len1][len2]; + } + + + public static void main(String[] args) { + Scanner input = new Scanner(System.in); + String s1, s2; + System.out.println("Enter the First String"); + s1 = input.nextLine(); + System.out.println("Enter the Second String"); + s2 = input.nextLine(); + //ans stores the final Edit Distance between the two strings + int ans = minDistance(s1, s2); + System.out.println("The minimum Edit Distance between \"" + s1 + "\" and \"" + s2 + "\" is " + ans); + input.close(); + } +} diff --git a/Algorithms/Dynamic Programming/EggDropping.java b/Algorithms/Dynamic Programming/EggDropping.java new file mode 100644 index 00000000..f6e2ab7d --- /dev/null +++ b/Algorithms/Dynamic Programming/EggDropping.java @@ -0,0 +1,49 @@ +package DynamicProgramming; + +/** + * DynamicProgramming solution for the Egg Dropping Puzzle + */ +public class EggDropping { + + // min trials with n eggs and m floors + + private static int minTrials(int n, int m) { + + int[][] eggFloor = new int[n + 1][m + 1]; + int result, x; + + for (int i = 1; i <= n; i++) { + eggFloor[i][0] = 0; // Zero trial for zero floor. + eggFloor[i][1] = 1; // One trial for one floor + } + + // j trials for only 1 egg + + for (int j = 1; j <= m; j++) + eggFloor[1][j] = j; + + // Using bottom-up approach in DP + + for (int i = 2; i <= n; i++) { + for (int j = 2; j <= m; j++) { + eggFloor[i][j] = Integer.MAX_VALUE; + for (x = 1; x <= j; x++) { + result = 1 + Math.max(eggFloor[i - 1][x - 1], eggFloor[i][j - x]); + + // choose min of all values for particular x + if (result < eggFloor[i][j]) + eggFloor[i][j] = result; + } + } + } + + return eggFloor[n][m]; + } + + public static void main(String args[]) { + int n = 2, m = 4; + // result outputs min no. of trials in worst case for n eggs and m floors + int result = minTrials(n, m); + System.out.println(result); + } +} diff --git a/Algorithms/Dynamic Programming/Fibonacci.java b/Algorithms/Dynamic Programming/Fibonacci.java new file mode 100644 index 00000000..e623a0ab --- /dev/null +++ b/Algorithms/Dynamic Programming/Fibonacci.java @@ -0,0 +1,100 @@ +package DynamicProgramming; + +import java.util.HashMap; +import java.util.Map; +import java.util.Scanner; + +/** + * @author Varun Upadhyay (https://github.com/varunu28) + */ + +public class Fibonacci { + + private static Map map = new HashMap<>(); + + + public static void main(String[] args) { + + // Methods all returning [0, 1, 1, 2, 3, 5, ...] for n = [0, 1, 2, 3, 4, 5, ...] + Scanner sc = new Scanner(System.in); + int n = sc.nextInt(); + + System.out.println(fibMemo(n)); + System.out.println(fibBotUp(n)); + System.out.println(fibOptimized(n)); + sc.close(); + } + + /** + * This method finds the nth fibonacci number using memoization technique + * + * @param n The input n for which we have to determine the fibonacci number + * Outputs the nth fibonacci number + **/ + public static int fibMemo(int n) { + if (map.containsKey(n)) { + return map.get(n); + } + + int f; + + if (n <= 1) { + f = n; + } else { + f = fibMemo(n - 1) + fibMemo(n - 2); + map.put(n, f); + } + return f; + } + + /** + * This method finds the nth fibonacci number using bottom up + * + * @param n The input n for which we have to determine the fibonacci number + * Outputs the nth fibonacci number + **/ + public static int fibBotUp(int n) { + + Map fib = new HashMap<>(); + + for (int i = 0; i <= n; i++) { + int f; + if (i <= 1) { + f = i; + } else { + f = fib.get(i - 1) + fib.get(i - 2); + } + fib.put(i, f); + } + + return fib.get(n); + } + + + /** + * This method finds the nth fibonacci number using bottom up + * + * @param n The input n for which we have to determine the fibonacci number + * Outputs the nth fibonacci number + *

+ * This is optimized version of Fibonacci Program. Without using Hashmap and recursion. + * It saves both memory and time. + * Space Complexity will be O(1) + * Time Complexity will be O(n) + *

+ * Whereas , the above functions will take O(n) Space. + * @author Shoaib Rayeen (https://github.com/shoaibrayeen) + **/ + public static int fibOptimized(int n) { + if (n == 0) { + return 0; + } + int prev = 0, res = 1, next; + for (int i = 2; i <= n; i++) { + next = prev + res; + prev = res; + res = next; + } + return res; + } +} diff --git a/Algorithms/Dynamic Programming/FordFulkerson.java b/Algorithms/Dynamic Programming/FordFulkerson.java new file mode 100644 index 00000000..f061d890 --- /dev/null +++ b/Algorithms/Dynamic Programming/FordFulkerson.java @@ -0,0 +1,72 @@ +package DynamicProgramming; + +import java.util.LinkedList; +import java.util.Queue; +import java.util.Vector; + +public class FordFulkerson { + final static int INF = 987654321; + // edges + static int V; + static int[][] capacity, flow; + + public static void main(String[] args) { + System.out.println("V : 6"); + V = 6; + capacity = new int[V][V]; + + capacity[0][1] = 12; + capacity[0][3] = 13; + capacity[1][2] = 10; + capacity[2][3] = 13; + capacity[2][4] = 3; + capacity[2][5] = 15; + capacity[3][2] = 7; + capacity[3][4] = 15; + capacity[4][5] = 17; + + System.out.println("Max capacity in networkFlow : " + networkFlow(0, 5)); + } + + private static int networkFlow(int source, int sink) { + flow = new int[V][V]; + int totalFlow = 0; + while (true) { + Vector parent = new Vector<>(V); + for (int i = 0; i < V; i++) + parent.add(-1); + Queue q = new LinkedList<>(); + parent.set(source, source); + q.add(source); + while (!q.isEmpty() && parent.get(sink) == -1) { + int here = q.peek(); + q.poll(); + for (int there = 0; there < V; ++there) + if (capacity[here][there] - flow[here][there] > 0 && parent.get(there) == -1) { + q.add(there); + parent.set(there, here); + } + } + if (parent.get(sink) == -1) + break; + + int amount = INF; + String printer = "path : "; + StringBuilder sb = new StringBuilder(); + for (int p = sink; p != source; p = parent.get(p)) { + amount = Math.min(capacity[parent.get(p)][p] - flow[parent.get(p)][p], amount); + sb.append(p + "-"); + } + sb.append(source); + for (int p = sink; p != source; p = parent.get(p)) { + flow[parent.get(p)][p] += amount; + flow[p][parent.get(p)] -= amount; + } + totalFlow += amount; + printer += sb.reverse() + " / max flow : " + totalFlow; + System.out.println(printer); + } + + return totalFlow; + } +} diff --git a/Algorithms/Dynamic Programming/KadaneAlgorithm.java b/Algorithms/Dynamic Programming/KadaneAlgorithm.java new file mode 100644 index 00000000..3b8051f7 --- /dev/null +++ b/Algorithms/Dynamic Programming/KadaneAlgorithm.java @@ -0,0 +1,55 @@ +package DynamicProgramming; + +import java.util.Scanner; + +/** + * Program to implement Kadane’s Algorithm to + * calculate maximum contiguous subarray sum of an array + * Time Complexity: O(n) + * + * @author Nishita Aggarwal + */ + +public class KadaneAlgorithm { + + /** + * This method implements Kadane's Algorithm + * + * @param arr The input array + * @return The maximum contiguous subarray sum of the array + */ + static int largestContiguousSum(int arr[]) { + int i, len = arr.length, cursum = 0, maxsum = Integer.MIN_VALUE; + if (len == 0) //empty array + return 0; + for (i = 0; i < len; i++) { + cursum += arr[i]; + if (cursum > maxsum) { + maxsum = cursum; + } + if (cursum <= 0) { + cursum = 0; + } + } + return maxsum; + } + + /** + * Main method + * + * @param args Command line arguments + */ + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int n, arr[], i; + n = sc.nextInt(); + arr = new int[n]; + for (i = 0; i < n; i++) { + arr[i] = sc.nextInt(); + } + int maxContSum = largestContiguousSum(arr); + System.out.println(maxContSum); + sc.close(); + } + +} diff --git a/Algorithms/Dynamic Programming/Knapsack.java b/Algorithms/Dynamic Programming/Knapsack.java new file mode 100644 index 00000000..1dda48b5 --- /dev/null +++ b/Algorithms/Dynamic Programming/Knapsack.java @@ -0,0 +1,39 @@ +package DynamicProgramming; + +/** + * A DynamicProgramming based solution for 0-1 Knapsack problem + */ + +public class Knapsack { + + private static int knapSack(int W, int wt[], int val[], int n) throws IllegalArgumentException { + if(wt == null || val == null) + throw new IllegalArgumentException(); + int i, w; + int rv[][] = new int[n + 1][W + 1]; //rv means return value + + // Build table rv[][] in bottom up manner + for (i = 0; i <= n; i++) { + for (w = 0; w <= W; w++) { + if (i == 0 || w == 0) + rv[i][w] = 0; + else if (wt[i - 1] <= w) + rv[i][w] = Math.max(val[i - 1] + rv[i - 1][w - wt[i - 1]], rv[i - 1][w]); + else + rv[i][w] = rv[i - 1][w]; + } + } + + return rv[n][W]; + } + + + // Driver program to test above function + public static void main(String args[]) { + int val[] = new int[]{50, 100, 130}; + int wt[] = new int[]{10, 20, 40}; + int W = 50; + int n = val.length; + System.out.println(knapSack(W, wt, val, n)); + } +} diff --git a/Algorithms/Dynamic Programming/LCS_DP.cpp b/Algorithms/Dynamic Programming/LCS_DP.cpp new file mode 100644 index 00000000..10725172 --- /dev/null +++ b/Algorithms/Dynamic Programming/LCS_DP.cpp @@ -0,0 +1,63 @@ +//Length of Longest Common Subsequence problem using Dynamic Programming + + +#include +#include +using namespace std; + +/* Function to get max of 2 integers */ +int max(int a, int b) +{ + return (a > b)? a : b; +} + + +int longestCommonSubsequence( char *arr1, char *arr2, int m, int n ) +{ + int LCS[m + 1][n + 1]; + int i, j; + + /* In the following steps LCS[i][j] + contains length of Longest common subsequence of arr1[0..i-1] + and arr2[0..j-1]. It uses a Dynamic programming approach */ + for (i = 0; i <= m; i++) + { + for (j = 0; j <= n; j++) + { + if (i == 0 || j == 0) + LCS[i][j] = 0; + + else if (arr1[i - 1] == arr2[j - 1]) + LCS[i][j] = LCS[i - 1][j - 1] + 1; + + else + LCS[i][j] = max(LCS[i - 1][j], LCS[i][j - 1]); + } + } + + //Returns the longest common subsequence + return LCS[m][n]; +} + + + +//Main Function +int main() +{ + char arr1[100]; + char arr2[100]; + + cout<<"\nEnter the 1st string: "; + cin>>arr1; + + cout<<"\nEnter the 2nd string: "; + cin>>arr2; + + int s1 = strlen(arr1); + int s2 = strlen(arr2); + + cout << "\nLength of the Longest Common Subsequence is: " + << longestCommonSubsequence( arr1, arr2, s1, s2 )< 0; i--) { + isSum[i][0] = true; + for (int j = 1; j <= arr[i - 1] - 1; j++) { + if (j <= sum) { + isSum[i][j] = isSum[i + 1][j]; + } + } + for (int j = arr[i - 1]; j <= sum; j++) { + isSum[i][j] = (isSum[i + 1][j] || isSum[i + 1][j - arr[i - 1]]); + } + } + + return isSum[1][sum]; + } +} \ No newline at end of file diff --git a/Algorithms/Graph Algorithms/Dijkstra_priority_queue.cpp b/Algorithms/Graph Algorithms/Dijkstra_priority_queue.cpp new file mode 100644 index 00000000..2924de8c --- /dev/null +++ b/Algorithms/Graph Algorithms/Dijkstra_priority_queue.cpp @@ -0,0 +1,85 @@ +// Program to find Dijkstra's shortest path using priority_queue with vectors +#include +using namespace std; +# define INF 0x3f3f3f3f + +// iPair ==> Integer Pair +typedef pair iPair; + +// To add an edge +void addEdge(vector > adj[], int u, int v, int wt) +{ + adj[u].push_back(make_pair(v, wt)); + adj[v].push_back(make_pair(u, wt)); +} + + +// Prints shortest paths from src to all other vertices +void shortestPath(vector > adj[], int V, int src) +{ + // Create a priority queue to store vertices that are being preprocessed. + priority_queue< iPair, vector , greater > pq; + + // Create a vector for distances and initialize all distances as infinite (INF) + vector dist(V, INF); + + // Insert source itself in priority queue and initialize its distance as 0. + pq.push(make_pair(0, src)); + dist[src] = 0; + + // Looping till priority queue becomes empty + while (!pq.empty()) + { + // The first vertex in pair is the minimum distance vertex, extract it from priority queue. Vertex label is stored in second of pair. + int u = pq.top().second; + pq.pop(); + + // Get all adjacent of u. + for (auto x : adj[u]) + { + // Get vertex label and weight of current adjacent of u. + int v = x.first; + int weight = x.second; + + // If there is shorted path to v through u. + if (dist[v] > dist[u] + weight) + { + // Updating distance of v + dist[v] = dist[u] + weight; + pq.push(make_pair(dist[v], v)); + } + } + } + + // Print shortest distances stored in dist[] + printf("Vertex Distance from Source\n"); + for (int i = 0; i < V; ++i) + printf("%d \t\t %d\n", i, dist[i]); +} + +// Driver program +int main() +{ + int V = 9; + vector adj[V]; + + // making above shown graph + addEdge(adj, 0, 1, 4); + addEdge(adj, 0, 7, 8); + addEdge(adj, 1, 2, 8); + addEdge(adj, 1, 7, 11); + addEdge(adj, 2, 3, 7); + addEdge(adj, 2, 8, 2); + addEdge(adj, 2, 5, 4); + addEdge(adj, 3, 4, 9); + addEdge(adj, 3, 5, 14); + addEdge(adj, 4, 5, 10); + addEdge(adj, 5, 6, 2); + addEdge(adj, 6, 7, 1); + addEdge(adj, 6, 8, 6); + addEdge(adj, 7, 8, 7); + + shortestPath(adj, V, 0); + + return 0; +} diff --git a/Algorithms/Graph Algorithms/KruskalMST.cpp b/Algorithms/Graph Algorithms/KruskalMST.cpp new file mode 100644 index 00000000..5ef32a1e --- /dev/null +++ b/Algorithms/Graph Algorithms/KruskalMST.cpp @@ -0,0 +1,165 @@ +// C++ program for Kruskal's algorithm to find MST of a given connected, undirected and weighted graph. + +#include +using namespace std; + +// A structure to represent a weighted edge in graph +class Edge +{ + public: + int src, dest, weight; +}; + +//A structure to represent a connected, undirected and weighted graph +class Graph +{ + public: + // V-> Number of vertices, E-> Number of edges + int V, E; + + Edge* edge; +}; + +// Creating a graph with V vertices and E edges +Graph* createGraph(int V, int E) +{ + Graph* graph = new Graph; + graph->V = V; + graph->E = E; + + graph->edge = new Edge[E]; + + return graph; +} + +// A structure to represent a subset for union-find +class subset +{ + public: + int parent; + int rank; +}; + +// A utility function to find set of an element i +int find(subset subsets[], int i) +{ +// find root and make root as parent of i + if (subsets[i].parent != i) + subsets[i].parent = find(subsets, subsets[i].parent); + + return subsets[i].parent; +} + +// A function that does union of two sets of x and y +void Union(subset subsets[], int x, int y) +{ + int xroot = find(subsets, x); + int yroot = find(subsets, y); + +// Attach smaller rank tree under root of high rank tree (Union by Rank) + if (subsets[xroot].rank < subsets[yroot].rank) + subsets[xroot].parent = yroot; + else if (subsets[xroot].rank > subsets[yroot].rank) + subsets[yroot].parent = xroot; + +// If ranks are same, then make one as root and increment its rank by one + else + { + subsets[yroot].parent = xroot; + subsets[xroot].rank++; + } +} + +// Compare two edges according to their weights. Used in qsort() for sorting an array of edges +int myComp(const void* a, const void* b) +{ + Edge* a1 = (Edge*)a; + Edge* b1 = (Edge*)b; + return a1->weight > b1->weight; +} + +// The main function to construct MST using Kruskal's algorithm +void KruskalMST(Graph* graph) +{ + int V = graph->V; + // Tnis will store the resultant MST + Edge result[V]; + // An index variable, used for result[] + int e = 0; + // An index variable, used for sorted edges + int i = 0; + + // Step 1: Sort all the edges in non-decreasing order of their weight. + qsort(graph->edge, graph->E, sizeof(graph->edge[0]), myComp); + + // Allocate memory for creating V ssubsets + subset *subsets = new subset[( V * sizeof(subset) )]; + + // Create V subsets with single elements + for (int v = 0; v < V; ++v) + { + subsets[v].parent = v; + subsets[v].rank = 0; + } + + // Number of edges to be taken is equal to V-1 + while (e < V - 1 && i < graph->E) + { + // Step 2: Pick the smallest edge. And increment the index for next iteration + Edge next_edge = graph->edge[i++]; + + int x = find(subsets, next_edge.src); + int y = find(subsets, next_edge.dest); + + if (x != y) + { + result[e++] = next_edge; + Union(subsets, x, y); + } + // Else discard the next_edge + } + + // print the contents of result[] to display the built MST + cout<<"Following are the edges in the constructed MST\n"; + for (i = 0; i < e; ++i) + cout<edge[0].src = 0; + graph->edge[0].dest = 1; + graph->edge[0].weight = 10; + + // add edge 0-2 + graph->edge[1].src = 0; + graph->edge[1].dest = 2; + graph->edge[1].weight = 6; + + // add edge 0-3 + graph->edge[2].src = 0; + graph->edge[2].dest = 3; + graph->edge[2].weight = 5; + + // add edge 1-3 + graph->edge[3].src = 1; + graph->edge[3].dest = 3; + graph->edge[3].weight = 15; + + // add edge 2-3 + graph->edge[4].src = 2; + graph->edge[4].dest = 3; + graph->edge[4].weight = 4; + + KruskalMST(graph); + + return 0; +} diff --git a/Algorithms/Graph Algorithms/prim.cpp b/Algorithms/Graph Algorithms/prim.cpp new file mode 100644 index 00000000..e0e02de7 --- /dev/null +++ b/Algorithms/Graph Algorithms/prim.cpp @@ -0,0 +1,72 @@ +#include +using namespace std; +#define INF 0x3f3f3f3f +typedef pair iPair; + +class Graph{ + int V; + list > *adj; + +public: + Graph(int V); + void addEdge(int u,int v,int w); + void primMST(); +}; +Graph::Graph(int V){ + this->V = V; + adj = new list[this->V]; +} +void Graph::addEdge(int u,int v,int w){ + adj[u].push_back(make_pair(v,w)); + adj[v].push_back(make_pair(u,w)); +} +void Graph::primMST(){ + //Priority Queue (PQ) + //Implement MIN HEAP Pair + priority_queue,greater > pq; + + int src = 0; + + vector key(V,INF); + vector parent(V,-1); + vector inMST(V,false); + + pq.push(make_pair(0,src)); + key[src] = 0; + + while(!pq.empty()){ + int u = pq.top().second; + pq.pop(); + + inMST[u] = true; + list >::iterator it; + for(it = adj[u].begin();it!=adj[u].end();it++){ + int v = (*it).first; + int weight = (*it).second; + + if(!inMST[v] && key[v] > weight){ + key[v] = weight; + pq.push(make_pair(key[v],v)); + parent[v] = u; + } + } + } + // Printing the minimum spanning tree + for(int i=1;i +int prime(int i); +int sum=0,product=1,k; //sum is used for not printing last comma +int main() +{ + int n; + scanf("%d",&n); + k=n; + printf("%d = ",n); + prime(n); + return 0; +} +int prime(int n) +{ + for(int i=2;i<=n;i++) + { + int flag=1; //to check whether a no. is prime or not + for(int j=2;j +#include + +int main(){ + int n, i, j, c, i1, j1; + scanf("%d", &n); + int a[n][n]; + int count[n]; + int k = sqrt(n); + int not_row, not_col, not_box, not_sudoku = 0; + for(i = 0; i < n; i++) + for(j = 0; j < n; j++) + scanf("%d", &a[i][j]); + for(i = 0; i < n; i++){ + for(c = 0; c < n; c++) + count[c] = 0; + not_row = 0; + for(j = 0; j < n; j++){ + if((a[i][j] > n) || (a[i][j] < 1)) + not_row = 1; + else + count[a[i][j] - 1]++; + } + for(c = 0; c < n; c++) + if (count[c] > 1 || count[c] == 0) + not_row = 1; + if(not_row){ + printf("Row %d is invalid\n", i+1); + not_sudoku = 1; + } + } + + for(i = 0; i < n; i++){ + for(c = 0; c < n; c++) + count[c] = 0; + not_col = 0; + for(j = 0; j < n; j++){ + if(a[j][i] > n || a[j][i] < 1) + not_col = 1; + else + count[a[j][i]-1]++; + } + for(c = 0; c < n; c++) + if(count[c] > 1 || count[c] == 0) + not_col = 1; + if(not_col){ + printf("Column %d is invalid\n", i+1); + not_sudoku = 1; + } + } + + int box_number = 0; + for(i = 0; i + k - 1 < n; i += k){ + for(j = 0; j + k - 1 < n; j += k){ + not_box = 0; + box_number++; + for(c = 0; c < n; c++) + count[c] = 0; + for(i1 = 0; i1 < k; i1++){ + for(j1 = 0; j1 < k; j1++){ + if (a[i+i1][j+j1] > n || a[i+i1][j+j1] < 1) + not_box = 1; + count[a[i+i1][j+j1]-1]++; + } + } + for(c = 0; c < n; c++) + if(count[c] > 1 || count[c] == 0) + not_box = 1; + if(not_box){ + printf("Box %d is invalid\n", box_number); + not_sudoku = 1; + } + } + } + if(!not_sudoku) + printf("Valid Sudoku"); + return 0; +} diff --git a/Algorithms/Searching/PSO Feature Selection.py b/Algorithms/Searching/PSO Feature Selection.py new file mode 100644 index 00000000..5c2df00d --- /dev/null +++ b/Algorithms/Searching/PSO Feature Selection.py @@ -0,0 +1,290 @@ +import numpy as np +import pandas as pd +import seaborn as sns +from random import random +from sklearn import metrics +from sklearn.preprocessing import LabelEncoder +from sklearn.model_selection import train_test_split +from sklearn.model_selection import cross_validate +from sklearn.linear_model import LogisticRegression +from sklearn.metrics import confusion_matrix, make_scorer +from sklearn.metrics import roc_auc_score, accuracy_score +from sklearn.metrics import precision_score, recall_score + +import warnings +warnings.filterwarnings('ignore') + +def classification_accuracy(y_actual, y_hat): + TP = 0 + FP = 0 + TN = 0 + FN = 0 + + for i in range(len(y_hat)): + if y_actual[i]==y_hat[i]==1: + TP += 1 + if y_hat[i]==1 and y_actual[i]!=y_hat[i]: + FP += 1 + if y_actual[i]==y_hat[i]==0: + TN += 1 + if y_hat[i]==0 and y_actual[i]!=y_hat[i]: + FN += 1 + + class_acc = float((TP+TN)) / float((TP+FP+TN+FN)) + + if TP == 0 and FN == 0 : + recall = 0 + else: + recall = float(TP) / float(TP + FN) + + if TP == 0 and FP == 0: + precision = 0 + else: + precision = float(TP) / float( TP + FP ) + + return (class_acc, recall, precision) + +def fitness_without_optimization(df1): + + # Separate labels and features + X = df1.drop(columns=['diagnosis']) + y = df1['diagnosis'] + + # Convert the M to 1 and B to 0 + label = LabelEncoder() + y = label.fit_transform(y) + y[:20] + + # Spilt the train and test data + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) + # we used 30% test data + + # Logistic Regression + LR = LogisticRegression() + LR.fit(X_train, y_train) + LR.score(X_train, y_train) + y_pred = LR.predict(X_test) + y_pred_train = LR.predict(X_train) + + # find accuracy + ac = accuracy_score(y_test, y_pred) + ac_train = accuracy_score(y_train, y_pred_train) + # Code for ROC_AUC curve + rc = roc_auc_score(y_test, y_pred) + + cm_2 = confusion_matrix(y_test, y_pred) + + sns.heatmap(cm_2,annot=True,fmt="d") + + class_acc = classification_accuracy(y_test, y_pred) + + return class_acc + +df = pd.read_csv('breast_cancer_data.csv') +accuracy = fitness_without_optimization(df.copy()) +print('Accuracy :' + "{:.2f}".format(accuracy[0])) +print('Precision :' + "{:.2f}".format(accuracy[1])) +print('Recall :' + "{:.2f}".format(accuracy[2])) + +class PSO: + def __init__(self, f_count, df): + + self.df = df.copy() # data + self.f_count = f_count # Feature count + self.pos_act = [] # Actual Positions radmon prob + self.position = [] # Position prob > 0.5 set as 1 or 0 + self.velocity = [] # Velocity random between -1 and 1 + self.pos_best = [] # best position + self.y_actual = [] # Y actual + self.y_predict= [] # Y test predicted + self.fit_best = (-1, -1, -1) # best fit accuracy, Recall, Precision + self.fitness = (-1, -1, -1) # accuracy , recall, precsion + + self.initialize(f_count) + + def initialize(self, f_count): + self.f_count = f_count + self.initalize_position(f_count) + self.initialize_velocity(f_count) + + def set_data(self,data): + self.df = data.copy() + print(self.df.head()) + + #Initialize the positions > 0.5 is set as 1 + def initalize_position(self,f_count): + self.pos_act = np.random.uniform(low=0, high=1, size=f_count).tolist() + self.position = [1 if po > 0.5 else 0 for po in self.pos_act] + + def initialize_velocity(self, f_count): + self.velocity = np.random.uniform(low=-1, high=1, size=f_count).tolist() + + def drop_columns(self, X): + + for iteration, value in enumerate(self.position): + if value == 0 : + X_1 = X.drop(X.columns[iteration], axis = 1) + return X_1 + + def classification_accuracy(self,y_actual, y_hat): + TP = 0 + FP = 0 + TN = 0 + FN = 0 + + for i in range(len(y_hat)): + if y_actual[i]==y_hat[i]==1: + TP += 1 + if y_hat[i]==1 and y_actual[i]!=y_hat[i]: + FP += 1 + if y_actual[i]==y_hat[i]==0: + TN += 1 + if y_hat[i]==0 and y_actual[i]!=y_hat[i]: + FN += 1 + + class_acc = float((TP+TN)) / float((TP+FP+TN+FN)) + + if TP == 0 and FN == 0 : + recall = 0 + else: + recall = float(TP) / float(TP + FN) + if TP == 0 and FP == 0: + precision = 0 + else: + precision = float(TP) / float( TP + FP ) + + return (class_acc, recall, precision) + + def process_data(self): + + # Separate labels and features + X = self.df.drop(columns=['diagnosis']) + y = self.df['diagnosis'] + + X = self.drop_columns(X) + + # Convert the M to 1 and B to 0 + label = LabelEncoder() + y = label.fit_transform(y) + y[:20] + + # Spilt the train and test data + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) + # we used 30% test data + # check the size before beginning + X_train.shape, X_test.shape, y_train.shape, y_test.shape + + # Logistic Regression + LR = LogisticRegression() + LR.fit(X_train, y_train) + LR.score(X_train, y_train) + y_pred = LR.predict(X_test) + y_pred_train = LR.predict(X_train) + + # find accuracy + ac = accuracy_score(y_test, y_pred) + ac_train = accuracy_score(y_train, y_pred_train) + # Code for ROC_AUC curve + rc = roc_auc_score(y_test, y_pred) + + class_acc = self.classification_accuracy(y_test, y_pred) + + self.y_actual = y_test + self.y_predict = y_pred + + return class_acc + + # fitness check, checks accuarcy and precision and accurarcy + def fitness_check(self,fitness, fit_best): + is_fitness = False + + if fitness[0] > fit_best[0] or fit_best[0] == -1: + if fitness[1] >= fit_best[1] and fitness[2] >= fit_best[2]: + is_fitness = True + + return is_fitness + + def evaluate_fitness(self): + self.fitness = self.process_data() + + if self.fitness_check(self.fitness, self.fit_best): + self.pos_best = self.position.copy() + self.fit_best = self.fitness + + def update_velocity(self, pos_best_global): + c1 = 1 + c2 = 2 + w = 0.5 + + for i in range(0, self.f_count): + r1 = np.random.uniform(low=-1, high=1, size=1)[0] + r2 = np.random.uniform(low=-1, high=1, size=1)[0] + velocity_cog = c1*r1*(self.pos_best[i]-self.position[i]) + velocity_soc = c2*r2*(pos_best_global[i]-self.position[i]) + + self.velocity[i]=w*self.velocity[i]+velocity_cog+velocity_soc + + def update_position(self): + + for i in range(0, self.f_count): + self.pos_act[i] = self.pos_act[i] + self.velocity[i] + + #adjust max value + + if self.pos_act[i] > 1 : + self.pos_act[i] = 0.9 + + if self.pos_act[i] < 0 : + self.pos_act[i] = 0.0 + + self.position[i] = 1 if self.pos_act[i] > 0.5 else 0 + + def print_position(self): + print(self.position) + + def print_velocity(self): + print(self.velocity) + +def pso_calculate(f_count, df): + y_actual = [] + y_predict = [] + fitness_best_g = (-1, -1, -1) + pos_fitness_g = [] + swarm = [] + no_population = 400 + iteration = 1 + + for i in range(0,no_population): + swarm.append(PSO(f_count, df)) + + while iteration <= 10: + + print('\nIteration : ', iteration) + + for pos in range(0, no_population): + + swarm[pos].evaluate_fitness() + + #check current particle is the global best + if swarm[pos].fitness_check(swarm[pos].fitness, fitness_best_g): #swarm[pos].fitness > fitness_best_g or fitness_best_g == -1: + pos_fitness_g = list(swarm[pos].position) + fitness_best_g = (swarm[pos].fitness) + y_actual = swarm[pos].y_actual + y_predict = swarm[pos].y_predict + + for pos in range(0, no_population): + swarm[pos].update_velocity(pos_fitness_g) + swarm[pos].update_position() + + print(pos_fitness_g) + print(fitness_best_g) + iteration+=1 + + + print('\n Final Solution:') + print(pos_fitness_g) + print(fitness_best_g) + cm_2 = confusion_matrix(y_actual, y_predict) + sns.heatmap(cm_2,annot=True,fmt="d") + +pso_calculate(30,df) \ No newline at end of file diff --git a/Algorithms/Searching/breast_cancer_data.csv b/Algorithms/Searching/breast_cancer_data.csv new file mode 100644 index 00000000..506f9788 --- /dev/null +++ b/Algorithms/Searching/breast_cancer_data.csv @@ -0,0 +1,570 @@ +diagnosis,radius_mean,texture_mean,perimeter_mean,area_mean,smoothness_mean,compactness_mean,concavity_mean,concave points_mean,symmetry_mean,fractal_dimension_mean,radius_se,texture_se,perimeter_se,area_se,smoothness_se,compactness_se,concavity_se,concave points_se,symmetry_se,fractal_dimension_se,radius_worst,texture_worst,perimeter_worst,area_worst,smoothness_worst,compactness_worst,concavity_worst,concave points_worst,symmetry_worst,fractal_dimension_worst +M,17.99,10.38,122.8,1001.0,0.1184,0.2776,0.3001,0.1471,0.2419,0.07871,1.095,0.9053,8.589,153.4,0.006399,0.04904,0.05372999999999999,0.01587,0.03003,0.006193,25.38,17.33,184.6,2019.0,0.1622,0.6656,0.7119,0.2654,0.4601,0.1189 +M,20.57,17.77,132.9,1326.0,0.08474,0.07864,0.0869,0.07017000000000001,0.1812,0.056670000000000005,0.5435,0.7339,3.398,74.08,0.005225,0.013080000000000001,0.0186,0.0134,0.013890000000000001,0.003532,24.99,23.41,158.8,1956.0,0.1238,0.1866,0.2416,0.18600000000000003,0.275,0.08902 +M,19.69,21.25,130.0,1203.0,0.1096,0.1599,0.1974,0.1279,0.2069,0.059989999999999995,0.7456,0.7869,4.585,94.03,0.00615,0.040060000000000005,0.03832,0.02058,0.0225,0.004571,23.57,25.53,152.5,1709.0,0.1444,0.4245,0.4504,0.243,0.3613,0.08757999999999999 +M,11.42,20.38,77.58,386.1,0.1425,0.2839,0.2414,0.1052,0.2597,0.09744,0.4956,1.156,3.445,27.23,0.00911,0.07458,0.05661,0.01867,0.059629999999999996,0.009208,14.91,26.5,98.87,567.7,0.2098,0.8663,0.6869,0.2575,0.6638,0.17300000000000001 +M,20.29,14.34,135.1,1297.0,0.1003,0.1328,0.198,0.1043,0.1809,0.05882999999999999,0.7572,0.7813,5.438,94.44,0.01149,0.02461,0.05687999999999999,0.01885,0.01756,0.005115,22.54,16.67,152.2,1575.0,0.1374,0.205,0.4,0.1625,0.2364,0.07678 +M,12.45,15.7,82.57,477.1,0.1278,0.17,0.1578,0.08089,0.2087,0.07612999999999999,0.3345,0.8902,2.217,27.19,0.007509999999999999,0.03345,0.036719999999999996,0.01137,0.02165,0.005082,15.47,23.75,103.4,741.6,0.1791,0.5249,0.5355,0.1741,0.3985,0.1244 +M,18.25,19.98,119.6,1040.0,0.09462999999999999,0.109,0.1127,0.07400000000000001,0.1794,0.057420000000000006,0.4467,0.7732,3.18,53.91,0.004314,0.013819999999999999,0.02254,0.01039,0.01369,0.002179,22.88,27.66,153.2,1606.0,0.1442,0.2576,0.3784,0.1932,0.3063,0.08367999999999999 +M,13.71,20.83,90.2,577.9,0.1189,0.1645,0.09366000000000001,0.05985,0.2196,0.07451,0.5835,1.3769999999999998,3.8560000000000003,50.96,0.008805,0.030289999999999997,0.024880000000000003,0.014480000000000002,0.01486,0.005412,17.06,28.14,110.6,897.0,0.1654,0.3682,0.2678,0.1556,0.3196,0.1151 +M,13.0,21.82,87.5,519.8,0.1273,0.1932,0.1859,0.09353,0.235,0.07389,0.3063,1.002,2.406,24.32,0.005731,0.035019999999999996,0.03553,0.01226,0.02143,0.003749,15.49,30.73,106.2,739.3,0.1703,0.5401,0.539,0.20600000000000002,0.4378,0.1072 +M,12.46,24.04,83.97,475.9,0.1186,0.2396,0.2273,0.08542999999999999,0.203,0.08242999999999999,0.2976,1.599,2.039,23.94,0.007148999999999999,0.07217,0.07743,0.01432,0.01789,0.01008,15.09,40.68,97.65,711.4,0.1853,1.058,1.105,0.221,0.4366,0.2075 +M,16.02,23.24,102.7,797.8,0.08206000000000001,0.06669,0.03299,0.03323,0.1528,0.05697000000000001,0.3795,1.187,2.4659999999999997,40.51,0.004029,0.009269,0.011009999999999999,0.007591,0.0146,0.003042,19.19,33.88,123.8,1150.0,0.1181,0.1551,0.1459,0.09975,0.2948,0.08452 +M,15.78,17.89,103.6,781.0,0.0971,0.1292,0.09954,0.06606000000000001,0.1842,0.060820000000000006,0.5058,0.9849,3.5639999999999996,54.16,0.005771,0.04061,0.02791,0.012819999999999998,0.02008,0.004144,20.42,27.28,136.5,1299.0,0.1396,0.5609,0.3965,0.18100000000000002,0.3792,0.1048 +M,19.17,24.8,132.4,1123.0,0.0974,0.2458,0.2065,0.1118,0.2397,0.078,0.9555,3.568,11.07,116.2,0.003139,0.08297,0.0889,0.0409,0.04484,0.01284,20.96,29.94,151.7,1332.0,0.1037,0.3903,0.3639,0.1767,0.3176,0.1023 +M,15.85,23.95,103.7,782.7,0.08401,0.1002,0.09938,0.05364,0.1847,0.05338,0.4033,1.078,2.903,36.58,0.009769,0.03126,0.05051,0.01992,0.029810000000000003,0.003002,16.84,27.66,112.0,876.5,0.1131,0.1924,0.2322,0.1119,0.2809,0.06287000000000001 +M,13.73,22.61,93.6,578.3,0.1131,0.2293,0.2128,0.08025,0.2069,0.07682,0.2121,1.169,2.061,19.21,0.006429000000000001,0.05936,0.05501,0.016280000000000003,0.01961,0.008093000000000001,15.03,32.01,108.8,697.7,0.1651,0.7725,0.6943,0.2208,0.3596,0.1431 +M,14.54,27.54,96.73,658.8,0.1139,0.1595,0.1639,0.07364,0.2303,0.07077,0.37,1.033,2.8789999999999996,32.55,0.005607,0.0424,0.04741,0.0109,0.01857,0.0054659999999999995,17.46,37.13,124.1,943.2,0.1678,0.6577,0.7026,0.1712,0.4218,0.1341 +M,14.68,20.13,94.74,684.5,0.09867000000000001,0.07200000000000001,0.07395,0.05259,0.1586,0.05922,0.4727,1.24,3.195,45.4,0.005718,0.01162,0.01998,0.011090000000000001,0.0141,0.002085,19.07,30.88,123.4,1138.0,0.1464,0.1871,0.2914,0.1609,0.3029,0.08216 +M,16.13,20.68,108.1,798.8,0.11699999999999999,0.2022,0.1722,0.1028,0.2164,0.07356,0.5692,1.073,3.8539999999999996,54.18,0.007026,0.02501,0.03188,0.012969999999999999,0.016890000000000002,0.004142,20.96,31.48,136.8,1315.0,0.1789,0.4233,0.4784,0.2073,0.3706,0.1142 +M,19.81,22.15,130.0,1260.0,0.09831000000000001,0.1027,0.1479,0.09498,0.1582,0.05395,0.7582,1.0170000000000001,5.865,112.4,0.006494,0.018930000000000002,0.03391,0.01521,0.01356,0.001997,27.32,30.88,186.8,2398.0,0.1512,0.315,0.5372,0.2388,0.2768,0.07615 +B,13.54,14.36,87.46,566.3,0.09779,0.08129,0.06663999999999999,0.047810000000000005,0.1885,0.05766,0.2699,0.7886,2.0580000000000003,23.56,0.008462,0.0146,0.02387,0.01315,0.0198,0.0023,15.11,19.26,99.7,711.2,0.14400000000000002,0.1773,0.239,0.1288,0.2977,0.07259 +B,13.08,15.71,85.63,520.0,0.1075,0.127,0.04568,0.0311,0.1967,0.06811,0.1852,0.7477,1.383,14.67,0.004097,0.01898,0.016980000000000002,0.006490000000000001,0.01678,0.002425,14.5,20.49,96.09,630.5,0.1312,0.2776,0.18899999999999997,0.07282999999999999,0.3184,0.08183 +B,9.504,12.44,60.34,273.9,0.1024,0.06492,0.029560000000000003,0.02076,0.1815,0.06905,0.2773,0.9768,1.909,15.7,0.009606,0.01432,0.01985,0.014209999999999999,0.02027,0.002968,10.23,15.66,65.13,314.9,0.1324,0.1148,0.08867,0.062270000000000006,0.245,0.07773 +M,15.34,14.26,102.5,704.4,0.1073,0.2135,0.2077,0.09756000000000001,0.2521,0.07032000000000001,0.4388,0.7096,3.384,44.91,0.006789,0.053279999999999994,0.06446,0.02252,0.036719999999999996,0.0043939999999999995,18.07,19.08,125.1,980.9,0.139,0.5954,0.6305,0.2393,0.4667,0.09946 +M,21.16,23.04,137.2,1404.0,0.09427999999999999,0.1022,0.1097,0.08632000000000001,0.1769,0.052779999999999994,0.6917,1.127,4.303,93.99,0.004728,0.01259,0.01715,0.01038,0.01083,0.001987,29.17,35.59,188.0,2615.0,0.1401,0.26,0.3155,0.2009,0.2822,0.07526000000000001 +M,16.65,21.38,110.0,904.6,0.1121,0.1457,0.1525,0.0917,0.1995,0.0633,0.8068,0.9017,5.455,102.6,0.0060479999999999996,0.01882,0.027410000000000004,0.0113,0.01468,0.002801,26.46,31.56,177.0,2215.0,0.1805,0.3578,0.4695,0.2095,0.3613,0.09564 +M,17.14,16.4,116.0,912.7,0.1186,0.2276,0.2229,0.1401,0.304,0.07413,1.046,0.976,7.276,111.4,0.008029000000000001,0.037989999999999996,0.03732,0.023969999999999998,0.02308,0.007444,22.25,21.4,152.4,1461.0,0.1545,0.3949,0.3853,0.255,0.4066,0.1059 +M,14.58,21.53,97.41,644.8,0.1054,0.1868,0.1425,0.08782999999999999,0.2252,0.06924,0.2545,0.9832,2.11,21.05,0.004452,0.03055,0.026810000000000004,0.013519999999999999,0.01454,0.003711,17.62,33.21,122.4,896.9,0.1525,0.6643,0.5539,0.2701,0.4264,0.1275 +M,18.61,20.25,122.1,1094.0,0.0944,0.1066,0.149,0.07731,0.1697,0.05699,0.8529,1.849,5.632000000000001,93.54,0.01075,0.027219999999999998,0.05081,0.01911,0.022930000000000002,0.004217,21.31,27.26,139.9,1403.0,0.1338,0.2117,0.3446,0.149,0.2341,0.07421 +M,15.3,25.27,102.4,732.4,0.1082,0.1697,0.1683,0.08751,0.1926,0.0654,0.439,1.012,3.498,43.5,0.005233,0.03057,0.03576,0.01083,0.01768,0.002967,20.27,36.71,149.3,1269.0,0.1641,0.611,0.6335,0.2024,0.4027,0.09876 +M,17.57,15.05,115.0,955.1,0.09847,0.1157,0.09875,0.07952999999999999,0.1739,0.061489999999999996,0.6003,0.8225,4.655,61.1,0.005627,0.030330000000000003,0.034069999999999996,0.01354,0.01925,0.003742,20.01,19.52,134.9,1227.0,0.1255,0.2812,0.2489,0.1456,0.2756,0.07919 +M,18.63,25.11,124.8,1088.0,0.1064,0.1887,0.2319,0.1244,0.2183,0.061970000000000004,0.8307,1.466,5.574,105.0,0.006248,0.03374,0.05196,0.01158,0.020069999999999998,0.00456,23.15,34.01,160.5,1670.0,0.1491,0.4257,0.6133,0.1848,0.3444,0.09782 +M,11.84,18.7,77.93,440.6,0.1109,0.1516,0.1218,0.051820000000000005,0.2301,0.07799,0.4825,1.03,3.475,41.0,0.0055509999999999995,0.03414,0.04205,0.010440000000000001,0.02273,0.005667,16.82,28.12,119.4,888.7,0.1637,0.5775,0.6956,0.1546,0.4761,0.1402 +M,17.02,23.98,112.8,899.3,0.1197,0.1496,0.2417,0.1203,0.2248,0.06382,0.6009,1.3980000000000001,3.9989999999999997,67.78,0.008268000000000001,0.03082,0.05042,0.01112,0.02102,0.003854,20.88,32.09,136.1,1344.0,0.1634,0.3559,0.5588,0.1847,0.353,0.08482 +M,19.27,26.47,127.9,1162.0,0.09401,0.1719,0.1657,0.07593,0.1853,0.06261,0.5558,0.6062,3.528,68.17,0.0050149999999999995,0.03318,0.03497,0.009643,0.015430000000000001,0.003896,24.15,30.9,161.4,1813.0,0.1509,0.659,0.6091,0.1785,0.3672,0.1123 +M,16.13,17.88,107.0,807.2,0.10400000000000001,0.1559,0.1354,0.07752,0.1998,0.06515,0.33399999999999996,0.6857,2.1830000000000003,35.03,0.004185,0.02868,0.026639999999999997,0.009067,0.01703,0.003817,20.21,27.26,132.7,1261.0,0.1446,0.5804,0.5274,0.1864,0.42700000000000005,0.1233 +M,16.74,21.59,110.1,869.5,0.0961,0.1336,0.1348,0.06018,0.1896,0.05656,0.4615,0.9197,3.008,45.19,0.005776,0.024990000000000002,0.03695,0.01195,0.027889999999999998,0.002665,20.01,29.02,133.5,1229.0,0.1563,0.3835,0.5409,0.1813,0.4863,0.08632999999999999 +M,14.25,21.72,93.63,633.0,0.09823,0.1098,0.1319,0.055979999999999995,0.1885,0.06125,0.28600000000000003,1.0190000000000001,2.657,24.91,0.005878,0.02995,0.04815,0.011609999999999999,0.02028,0.0040219999999999995,15.89,30.36,116.2,799.6,0.1446,0.4238,0.5186,0.1447,0.3591,0.1014 +B,13.03,18.42,82.61,523.8,0.08983,0.03766,0.02562,0.029230000000000003,0.1467,0.058629999999999995,0.1839,2.342,1.17,14.16,0.004352,0.004899000000000001,0.013430000000000001,0.011640000000000001,0.02671,0.001777,13.3,22.81,84.46,545.9,0.09701,0.046189999999999995,0.04833,0.05013,0.1987,0.061689999999999995 +M,14.99,25.2,95.54,698.8,0.09387000000000001,0.05131,0.02398,0.02899,0.1565,0.05504,1.214,2.188,8.077,106.0,0.006883,0.01094,0.01818,0.01917,0.007882,0.001754,14.99,25.2,95.54,698.8,0.09387000000000001,0.05131,0.02398,0.02899,0.1565,0.05504 +M,13.48,20.82,88.4,559.2,0.1016,0.1255,0.1063,0.05439,0.172,0.06419,0.213,0.5914,1.545,18.52,0.005367,0.02239,0.030489999999999996,0.012620000000000001,0.01377,0.003187,15.53,26.02,107.3,740.4,0.161,0.4225,0.503,0.2258,0.2807,0.1071 +M,13.44,21.58,86.18,563.0,0.08162,0.06031,0.0311,0.020309999999999998,0.1784,0.05587,0.2385,0.8265,1.5719999999999998,20.53,0.00328,0.01102,0.0139,0.006881,0.0138,0.001286,15.93,30.25,102.5,787.9,0.1094,0.2043,0.2085,0.1112,0.2994,0.07146 +M,10.95,21.35,71.9,371.1,0.1227,0.1218,0.1044,0.05669,0.1895,0.0687,0.2366,1.4280000000000002,1.8219999999999998,16.97,0.008064,0.01764,0.02595,0.01037,0.013569999999999999,0.0030399999999999997,12.84,35.34,87.22,514.0,0.1909,0.2698,0.4023,0.1424,0.2964,0.09606 +M,19.07,24.81,128.3,1104.0,0.09081,0.21899999999999997,0.2107,0.09961,0.231,0.06343,0.9811,1.666,8.83,104.9,0.006548,0.1006,0.09723,0.02638,0.053329999999999995,0.007645999999999999,24.09,33.17,177.4,1651.0,0.1247,0.7444,0.7242,0.2493,0.467,0.1038 +M,13.28,20.28,87.32,545.2,0.1041,0.1436,0.09847,0.061579999999999996,0.1974,0.06782,0.3704,0.8249,2.427,31.33,0.005072,0.02147,0.02185,0.009559999999999999,0.01719,0.003317,17.38,28.0,113.1,907.2,0.153,0.3724,0.3664,0.1492,0.3739,0.1027 +M,13.17,21.81,85.42,531.5,0.09714,0.1047,0.08259,0.052520000000000004,0.1746,0.061770000000000005,0.1938,0.6123,1.334,14.49,0.00335,0.01384,0.014519999999999998,0.006853,0.01113,0.00172,16.23,29.89,105.5,740.7,0.1503,0.3904,0.3728,0.1607,0.3693,0.09618 +M,18.65,17.6,123.7,1076.0,0.1099,0.1686,0.1974,0.1009,0.1907,0.060489999999999995,0.6289,0.6633,4.293,71.56,0.006294,0.039939999999999996,0.05554,0.01695,0.02428,0.003535,22.82,21.32,150.6,1567.0,0.1679,0.509,0.7345,0.2378,0.3799,0.09185 +B,8.196,16.84,51.71,201.9,0.086,0.05943,0.015880000000000002,0.005917,0.1769,0.06502999999999999,0.1563,0.9567,1.094,8.205,0.008968,0.01646,0.015880000000000002,0.005917,0.02574,0.002582,8.964,21.96,57.26,242.2,0.1297,0.1357,0.0688,0.025639999999999996,0.3105,0.07409 +M,13.17,18.66,85.98,534.6,0.1158,0.1231,0.1226,0.0734,0.2128,0.06777000000000001,0.2871,0.8937,1.8969999999999998,24.25,0.006532,0.02336,0.02905,0.01215,0.01743,0.003643,15.67,27.95,102.8,759.4,0.1786,0.4166,0.5006,0.2088,0.39,0.1179 +B,12.05,14.63,78.04,449.3,0.1031,0.09092,0.06592,0.027489999999999997,0.1675,0.06043,0.2636,0.7294,1.848,19.87,0.005488,0.01427,0.023219999999999998,0.00566,0.014280000000000001,0.0024219999999999997,13.76,20.7,89.88,582.6,0.1494,0.2156,0.305,0.06548,0.2747,0.08301 +B,13.49,22.3,86.91,561.0,0.08752,0.07697999999999999,0.047510000000000004,0.033839999999999995,0.1809,0.057179999999999995,0.2338,1.3530000000000002,1.735,20.2,0.004455,0.013819999999999999,0.02095,0.01184,0.01641,0.001956,15.15,31.82,99.0,698.8,0.1162,0.1711,0.2282,0.1282,0.2871,0.06917000000000001 +B,11.76,21.6,74.72,427.9,0.08637,0.04966,0.016569999999999998,0.01115,0.1495,0.058879999999999995,0.4062,1.21,2.635,28.47,0.005857,0.009758,0.01168,0.007445,0.024059999999999998,0.0017690000000000002,12.98,25.72,82.98,516.5,0.1085,0.08615,0.055229999999999994,0.03715,0.2433,0.06563 +B,13.64,16.34,87.21,571.8,0.07685,0.06059,0.01857,0.017230000000000002,0.1353,0.05952999999999999,0.1872,0.9234,1.449,14.55,0.004477,0.011770000000000001,0.010790000000000001,0.007956,0.01325,0.0025510000000000003,14.67,23.19,96.08,656.7,0.1089,0.1582,0.105,0.08586,0.2346,0.08025 +B,11.94,18.24,75.71,437.6,0.08261,0.047510000000000004,0.019719999999999998,0.01349,0.1868,0.0611,0.2273,0.6329,1.52,17.47,0.007209999999999999,0.00838,0.01311,0.008,0.01996,0.002635,13.1,21.33,83.67,527.2,0.1144,0.08906,0.09203,0.06296,0.2785,0.07408 +M,18.22,18.7,120.3,1033.0,0.1148,0.1485,0.1772,0.106,0.2092,0.0631,0.8337,1.5930000000000002,4.877,98.81,0.003899,0.02961,0.02817,0.009222,0.026739999999999996,0.0051259999999999995,20.6,24.13,135.1,1321.0,0.128,0.2297,0.2623,0.1325,0.3021,0.07987000000000001 +M,15.1,22.02,97.26,712.8,0.09056,0.07081,0.05252999999999999,0.033339999999999995,0.1616,0.056839999999999995,0.3105,0.8339,2.097,29.91,0.004675,0.0103,0.016030000000000003,0.009222,0.01095,0.001629,18.1,31.69,117.7,1030.0,0.1389,0.2057,0.2712,0.153,0.2675,0.07873 +B,11.52,18.75,73.34,409.0,0.09523999999999999,0.054729999999999994,0.03036,0.02278,0.192,0.059070000000000004,0.3249,0.9591,2.1830000000000003,23.47,0.008328,0.008722,0.01349,0.00867,0.03218,0.002386,12.84,22.47,81.81,506.2,0.1249,0.0872,0.09076000000000001,0.06316000000000001,0.3306,0.07036 +M,19.21,18.57,125.5,1152.0,0.1053,0.1267,0.1323,0.08993999999999999,0.1917,0.05961,0.7275,1.193,4.837,102.5,0.006458,0.02306,0.02945,0.015380000000000001,0.01852,0.0026079999999999996,26.14,28.14,170.1,2145.0,0.1624,0.3511,0.3879,0.2091,0.3537,0.08294 +M,14.71,21.59,95.55,656.9,0.1137,0.1365,0.1293,0.08123,0.2027,0.06758,0.4226,1.15,2.735,40.09,0.0036590000000000004,0.02855,0.02572,0.01272,0.01817,0.004108,17.87,30.7,115.7,985.5,0.1368,0.429,0.3587,0.1834,0.3698,0.1094 +B,13.05,19.31,82.61,527.2,0.0806,0.03789,0.000692,0.0041670000000000006,0.1819,0.05501,0.40399999999999997,1.214,2.595,32.96,0.007490999999999999,0.008593,0.000692,0.0041670000000000006,0.0219,0.00299,14.23,22.25,90.24,624.1,0.1021,0.06191,0.0018449999999999999,0.01111,0.2439,0.06289 +B,8.618,11.79,54.34,224.5,0.09752000000000001,0.05272,0.02061,0.0077989999999999995,0.1683,0.07187,0.1559,0.5796,1.046,8.322000000000001,0.01011,0.01055,0.019809999999999998,0.005742000000000001,0.0209,0.002788,9.507,15.4,59.9,274.9,0.1733,0.1239,0.1168,0.04419,0.322,0.09026 +B,10.17,14.88,64.55,311.9,0.1134,0.08061,0.01084,0.0129,0.2743,0.0696,0.5158,1.4409999999999998,3.312,34.62,0.007514,0.01099,0.007665000000000001,0.008193,0.04183,0.005953,11.02,17.45,69.86,368.6,0.1275,0.09866,0.02168,0.025789999999999997,0.3557,0.0802 +B,8.597999999999999,20.98,54.66,221.8,0.1243,0.08963,0.03,0.009259,0.1828,0.06757,0.3582,2.0669999999999997,2.4930000000000003,18.39,0.01193,0.03162,0.03,0.009259,0.033569999999999996,0.003048,9.565,27.04,62.06,273.9,0.1639,0.1698,0.09001,0.027780000000000003,0.2972,0.07712000000000001 +M,14.25,22.15,96.42,645.7,0.1049,0.2008,0.2135,0.08653,0.1949,0.07292,0.7036,1.268,5.372999999999999,60.78,0.009406999999999999,0.07056,0.06899,0.01848,0.017,0.006113,17.67,29.51,119.1,959.5,0.16399999999999998,0.6247,0.6922,0.1785,0.2844,0.1132 +B,9.173,13.86,59.2,260.9,0.07721,0.08751,0.059879999999999996,0.0218,0.2341,0.06963,0.4098,2.265,2.608,23.52,0.008738,0.03938,0.04312,0.0156,0.04192,0.005822,10.01,19.23,65.59,310.1,0.09836,0.1678,0.1397,0.05087,0.3282,0.0849 +M,12.68,23.84,82.69,499.0,0.1122,0.1262,0.1128,0.06873,0.1905,0.0659,0.4255,1.178,2.927,36.46,0.007781000000000001,0.02648,0.02973,0.0129,0.01635,0.0036009999999999996,17.09,33.47,111.8,888.3,0.1851,0.4061,0.4024,0.1716,0.3383,0.1031 +M,14.78,23.94,97.4,668.3,0.1172,0.1479,0.1267,0.09029,0.1953,0.06654,0.3577,1.281,2.45,35.24,0.006703,0.0231,0.02315,0.01184,0.019,0.0032240000000000003,17.31,33.39,114.6,925.1,0.1648,0.3416,0.3024,0.1614,0.3321,0.08911000000000001 +B,9.465,21.01,60.11,269.4,0.1044,0.07773,0.02172,0.015040000000000001,0.1717,0.06899,0.2351,2.011,1.66,14.2,0.01052,0.01755,0.01714,0.009333,0.02279,0.0042369999999999994,10.41,31.56,67.03,330.7,0.1548,0.1664,0.09412000000000001,0.06517,0.2878,0.09211 +B,11.31,19.04,71.8,394.1,0.08139,0.04701,0.03709,0.0223,0.1516,0.056670000000000005,0.2727,0.9429,1.831,18.15,0.009281999999999999,0.009216,0.020630000000000003,0.008965,0.021830000000000002,0.002146,12.33,23.84,78.0,466.7,0.129,0.09147999999999999,0.1444,0.06961,0.24,0.06641 +B,9.029,17.33,58.79,250.5,0.1066,0.1413,0.313,0.04375,0.2111,0.08046,0.3274,1.194,1.885,17.67,0.009549,0.08606,0.3038,0.03322,0.04197,0.009559,10.31,22.65,65.5,324.7,0.1482,0.4365,1.252,0.175,0.4228,0.1175 +B,12.78,16.49,81.37,502.5,0.09831000000000001,0.05234,0.03653,0.02864,0.159,0.05653,0.2368,0.8732,1.4709999999999999,18.33,0.007962,0.005612,0.01585,0.008662000000000001,0.02254,0.001906,13.46,19.76,85.67,554.9,0.1296,0.07061,0.1039,0.058820000000000004,0.2383,0.0641 +M,18.94,21.31,123.6,1130.0,0.09009,0.1029,0.10800000000000001,0.07951,0.1582,0.05461,0.7888,0.7975,5.486000000000001,96.05,0.004444,0.01652,0.022690000000000002,0.0137,0.013859999999999999,0.001698,24.86,26.58,165.9,1866.0,0.1193,0.2336,0.2687,0.1789,0.2551,0.06589 +B,8.888,14.64,58.79,244.0,0.09783,0.1531,0.08606,0.02872,0.1902,0.0898,0.5262,0.8522,3.168,25.44,0.01721,0.09368,0.05671,0.01766,0.02541,0.02193,9.732999999999999,15.67,62.56,284.4,0.1207,0.2436,0.1434,0.04786,0.2254,0.1084 +M,17.2,24.52,114.2,929.4,0.1071,0.183,0.1692,0.07944,0.1927,0.06487000000000001,0.5907,1.041,3.705,69.47,0.0058200000000000005,0.05616,0.04252,0.01127,0.015269999999999999,0.006299,23.32,33.82,151.6,1681.0,0.1585,0.7394,0.6566,0.1899,0.3313,0.1339 +M,13.8,15.79,90.43,584.1,0.1007,0.128,0.07789,0.05069,0.1662,0.06566,0.2787,0.6205,1.9569999999999999,23.35,0.004717,0.02065,0.01759,0.009206,0.0122,0.00313,16.57,20.86,110.3,812.4,0.1411,0.3542,0.2779,0.1383,0.2589,0.10300000000000001 +B,12.31,16.52,79.19,470.9,0.09172000000000001,0.06829,0.03372,0.022719999999999997,0.172,0.05914,0.2505,1.025,1.74,19.68,0.004854,0.01819,0.01826,0.007965,0.013859999999999999,0.002304,14.11,23.21,89.71,611.1,0.1176,0.1843,0.1703,0.0866,0.2618,0.07608999999999999 +M,16.07,19.65,104.1,817.7,0.09168,0.08424,0.09769,0.06638,0.1798,0.05391,0.7474,1.016,5.029,79.25,0.01082,0.02203,0.035,0.018090000000000002,0.0155,0.001948,19.77,24.56,128.8,1223.0,0.15,0.2045,0.2829,0.152,0.265,0.06387000000000001 +B,13.53,10.94,87.91,559.2,0.1291,0.1047,0.06877,0.06556000000000001,0.2403,0.06641,0.4101,1.014,2.6519999999999997,32.65,0.0134,0.02839,0.01162,0.008239,0.02572,0.006164,14.08,12.49,91.36,605.5,0.1451,0.1379,0.08539,0.07407000000000001,0.271,0.07191 +M,18.05,16.15,120.2,1006.0,0.1065,0.2146,0.1684,0.10800000000000001,0.2152,0.06673,0.9806,0.5505,6.311,134.8,0.007940000000000001,0.05839,0.04658,0.0207,0.025910000000000002,0.007054,22.39,18.91,150.1,1610.0,0.1478,0.5634,0.3786,0.2102,0.3751,0.1108 +M,20.18,23.97,143.7,1245.0,0.1286,0.3454,0.3754,0.1604,0.2906,0.08142,0.9317,1.885,8.649,116.4,0.01038,0.06835,0.1091,0.02593,0.07895,0.005987,23.37,31.72,170.3,1623.0,0.1639,0.6164,0.7681,0.2508,0.544,0.09963999999999999 +B,12.86,18.0,83.19,506.3,0.09934,0.09546,0.03889,0.02315,0.1718,0.05997,0.2655,1.095,1.778,20.35,0.005293,0.01661,0.02071,0.008179,0.017480000000000002,0.002848,14.24,24.82,91.88,622.1,0.1289,0.2141,0.1731,0.07926,0.2779,0.07918 +B,11.45,20.97,73.81,401.5,0.1102,0.09362000000000001,0.04591,0.022330000000000003,0.1842,0.07005,0.3251,2.174,2.077,24.62,0.01037,0.01706,0.02586,0.0075060000000000005,0.01816,0.0039759999999999995,13.11,32.16,84.53,525.1,0.1557,0.1676,0.1755,0.061270000000000005,0.2762,0.08851 +B,13.34,15.86,86.49,520.0,0.1078,0.1535,0.1169,0.06987,0.1942,0.06902,0.28600000000000003,1.016,1.535,12.96,0.006794,0.03575,0.0398,0.01383,0.02134,0.004603,15.53,23.19,96.66,614.9,0.1536,0.4791,0.4858,0.1708,0.3527,0.1016 +M,25.22,24.91,171.5,1878.0,0.1063,0.2665,0.3339,0.1845,0.1829,0.06782,0.8973,1.474,7.382000000000001,120.0,0.008166,0.056929999999999994,0.0573,0.0203,0.01065,0.005893,30.0,33.62,211.7,2562.0,0.1573,0.6076,0.6476,0.2867,0.2355,0.1051 +M,19.1,26.29,129.1,1132.0,0.1215,0.1791,0.1937,0.1469,0.1634,0.07224,0.519,2.91,5.801,67.1,0.0075450000000000005,0.0605,0.02134,0.018430000000000002,0.030560000000000004,0.01039,20.33,32.72,141.3,1298.0,0.1392,0.2817,0.2432,0.1841,0.2311,0.09203 +B,12.0,15.65,76.95,443.3,0.09723,0.07165,0.041510000000000005,0.01863,0.2079,0.05968,0.2271,1.255,1.4409999999999998,16.16,0.0059689999999999995,0.018119999999999997,0.020069999999999998,0.007026999999999999,0.019719999999999998,0.002607,13.67,24.9,87.78,567.9,0.1377,0.2003,0.2267,0.07632,0.3379,0.07923999999999999 +M,18.46,18.52,121.1,1075.0,0.09874,0.1053,0.1335,0.08795,0.2132,0.06022,0.6997,1.475,4.782,80.6,0.006470999999999999,0.01649,0.02806,0.0142,0.0237,0.0037549999999999997,22.93,27.68,152.2,1603.0,0.1398,0.2089,0.3157,0.1642,0.3695,0.08578999999999999 +M,14.48,21.46,94.25,648.2,0.09444,0.09947,0.1204,0.04938,0.2075,0.05636,0.4204,2.22,3.301,38.87,0.009369,0.029830000000000002,0.05371,0.01761,0.02418,0.003249,16.21,29.25,108.4,808.9,0.1306,0.1976,0.3349,0.1225,0.302,0.06846000000000001 +M,19.02,24.59,122.0,1076.0,0.09029,0.1206,0.1468,0.08271,0.1953,0.05629,0.5495,0.6636,3.055,57.65,0.003872,0.01842,0.0371,0.012,0.01964,0.0033369999999999997,24.56,30.41,152.9,1623.0,0.1249,0.3206,0.5755,0.1956,0.3956,0.09287999999999999 +B,12.36,21.8,79.78,466.1,0.08772,0.09445,0.06015,0.03745,0.193,0.06404,0.2978,1.5019999999999998,2.2030000000000003,20.95,0.007112,0.02493,0.027030000000000002,0.01293,0.01958,0.004463,13.83,30.5,91.46,574.7,0.1304,0.2463,0.2434,0.1205,0.2972,0.09261 +B,14.64,15.24,95.77,651.9,0.1132,0.1339,0.09966,0.07064,0.2116,0.06346,0.5115,0.7372,3.8139999999999996,42.76,0.005508,0.04412,0.044360000000000004,0.01623,0.02427,0.004841,16.34,18.24,109.4,803.6,0.1277,0.3089,0.2604,0.1397,0.3151,0.08473 +B,14.62,24.02,94.57,662.7,0.08974,0.08606,0.03102,0.02957,0.1685,0.058660000000000004,0.3721,1.111,2.279,33.76,0.004868,0.01818,0.01121,0.008606,0.02085,0.002893,16.11,29.11,102.9,803.7,0.1115,0.1766,0.09189,0.06946000000000001,0.2522,0.07246 +M,15.37,22.76,100.2,728.2,0.092,0.1036,0.1122,0.07483,0.1717,0.06097,0.3129,0.8413,2.075,29.44,0.009882,0.02444,0.04531,0.01763,0.02471,0.0021420000000000002,16.43,25.84,107.5,830.9,0.1257,0.1997,0.2846,0.1476,0.2556,0.06828 +B,13.27,14.76,84.74,551.7,0.07355,0.05055,0.03261,0.02648,0.1386,0.05318,0.4057,1.153,2.701,36.35,0.004481000000000001,0.01038,0.013580000000000002,0.01082,0.01069,0.0014349999999999999,16.36,22.35,104.5,830.6,0.1006,0.1238,0.135,0.1001,0.2027,0.062060000000000004 +B,13.45,18.3,86.6,555.1,0.1022,0.08165,0.03974,0.0278,0.1638,0.0571,0.295,1.3730000000000002,2.099,25.22,0.005884,0.01491,0.01872,0.009366,0.01884,0.0018170000000000003,15.1,25.94,97.59,699.4,0.1339,0.1751,0.1381,0.07911,0.2678,0.06602999999999999 +M,15.06,19.83,100.3,705.6,0.1039,0.1553,0.17,0.08815,0.1855,0.06284,0.4768,0.9644,3.7060000000000004,47.14,0.00925,0.03715,0.04867,0.01851,0.014980000000000002,0.00352,18.23,24.23,123.5,1025.0,0.1551,0.4203,0.5203,0.2115,0.2834,0.08234 +M,20.26,23.03,132.4,1264.0,0.09078,0.1313,0.1465,0.08682999999999999,0.2095,0.05649,0.7576,1.5090000000000001,4.553999999999999,87.87,0.006016,0.03482,0.042319999999999997,0.01269,0.02657,0.004411,24.22,31.59,156.1,1750.0,0.11900000000000001,0.3539,0.4098,0.1573,0.3689,0.08367999999999999 +B,12.18,17.84,77.79,451.1,0.1045,0.07057000000000001,0.0249,0.029410000000000002,0.19,0.06635,0.3661,1.511,2.41,24.44,0.0054329999999999995,0.01179,0.011309999999999999,0.01519,0.0222,0.003408,12.83,20.92,82.14,495.2,0.114,0.09358,0.0498,0.058820000000000004,0.2227,0.07376 +B,9.787,19.94,62.11,294.5,0.1024,0.05301,0.006829000000000001,0.007937,0.135,0.0689,0.335,2.043,2.1319999999999997,20.05,0.01113,0.01463,0.005308,0.00525,0.018009999999999998,0.005667,10.92,26.29,68.81,366.1,0.1316,0.09473,0.02049,0.023809999999999998,0.1934,0.08988 +B,11.6,12.84,74.34,412.6,0.08983,0.07525,0.041960000000000004,0.0335,0.162,0.06582,0.2315,0.5391,1.475,15.75,0.0061530000000000005,0.0133,0.01693,0.006884,0.01651,0.0025510000000000003,13.06,17.16,82.96,512.5,0.1431,0.1851,0.1922,0.08449,0.2772,0.08756 +M,14.42,19.77,94.48,642.5,0.09752000000000001,0.1141,0.09387999999999999,0.05839,0.1879,0.0639,0.2895,1.851,2.376,26.85,0.008005,0.02895,0.03321,0.014240000000000001,0.01462,0.004452,16.33,30.86,109.5,826.4,0.1431,0.3026,0.3194,0.1565,0.2718,0.09353 +M,13.61,24.98,88.05,582.7,0.09487999999999999,0.08511,0.08625,0.04489,0.1609,0.058710000000000005,0.4565,1.29,2.861,43.14,0.005872,0.01488,0.02647,0.009921,0.01465,0.002355,16.99,35.27,108.6,906.5,0.1265,0.1943,0.3169,0.1184,0.2651,0.07397000000000001 +B,6.981,13.43,43.79,143.5,0.11699999999999999,0.07568,0.0,0.0,0.193,0.07818,0.2241,1.508,1.5530000000000002,9.833,0.010190000000000001,0.01084,0.0,0.0,0.02659,0.0041,7.93,19.54,50.41,185.2,0.1584,0.1202,0.0,0.0,0.2932,0.09382 +B,12.18,20.52,77.22,458.7,0.08012999999999999,0.04038,0.02383,0.0177,0.1739,0.05677000000000001,0.1924,1.571,1.183,14.68,0.0050799999999999994,0.006097999999999999,0.01069,0.006797,0.014469999999999998,0.001532,13.34,32.84,84.58,547.8,0.1123,0.08862,0.1145,0.07431,0.2694,0.06878 +B,9.876,19.4,63.95,298.3,0.1005,0.09697,0.06154,0.030289999999999997,0.1945,0.06322,0.1803,1.222,1.528,11.77,0.009058,0.02196,0.030289999999999997,0.01112,0.01609,0.0035700000000000003,10.76,26.83,72.22,361.2,0.1559,0.2302,0.2644,0.09749,0.2622,0.0849 +B,10.49,19.29,67.41,336.1,0.09988999999999999,0.08578,0.02995,0.01201,0.2217,0.06481,0.355,1.534,2.302,23.13,0.007595,0.02219,0.0288,0.008614,0.0271,0.0034509999999999996,11.54,23.31,74.22,402.8,0.1219,0.1486,0.07987000000000001,0.03203,0.2826,0.07552 +M,13.11,15.56,87.21,530.2,0.1398,0.1765,0.2071,0.09601,0.1925,0.07692,0.3908,0.9238,2.41,34.66,0.007162000000000001,0.02912,0.054729999999999994,0.013880000000000002,0.01547,0.007098,16.31,22.4,106.4,827.2,0.1862,0.4099,0.6376,0.1986,0.3147,0.1405 +B,11.64,18.33,75.17,412.5,0.1142,0.1017,0.0707,0.03485,0.1801,0.0652,0.306,1.6569999999999998,2.155,20.62,0.00854,0.0231,0.02945,0.013980000000000001,0.01565,0.0038399999999999997,13.14,29.26,85.51,521.7,0.1688,0.266,0.2873,0.1218,0.2806,0.09097000000000001 +B,12.36,18.54,79.01,466.7,0.08477,0.06815,0.026430000000000002,0.019209999999999998,0.1602,0.060660000000000006,0.1199,0.8944,0.8484,9.227,0.003457,0.01047,0.01167,0.005558,0.01251,0.001356,13.29,27.49,85.56,544.1,0.1184,0.1963,0.1937,0.08442000000000001,0.2983,0.07185 +M,22.27,19.67,152.8,1509.0,0.1326,0.2768,0.4264,0.1823,0.2556,0.07039,1.215,1.545,10.05,170.0,0.006515000000000001,0.08668,0.10400000000000001,0.0248,0.03112,0.005037,28.4,28.01,206.8,2360.0,0.1701,0.6997,0.9608,0.29100000000000004,0.4055,0.09788999999999999 +B,11.34,21.26,72.48,396.5,0.08759,0.06575,0.051329999999999994,0.01899,0.1487,0.06529,0.2344,0.9861,1.597,16.41,0.009113,0.015569999999999999,0.02443,0.006435,0.01568,0.002477,13.01,29.15,83.99,518.1,0.1699,0.2196,0.312,0.08277999999999999,0.2829,0.08832000000000001 +B,9.777000000000001,16.99,62.5,290.2,0.1037,0.08404,0.04334,0.01778,0.1584,0.07065,0.40299999999999997,1.4240000000000002,2.747,22.87,0.01385,0.02932,0.027219999999999998,0.01023,0.03281,0.004638000000000001,11.05,21.47,71.68,367.0,0.1467,0.1765,0.13,0.05334,0.2533,0.08467999999999999 +B,12.63,20.76,82.15,480.4,0.09933,0.1209,0.1065,0.06021,0.1735,0.0707,0.3424,1.8030000000000002,2.7110000000000003,20.48,0.01291,0.04042,0.05101,0.02295,0.02144,0.0058909999999999995,13.33,25.47,89.0,527.4,0.1287,0.225,0.2216,0.1105,0.2226,0.08486 +B,14.26,19.65,97.83,629.9,0.07837000000000001,0.2233,0.3003,0.07798,0.1704,0.07769,0.3628,1.49,3.3989999999999996,29.25,0.005298,0.07446,0.1435,0.02292,0.025660000000000002,0.012980000000000002,15.3,23.73,107.0,709.0,0.08949,0.4193,0.6783,0.1505,0.2398,0.1082 +B,10.51,20.19,68.64,334.2,0.1122,0.1303,0.06476,0.030680000000000002,0.1922,0.07782,0.3336,1.86,2.041,19.91,0.01188,0.037469999999999996,0.04591,0.01544,0.022869999999999998,0.006792,11.16,22.75,72.62,374.4,0.13,0.2049,0.1295,0.061360000000000005,0.2383,0.09026 +B,8.726,15.83,55.84,230.9,0.115,0.08201,0.041319999999999996,0.01924,0.1649,0.07633,0.1665,0.5864,1.354,8.966000000000001,0.008261,0.02213,0.03259,0.0104,0.01708,0.0038060000000000004,9.628,19.62,64.48,284.4,0.1724,0.2364,0.2456,0.105,0.2926,0.1017 +B,11.93,21.53,76.53,438.6,0.09767999999999999,0.07849,0.033280000000000004,0.02008,0.1688,0.061939999999999995,0.3118,0.9227,2.0,24.79,0.007803,0.02507,0.01835,0.007711,0.01278,0.003856,13.67,26.15,87.54,583.0,0.15,0.2399,0.1503,0.07247,0.2438,0.08541 +B,8.95,15.76,58.74,245.2,0.09462000000000001,0.1243,0.09262999999999999,0.02308,0.1305,0.07163,0.3132,0.9789,3.28,16.94,0.01835,0.0676,0.09262999999999999,0.02308,0.02384,0.005601,9.414,17.07,63.34,270.0,0.1179,0.1879,0.1544,0.03846,0.1652,0.07722000000000001 +M,14.87,16.67,98.64,682.5,0.1162,0.1649,0.16899999999999998,0.08922999999999999,0.2157,0.06767999999999999,0.4266,0.9489,2.989,41.18,0.006984999999999999,0.02563,0.03011,0.012709999999999999,0.01602,0.0038840000000000003,18.81,27.37,127.1,1095.0,0.1878,0.44799999999999995,0.4704,0.2027,0.3585,0.1065 +M,15.78,22.91,105.7,782.6,0.1155,0.1752,0.2133,0.09479,0.2096,0.07331,0.552,1.072,3.5980000000000003,58.63,0.008699,0.039760000000000004,0.0595,0.0139,0.01495,0.005984000000000001,20.19,30.5,130.3,1272.0,0.1855,0.4925,0.7356,0.2034,0.3274,0.1252 +M,17.95,20.01,114.2,982.0,0.08402000000000001,0.06722,0.07293,0.05596,0.2129,0.05025,0.5506,1.214,3.3569999999999998,54.04,0.004024,0.008422,0.02291,0.009863,0.05014,0.001902,20.58,27.83,129.2,1261.0,0.1072,0.1202,0.2249,0.1185,0.4882,0.061110000000000005 +B,11.41,10.82,73.34,403.3,0.09373,0.06685,0.03512,0.02623,0.1667,0.06113,0.1408,0.4607,1.103,10.5,0.00604,0.01529,0.01514,0.00646,0.01344,0.002206,12.82,15.97,83.74,510.5,0.1548,0.239,0.2102,0.08957999999999999,0.3016,0.08523 +M,18.66,17.12,121.4,1077.0,0.1054,0.11,0.1457,0.08665,0.1966,0.06213,0.7128,1.581,4.895,90.47,0.008102,0.02101,0.03342,0.01601,0.02045,0.00457,22.25,24.9,145.4,1549.0,0.1503,0.2291,0.3272,0.1674,0.2894,0.08456 +M,24.25,20.2,166.2,1761.0,0.1447,0.2867,0.4268,0.2012,0.2655,0.06877,1.5090000000000001,3.12,9.807,233.0,0.02333,0.09806000000000001,0.1278,0.01822,0.04547,0.009875,26.02,23.99,180.9,2073.0,0.1696,0.4244,0.5803,0.2248,0.3222,0.08009 +B,14.5,10.89,94.28,640.7,0.1101,0.1099,0.08842,0.05778,0.1856,0.06402000000000001,0.2929,0.857,1.9280000000000002,24.19,0.0038179999999999998,0.012759999999999999,0.02882,0.012,0.0191,0.0028079999999999997,15.7,15.98,102.8,745.5,0.1313,0.1788,0.256,0.1221,0.2889,0.08006 +B,13.37,16.39,86.1,553.5,0.07115,0.07325,0.08092,0.027999999999999997,0.1422,0.05823,0.1639,1.14,1.2229999999999999,14.66,0.005919,0.0327,0.049569999999999996,0.01038,0.01208,0.004076,14.26,22.75,91.99,632.1,0.1025,0.2531,0.3308,0.08978,0.2048,0.07628 +B,13.85,17.21,88.44,588.7,0.08785,0.061360000000000005,0.0142,0.01141,0.1614,0.0589,0.2185,0.8561,1.495,17.91,0.004599,0.009169,0.009127,0.004814,0.01247,0.0017079999999999999,15.49,23.58,100.3,725.9,0.1157,0.135,0.08115,0.051039999999999995,0.2364,0.07182000000000001 +M,13.61,24.69,87.76,572.6,0.09258,0.07862000000000001,0.05285,0.03085,0.1761,0.0613,0.231,1.005,1.7519999999999998,19.83,0.0040880000000000005,0.01174,0.01796,0.00688,0.01323,0.001465,16.89,35.64,113.2,848.7,0.1471,0.2884,0.3796,0.1329,0.34700000000000003,0.079 +M,19.0,18.91,123.4,1138.0,0.08217,0.08027999999999999,0.09271,0.05627000000000001,0.1946,0.05044,0.6896,1.3419999999999999,5.216,81.23,0.0044280000000000005,0.02731,0.0404,0.013609999999999999,0.0203,0.002686,22.32,25.73,148.2,1538.0,0.1021,0.2264,0.3207,0.1218,0.2841,0.06541 +B,15.1,16.39,99.58,674.5,0.115,0.1807,0.1138,0.08534,0.2001,0.06467,0.4309,1.068,2.7960000000000003,39.84,0.009006,0.04185,0.03204,0.022580000000000003,0.023530000000000002,0.004984000000000001,16.11,18.33,105.9,762.6,0.1386,0.2883,0.196,0.1423,0.259,0.07779 +M,19.79,25.12,130.4,1192.0,0.1015,0.1589,0.2545,0.1149,0.2202,0.06113,0.4953,1.199,2.765,63.33,0.005033,0.03179,0.04755,0.01043,0.015780000000000002,0.0032240000000000003,22.63,33.58,148.7,1589.0,0.1275,0.3861,0.5673,0.1732,0.3305,0.08465 +B,12.19,13.29,79.08,455.8,0.1066,0.09509,0.02855,0.02882,0.188,0.06471,0.2005,0.8163,1.973,15.24,0.006773,0.02456,0.01018,0.008094,0.026619999999999998,0.004143,13.34,17.81,91.38,545.2,0.1427,0.2585,0.09915,0.08187,0.3469,0.09241 +M,15.46,19.48,101.7,748.9,0.1092,0.1223,0.1466,0.08087000000000001,0.1931,0.057960000000000005,0.4743,0.7859,3.094,48.31,0.00624,0.01484,0.028130000000000002,0.01093,0.013969999999999998,0.002461,19.26,26.0,124.9,1156.0,0.1546,0.2394,0.3791,0.1514,0.2837,0.08019 +M,16.16,21.54,106.2,809.8,0.1008,0.1284,0.1043,0.05612999999999999,0.21600000000000003,0.058910000000000004,0.4332,1.265,2.844,43.68,0.004877,0.01952,0.02219,0.009231,0.01535,0.002373,19.47,31.68,129.7,1175.0,0.1395,0.3055,0.2992,0.1312,0.348,0.07619 +B,15.71,13.93,102.0,761.7,0.09462000000000001,0.09462000000000001,0.07135,0.059329999999999994,0.1816,0.057229999999999996,0.3117,0.8155,1.972,27.94,0.005217,0.01515,0.01678,0.01268,0.01669,0.00233,17.5,19.25,114.3,922.8,0.1223,0.1949,0.1709,0.1374,0.2723,0.07071000000000001 +M,18.45,21.91,120.2,1075.0,0.0943,0.09709,0.1153,0.06847,0.1692,0.05727,0.5959,1.202,3.766,68.35,0.006000999999999999,0.014219999999999998,0.02855,0.009148,0.01492,0.002205,22.52,31.39,145.6,1590.0,0.1465,0.2275,0.3965,0.1379,0.3109,0.0761 +M,12.77,22.47,81.72,506.3,0.09055,0.05761,0.04711,0.027039999999999998,0.1585,0.06065,0.2367,1.38,1.4569999999999999,19.87,0.007499,0.01202,0.02332,0.00892,0.01647,0.002629,14.49,33.37,92.04,653.6,0.1419,0.1523,0.2177,0.09331,0.2829,0.08067 +B,11.71,16.67,74.72,423.6,0.1051,0.06095,0.03592,0.026000000000000002,0.1339,0.05945,0.4489,2.508,3.258,34.37,0.0065780000000000005,0.0138,0.026619999999999998,0.013069999999999998,0.013590000000000001,0.0037070000000000002,13.33,25.48,86.16,546.7,0.1271,0.1028,0.1046,0.06967999999999999,0.1712,0.07343 +B,11.43,15.39,73.06,399.8,0.09639,0.06888999999999999,0.03503,0.02875,0.1734,0.05865,0.1759,0.9938,1.143,12.67,0.0051329999999999995,0.01521,0.01434,0.008602,0.015009999999999999,0.001588,12.32,22.02,79.93,462.0,0.11900000000000001,0.1648,0.1399,0.08476,0.2676,0.06765 +M,14.95,17.57,96.85,678.1,0.1167,0.1305,0.1539,0.08624,0.1957,0.06216,1.296,1.452,8.419,101.9,0.01,0.0348,0.06577000000000001,0.028010000000000004,0.05168,0.0028870000000000002,18.55,21.43,121.4,971.4,0.1411,0.2164,0.3355,0.1667,0.3414,0.07147 +B,11.28,13.39,73.0,384.8,0.1164,0.1136,0.04635,0.04796,0.1771,0.06072,0.3384,1.3430000000000002,1.851,26.33,0.01127,0.034980000000000004,0.02187,0.01965,0.0158,0.003442,11.92,15.77,76.53,434.0,0.1367,0.1822,0.08669,0.08611,0.2102,0.06784 +B,9.738,11.97,61.24,288.5,0.0925,0.04102,0.0,0.0,0.1903,0.06422,0.1988,0.496,1.218,12.26,0.00604,0.0056560000000000004,0.0,0.0,0.02277,0.00322,10.62,14.1,66.53,342.9,0.1234,0.07203999999999999,0.0,0.0,0.3105,0.08151 +M,16.11,18.05,105.1,813.0,0.09721,0.1137,0.09447,0.05943,0.1861,0.062479999999999994,0.7049,1.3319999999999999,4.533,74.08,0.00677,0.01938,0.03067,0.01167,0.01875,0.0034340000000000004,19.92,25.27,129.0,1233.0,0.1314,0.2236,0.2802,0.1216,0.2792,0.08158 +B,11.43,17.31,73.66,398.0,0.1092,0.09486,0.020309999999999998,0.018609999999999998,0.1645,0.06562,0.2843,1.9080000000000001,1.9369999999999998,21.38,0.006664,0.01735,0.01158,0.00952,0.02282,0.0035259999999999996,12.78,26.76,82.66,503.0,0.1413,0.1792,0.07708,0.06402000000000001,0.2584,0.08096 +B,12.9,15.92,83.74,512.2,0.08677,0.09509,0.04894,0.03088,0.1778,0.06235,0.2143,0.7712,1.689,16.64,0.005324000000000001,0.01563,0.0151,0.0075840000000000005,0.02104,0.001887,14.48,21.82,97.17,643.8,0.1312,0.2548,0.209,0.1012,0.3549,0.08118 +B,10.75,14.97,68.26,355.3,0.07793,0.05139,0.02251,0.007875,0.1399,0.05687999999999999,0.2525,1.239,1.806,17.74,0.006547,0.01781,0.02018,0.005612,0.01671,0.00236,11.95,20.72,77.79,441.2,0.1076,0.1223,0.09755,0.03413,0.23,0.06769 +B,11.9,14.65,78.11,432.8,0.1152,0.1296,0.0371,0.03003,0.1995,0.07839,0.3962,0.6538,3.0210000000000004,25.03,0.01017,0.04741,0.027889999999999998,0.0111,0.03127,0.009423,13.15,16.51,86.26,509.6,0.1424,0.2517,0.0942,0.06042,0.2727,0.1036 +M,11.8,16.58,78.99,432.0,0.1091,0.17,0.1659,0.07415,0.2678,0.07371,0.3197,1.426,2.281,24.72,0.005427,0.03633,0.04649,0.018430000000000002,0.05628,0.004635,13.74,26.38,91.93,591.7,0.1385,0.4092,0.4504,0.1865,0.5774,0.10300000000000001 +B,14.95,18.77,97.84,689.5,0.08138,0.1167,0.0905,0.03562,0.1744,0.06493,0.42200000000000004,1.909,3.2710000000000004,39.43,0.00579,0.04877,0.053029999999999994,0.015269999999999999,0.03356,0.009368000000000001,16.25,25.47,107.1,809.7,0.0997,0.2521,0.25,0.08405,0.2852,0.09218 +B,14.44,15.18,93.97,640.1,0.0997,0.1021,0.08487,0.05532,0.1724,0.06081,0.2406,0.7394,2.12,21.2,0.005706,0.022969999999999997,0.031139999999999998,0.01493,0.01454,0.0025280000000000003,15.85,19.85,108.6,766.9,0.1316,0.2735,0.3103,0.1599,0.2691,0.07683 +B,13.74,17.91,88.12,585.0,0.07944,0.06376,0.028810000000000002,0.01329,0.1473,0.0558,0.25,0.7574,1.5730000000000002,21.47,0.002838,0.01592,0.0178,0.005828,0.01329,0.0019760000000000003,15.34,22.46,97.19,725.9,0.09711,0.1824,0.1564,0.06019,0.235,0.07014 +B,13.0,20.78,83.51,519.4,0.1135,0.07589,0.03136,0.02645,0.254,0.06087000000000001,0.4202,1.3219999999999998,2.873,34.78,0.007017,0.01142,0.01949,0.01153,0.02951,0.001533,14.16,24.11,90.82,616.7,0.1297,0.1105,0.08112,0.06296,0.3196,0.06435 +B,8.219,20.7,53.27,203.9,0.09405,0.1305,0.1321,0.02168,0.2222,0.08261,0.1935,1.962,1.2429999999999999,10.21,0.01243,0.05416,0.07753,0.01022,0.02309,0.01178,9.092,29.72,58.08,249.8,0.163,0.431,0.5381,0.07879,0.3322,0.1486 +B,9.731,15.34,63.78,300.2,0.1072,0.1599,0.4108,0.07857,0.2548,0.09296,0.8245,2.6639999999999997,4.073,49.85,0.01097,0.09586,0.396,0.05279,0.035460000000000005,0.02984,11.02,19.49,71.04,380.5,0.1292,0.2772,0.8216,0.1571,0.3108,0.1259 +B,11.15,13.08,70.87,381.9,0.09754,0.05113,0.019819999999999997,0.01786,0.183,0.06105,0.2251,0.7815,1.429,15.48,0.009019,0.008985,0.01196,0.008232,0.023880000000000002,0.0016190000000000002,11.99,16.3,76.25,440.8,0.1341,0.08971,0.07116,0.055060000000000005,0.2859,0.06772 +B,13.15,15.34,85.31,538.9,0.09383999999999999,0.08498,0.09293,0.03483,0.1822,0.06207000000000001,0.271,0.7927,1.819,22.79,0.008584,0.02017,0.03047,0.009536,0.02769,0.003479,14.77,20.5,97.67,677.3,0.1478,0.2256,0.3009,0.09722,0.3849,0.08632999999999999 +B,12.25,17.94,78.27,460.3,0.08653999999999999,0.06679,0.03885,0.02331,0.19699999999999998,0.062279999999999995,0.22,0.9823,1.484,16.51,0.005518,0.015619999999999998,0.01994,0.007923999999999999,0.01799,0.002484,13.59,25.22,86.6,564.2,0.1217,0.1788,0.1943,0.08211,0.3113,0.08132 +M,17.68,20.74,117.4,963.7,0.1115,0.1665,0.1855,0.1054,0.1971,0.06166,0.8113,1.4,5.54,93.91,0.009037,0.04954,0.05206,0.01841,0.01778,0.004968,20.47,25.11,132.9,1302.0,0.1418,0.3498,0.3583,0.1515,0.2463,0.07737999999999999 +B,16.84,19.46,108.4,880.2,0.07445,0.07222999999999999,0.0515,0.027710000000000002,0.1844,0.05268,0.4789,2.06,3.4789999999999996,46.61,0.003443,0.02661,0.030560000000000004,0.0111,0.0152,0.001519,18.22,28.07,120.3,1032.0,0.08774,0.171,0.1882,0.08436,0.2527,0.05972 +B,12.06,12.74,76.84,448.6,0.09311,0.052410000000000005,0.019719999999999998,0.01963,0.159,0.059070000000000004,0.1822,0.7285,1.171,13.25,0.005528,0.009789,0.008342,0.006273,0.01465,0.00253,13.14,18.41,84.08,532.8,0.1275,0.1232,0.08636,0.07025,0.2514,0.07898 +B,10.9,12.96,68.69,366.8,0.07515,0.03718,0.00309,0.006587999999999999,0.1442,0.057429999999999995,0.2818,0.7614,1.808,18.54,0.006142,0.0061340000000000006,0.001835,0.0035759999999999998,0.01637,0.002665,12.36,18.2,78.07,470.0,0.1171,0.08294,0.01854,0.03953,0.2738,0.07685 +B,11.75,20.18,76.1,419.8,0.1089,0.1141,0.06842999999999999,0.037380000000000004,0.1993,0.06452999999999999,0.5018,1.693,3.926,38.34,0.009433,0.02405,0.04167,0.01152,0.03397,0.0050609999999999995,13.32,26.21,88.91,543.9,0.1358,0.1892,0.1956,0.07909,0.3168,0.07987000000000001 +M,19.19,15.94,126.3,1157.0,0.08694,0.1185,0.1193,0.09667,0.1741,0.05176,1.0,0.6336,6.971,119.3,0.009406,0.03055,0.04344,0.027939999999999996,0.031560000000000005,0.0033619999999999995,22.03,17.81,146.6,1495.0,0.1124,0.2016,0.2264,0.1777,0.2443,0.06251 +M,19.59,18.15,130.7,1214.0,0.11199999999999999,0.1666,0.2508,0.1286,0.2027,0.060820000000000006,0.7364,1.048,4.792,97.07,0.004057,0.02277,0.04029,0.013030000000000002,0.01686,0.0033179999999999998,26.73,26.39,174.9,2232.0,0.1438,0.3846,0.6809999999999999,0.2247,0.3643,0.09222999999999999 +B,12.34,22.22,79.85,464.5,0.1012,0.1015,0.0537,0.02822,0.1551,0.06761,0.2949,1.656,1.955,21.55,0.011340000000000001,0.03175,0.03125,0.01135,0.01879,0.0053479999999999995,13.58,28.68,87.36,553.0,0.1452,0.2338,0.1688,0.08194,0.2268,0.09082 +M,23.27,22.04,152.1,1686.0,0.08438999999999999,0.1145,0.1324,0.09702000000000001,0.1801,0.055529999999999996,0.6642,0.8561,4.603,97.85,0.00491,0.02544,0.02822,0.01623,0.01956,0.00374,28.01,28.22,184.2,2403.0,0.1228,0.3583,0.3948,0.2346,0.3589,0.09187000000000001 +B,14.97,19.76,95.5,690.2,0.08421000000000001,0.053520000000000005,0.019469999999999998,0.01939,0.1515,0.052660000000000005,0.184,1.065,1.286,16.64,0.0036340000000000005,0.007983,0.008268000000000001,0.006431999999999999,0.01924,0.0015199999999999999,15.98,25.82,102.3,782.1,0.1045,0.09995,0.0775,0.05754,0.2646,0.06085 +B,10.8,9.71,68.77,357.6,0.09594,0.05736,0.02531,0.016980000000000002,0.1381,0.064,0.1728,0.4064,1.126,11.48,0.007809,0.009816,0.01099,0.005344,0.01254,0.00212,11.6,12.02,73.66,414.0,0.1436,0.1257,0.1047,0.04603,0.209,0.07699 +M,16.78,18.8,109.3,886.3,0.08865,0.09182,0.08422,0.06576,0.1893,0.05534,0.599,1.391,4.129,67.34,0.006123,0.0247,0.026260000000000002,0.016040000000000002,0.020909999999999998,0.003493,20.05,26.3,130.7,1260.0,0.1168,0.2119,0.2318,0.1474,0.281,0.07228 +M,17.47,24.68,116.1,984.6,0.1049,0.1603,0.2159,0.1043,0.1538,0.06365,1.088,1.41,7.337000000000001,122.3,0.006174,0.03634,0.046439999999999995,0.01569,0.01145,0.00512,23.14,32.33,155.3,1660.0,0.1376,0.38299999999999995,0.489,0.1721,0.21600000000000003,0.09300000000000001 +B,14.97,16.95,96.22,685.9,0.09855,0.07885,0.026019999999999998,0.03781,0.17800000000000002,0.0565,0.2713,1.217,1.893,24.28,0.0050799999999999994,0.0137,0.007276,0.009073000000000001,0.0135,0.0017059999999999998,16.11,23.0,104.6,793.7,0.1216,0.1637,0.06648,0.08485,0.2404,0.06427999999999999 +B,12.32,12.39,78.85,464.1,0.1028,0.06981,0.039869999999999996,0.037000000000000005,0.1959,0.05955,0.23600000000000002,0.6656,1.67,17.43,0.008045,0.0118,0.01683,0.01241,0.01924,0.002248,13.5,15.64,86.97,549.1,0.1385,0.1266,0.1242,0.09391000000000001,0.2827,0.06771 +M,13.43,19.63,85.84,565.4,0.09047999999999999,0.06287999999999999,0.05857999999999999,0.03438,0.1598,0.05671,0.4697,1.147,3.142,43.4,0.0060030000000000005,0.01063,0.021509999999999998,0.009443,0.0152,0.0018679999999999999,17.98,29.87,116.6,993.6,0.1401,0.1546,0.2644,0.11599999999999999,0.2884,0.07371 +M,15.46,11.89,102.5,736.9,0.1257,0.1555,0.2032,0.1097,0.1966,0.07069,0.4209,0.6583,2.805,44.64,0.005393,0.023209999999999998,0.04303,0.0132,0.01792,0.004168,18.79,17.04,125.0,1102.0,0.1531,0.3583,0.583,0.1827,0.3216,0.10099999999999999 +B,11.08,14.71,70.21,372.7,0.1006,0.057429999999999995,0.02363,0.025830000000000002,0.1566,0.06669,0.2073,1.805,1.3769999999999998,19.08,0.01496,0.02121,0.014530000000000001,0.01583,0.03082,0.004785,11.35,16.82,72.01,396.5,0.1216,0.0824,0.03938,0.04306,0.1902,0.07313 +B,10.66,15.15,67.49,349.6,0.08792,0.043019999999999996,0.0,0.0,0.1928,0.05975,0.3309,1.925,2.155,21.98,0.008713,0.01017,0.0,0.0,0.03265,0.0010019999999999999,11.54,19.2,73.2,408.3,0.1076,0.06791,0.0,0.0,0.271,0.06164 +B,8.671,14.45,54.42,227.2,0.09137999999999999,0.04276,0.0,0.0,0.1722,0.06724,0.2204,0.7873,1.435,11.36,0.009172,0.008006999999999998,0.0,0.0,0.027110000000000002,0.003399,9.262,17.04,58.36,259.2,0.1162,0.07057000000000001,0.0,0.0,0.2592,0.07848 +B,9.904,18.06,64.6,302.4,0.09698999999999999,0.1294,0.1307,0.037160000000000006,0.1669,0.08116,0.4311,2.261,3.1319999999999997,27.48,0.01286,0.08807999999999999,0.1197,0.0246,0.0388,0.01792,11.26,24.39,73.07,390.2,0.1301,0.295,0.3486,0.0991,0.2614,0.1162 +M,16.46,20.11,109.3,832.9,0.09831000000000001,0.1556,0.1793,0.08866,0.1794,0.06323,0.3037,1.284,2.4819999999999998,31.59,0.006626999999999999,0.04094,0.05371,0.01813,0.016819999999999998,0.004584,17.79,28.45,123.5,981.2,0.1415,0.4667,0.5862,0.2035,0.3054,0.09519 +B,13.01,22.22,82.01,526.4,0.06251,0.01938,0.0015949999999999998,0.001852,0.1395,0.05234,0.1731,1.1420000000000001,1.101,14.34,0.003418,0.002252,0.0015949999999999998,0.001852,0.016130000000000002,0.0009683,14.0,29.02,88.18,608.8,0.08125,0.034319999999999996,0.007977,0.009259,0.2295,0.058429999999999996 +B,12.81,13.06,81.29,508.8,0.08739,0.037739999999999996,0.009193000000000002,0.0133,0.1466,0.061329999999999996,0.2889,0.9899,1.778,21.79,0.008534,0.006364,0.00618,0.007408,0.01065,0.003351,13.63,16.15,86.7,570.7,0.1162,0.05445,0.02758,0.0399,0.1783,0.07318999999999999 +M,27.22,21.87,182.1,2250.0,0.1094,0.1914,0.2871,0.1878,0.18,0.0577,0.8361,1.4809999999999999,5.82,128.7,0.004631000000000001,0.02537,0.031089999999999996,0.01241,0.01575,0.002747,33.12,32.85,220.8,3216.0,0.1472,0.4034,0.534,0.2688,0.2856,0.08082 +M,21.09,26.57,142.7,1311.0,0.1141,0.2832,0.2487,0.1496,0.2395,0.07397999999999999,0.6298,0.7629,4.414,81.46,0.004253,0.04759,0.03872,0.01567,0.01798,0.005295,26.68,33.48,176.5,2089.0,0.1491,0.7584,0.6779999999999999,0.2903,0.4098,0.1284 +M,15.7,20.31,101.2,766.6,0.09597,0.08799,0.06592999999999999,0.05189,0.1618,0.05549,0.3699,1.15,2.406,40.98,0.004626,0.02263,0.019540000000000002,0.009767,0.01547,0.00243,20.11,32.82,129.3,1269.0,0.1414,0.3547,0.2902,0.1541,0.3437,0.08631 +B,11.41,14.92,73.53,402.0,0.09059,0.08155,0.061810000000000004,0.02361,0.1167,0.06217,0.3344,1.1079999999999999,1.902,22.77,0.0073560000000000006,0.03728,0.05915,0.01712,0.02165,0.004784,12.37,17.7,79.12,467.2,0.1121,0.161,0.1648,0.06296,0.1811,0.07427 +M,15.28,22.41,98.92,710.6,0.09057,0.1052,0.05375,0.03263,0.1727,0.06317,0.2054,0.4956,1.344,19.53,0.00329,0.01395,0.017740000000000002,0.0060090000000000005,0.01172,0.002575,17.8,28.03,113.8,973.1,0.1301,0.3299,0.363,0.1226,0.3175,0.09772 +B,10.08,15.11,63.76,317.5,0.09267,0.04695,0.0015970000000000001,0.002404,0.1703,0.06047999999999999,0.4245,1.268,2.68,26.43,0.01439,0.012,0.0015970000000000001,0.002404,0.02538,0.0034700000000000004,11.87,21.18,75.39,437.0,0.1521,0.1019,0.00692,0.01042,0.2933,0.07697000000000001 +M,18.31,18.58,118.6,1041.0,0.08588,0.08467999999999999,0.08169,0.05814,0.1621,0.05425,0.2577,0.4757,1.817,28.92,0.002866,0.009181,0.014119999999999999,0.006719,0.01069,0.0010869999999999999,21.31,26.36,139.2,1410.0,0.1234,0.2445,0.3538,0.1571,0.3206,0.06938 +B,11.71,17.19,74.68,420.3,0.09774,0.06141,0.03809,0.032389999999999995,0.1516,0.06095,0.2451,0.7655,1.742,17.86,0.006905,0.008704,0.019780000000000002,0.01185,0.018969999999999997,0.0016710000000000002,13.01,21.39,84.42,521.5,0.1323,0.10400000000000001,0.1521,0.1099,0.2572,0.07097 +B,11.81,17.39,75.27,428.9,0.1007,0.05562,0.023530000000000002,0.01553,0.1718,0.0578,0.1859,1.926,1.011,14.47,0.007831,0.008776,0.01556,0.00624,0.031389999999999994,0.0019879999999999997,12.57,26.48,79.57,489.5,0.1356,0.1,0.08803,0.04306,0.32,0.06576 +B,12.3,15.9,78.83,463.7,0.0808,0.07253,0.038439999999999995,0.01654,0.1667,0.05474,0.2382,0.8355,1.6869999999999998,18.32,0.0059960000000000005,0.022119999999999997,0.021169999999999998,0.0064329999999999995,0.02025,0.001725,13.35,19.59,86.65,546.7,0.1096,0.165,0.1423,0.04815,0.2482,0.06306 +M,14.22,23.12,94.37,609.9,0.1075,0.2413,0.1981,0.06617999999999999,0.2384,0.07542,0.28600000000000003,2.11,2.112,31.72,0.00797,0.1354,0.1166,0.016659999999999998,0.05113,0.01172,15.74,37.18,106.4,762.4,0.1533,0.9327,0.8488,0.1772,0.5166,0.1446 +B,12.77,21.41,82.02,507.4,0.08749,0.06601,0.03112,0.02864,0.1694,0.06287000000000001,0.7311,1.7480000000000002,5.118,53.65,0.004571,0.0179,0.021759999999999998,0.01757,0.03373,0.005875,13.75,23.5,89.04,579.5,0.09387999999999999,0.08978,0.05186,0.04773,0.2179,0.06871000000000001 +B,9.72,18.22,60.73,288.1,0.0695,0.02344,0.0,0.0,0.1653,0.06447,0.3539,4.885,2.23,21.69,0.001713,0.006736,0.0,0.0,0.037989999999999996,0.0016879999999999998,9.968,20.83,62.25,303.8,0.07117000000000001,0.02729,0.0,0.0,0.1909,0.06559 +M,12.34,26.86,81.15,477.4,0.1034,0.1353,0.1085,0.04562,0.1943,0.06937,0.4053,1.8090000000000002,2.642,34.44,0.009098,0.03845,0.037630000000000004,0.01321,0.01878,0.005672,15.65,39.34,101.7,768.9,0.1785,0.4706,0.4425,0.1459,0.3215,0.1205 +M,14.86,23.21,100.4,671.4,0.1044,0.198,0.1697,0.08878,0.1737,0.06672,0.2796,0.9622,3.591,25.2,0.008081,0.05122,0.055510000000000004,0.01883,0.02545,0.004312,16.08,27.78,118.6,784.7,0.1316,0.4648,0.4589,0.1727,0.3,0.08701 +B,12.91,16.33,82.53,516.4,0.07941000000000001,0.05366,0.03873,0.02377,0.1829,0.056670000000000005,0.1942,0.9086,1.493,15.75,0.005298,0.01587,0.023209999999999998,0.00842,0.01853,0.002152,13.88,22.0,90.81,600.6,0.1097,0.1506,0.1764,0.08235,0.3024,0.06949 +M,13.77,22.29,90.63,588.9,0.12,0.1267,0.1385,0.06526,0.1834,0.06877,0.6191,2.112,4.906000000000001,49.7,0.0138,0.03348,0.04665,0.0206,0.026889999999999997,0.004306,16.39,34.01,111.6,806.9,0.1737,0.3122,0.3809,0.1673,0.308,0.09333 +M,18.08,21.84,117.4,1024.0,0.07371,0.08642000000000001,0.1103,0.05778,0.177,0.0534,0.6362,1.305,4.312,76.36,0.005529999999999999,0.05296,0.0611,0.01444,0.0214,0.005036,19.76,24.7,129.1,1228.0,0.08822,0.1963,0.2535,0.09181,0.2369,0.06558 +M,19.18,22.49,127.5,1148.0,0.08523,0.1428,0.1114,0.06772,0.1767,0.05529,0.4357,1.073,3.833,54.22,0.005524,0.03698,0.02706,0.012209999999999999,0.01415,0.003397,23.36,32.06,166.4,1688.0,0.1322,0.5601,0.3865,0.1708,0.3193,0.09221 +M,14.45,20.22,94.49,642.7,0.09872,0.1206,0.11800000000000001,0.0598,0.195,0.06466000000000001,0.2092,0.6509,1.446,19.42,0.004044,0.015969999999999998,0.02,0.0073030000000000005,0.01522,0.0019760000000000003,18.33,30.12,117.9,1044.0,0.1552,0.4056,0.4967,0.1838,0.4753,0.1013 +B,12.23,19.56,78.54,461.0,0.09586,0.08087000000000001,0.04187,0.041069999999999995,0.1979,0.060129999999999996,0.3534,1.3259999999999998,2.3080000000000003,27.24,0.007514,0.01779,0.01401,0.0114,0.015030000000000002,0.0033380000000000003,14.44,28.36,92.15,638.4,0.1429,0.2042,0.1377,0.10800000000000001,0.2668,0.08174 +M,17.54,19.32,115.1,951.6,0.08968,0.1198,0.1036,0.07488,0.1506,0.05491,0.3971,0.8282,3.088,40.73,0.00609,0.025689999999999998,0.02713,0.01345,0.01594,0.0026579999999999998,20.42,25.84,139.5,1239.0,0.1381,0.342,0.3508,0.1939,0.2928,0.07867 +M,23.29,26.67,158.9,1685.0,0.1141,0.2084,0.3523,0.162,0.22,0.06229,0.5539,1.56,4.667,83.16,0.009327,0.051210000000000006,0.08957999999999999,0.02465,0.02175,0.005195,25.12,32.68,177.0,1986.0,0.1536,0.4167,0.7892,0.2733,0.3198,0.08762 +M,13.81,23.75,91.56,597.8,0.1323,0.1768,0.1558,0.09176000000000001,0.2251,0.07421,0.5648,1.93,3.909,52.72,0.008824,0.03108,0.03112,0.01291,0.01998,0.0045060000000000005,19.2,41.85,128.5,1153.0,0.2226,0.5209,0.4646,0.2013,0.4432,0.1086 +B,12.47,18.6,81.09,481.9,0.09965,0.1058,0.08005,0.03821,0.1925,0.06373,0.3961,1.044,2.497,30.29,0.006953,0.01911,0.027010000000000003,0.01037,0.01782,0.0035859999999999998,14.97,24.64,96.05,677.9,0.1426,0.2378,0.2671,0.1015,0.3014,0.0875 +M,15.12,16.68,98.78,716.6,0.08876,0.09587999999999999,0.0755,0.04079,0.1594,0.059860000000000003,0.2711,0.3621,1.974,26.44,0.005472,0.019190000000000002,0.020390000000000002,0.00826,0.01523,0.002881,17.77,20.24,117.7,989.5,0.1491,0.3331,0.3327,0.1252,0.3415,0.0974 +B,9.876,17.27,62.92,295.4,0.1089,0.07232000000000001,0.01756,0.01952,0.1934,0.06285,0.2137,1.3419999999999999,1.517,12.33,0.009719,0.012490000000000001,0.007975,0.007527,0.0221,0.002472,10.42,23.22,67.08,331.6,0.1415,0.1247,0.06213,0.05587999999999999,0.2989,0.0738 +M,17.01,20.26,109.7,904.3,0.08772,0.07304,0.0695,0.0539,0.2026,0.05223,0.5858,0.8554,4.106,68.46,0.005038,0.015030000000000002,0.019459999999999998,0.01123,0.022940000000000002,0.002581,19.8,25.05,130.0,1210.0,0.1111,0.1486,0.1932,0.1096,0.3275,0.06469 +B,13.11,22.54,87.02,529.4,0.1002,0.1483,0.08705,0.051019999999999996,0.185,0.0731,0.1931,0.9223,1.4909999999999999,15.09,0.005251,0.030410000000000003,0.025259999999999998,0.008304,0.02514,0.0041979999999999995,14.55,29.16,99.48,639.3,0.1349,0.4402,0.3162,0.1126,0.4128,0.1076 +B,15.27,12.91,98.17,725.5,0.08182,0.0623,0.05892000000000001,0.03157,0.1359,0.055260000000000004,0.2134,0.3628,1.525,20.0,0.004291,0.01236,0.01841,0.007373,0.009539,0.001656,17.38,15.92,113.7,932.7,0.1222,0.2186,0.2962,0.1035,0.23199999999999998,0.07474 +M,20.58,22.14,134.7,1290.0,0.0909,0.1348,0.16399999999999998,0.09561,0.1765,0.05024,0.8601,1.48,7.029,111.7,0.008124,0.03611,0.054889999999999994,0.02765,0.031760000000000004,0.002365,23.24,27.84,158.3,1656.0,0.1178,0.292,0.3861,0.192,0.2909,0.05865 +B,11.84,18.94,75.51,428.0,0.08871,0.069,0.02669,0.013930000000000001,0.1533,0.060570000000000006,0.2222,0.8652,1.444,17.12,0.005517,0.017269999999999997,0.02045,0.0067469999999999995,0.01616,0.0029219999999999997,13.3,24.99,85.22,546.3,0.128,0.188,0.1471,0.06913,0.2535,0.07993 +M,28.11,18.47,188.5,2499.0,0.1142,0.1516,0.3201,0.1595,0.1648,0.05525,2.873,1.476,21.98,525.6,0.01345,0.027719999999999998,0.06389,0.01407,0.047830000000000004,0.004476,28.11,18.47,188.5,2499.0,0.1142,0.1516,0.3201,0.1595,0.1648,0.05525 +M,17.42,25.56,114.5,948.0,0.1006,0.1146,0.1682,0.06597,0.1308,0.058660000000000004,0.5296,1.6669999999999998,3.767,58.53,0.03113,0.08555,0.1438,0.03927,0.02175,0.01256,18.07,28.07,120.4,1021.0,0.1243,0.1793,0.2803,0.1099,0.1603,0.06817999999999999 +M,14.19,23.81,92.87,610.7,0.09462999999999999,0.1306,0.1115,0.06462000000000001,0.2235,0.06433,0.4207,1.845,3.534,31.0,0.010879999999999999,0.0371,0.03688,0.01627,0.044989999999999995,0.004768,16.86,34.85,115.0,811.3,0.1559,0.4059,0.3744,0.1772,0.4724,0.1026 +M,13.86,16.93,90.96,578.9,0.1026,0.1517,0.09901,0.05602000000000001,0.2106,0.06916,0.2563,1.194,1.933,22.69,0.00596,0.03438,0.03909,0.01435,0.01939,0.00456,15.75,26.93,104.4,750.1,0.146,0.43700000000000006,0.4636,0.1654,0.363,0.1059 +B,11.89,18.35,77.32,432.2,0.09362999999999999,0.1154,0.06636,0.03142,0.1967,0.06314,0.2963,1.5630000000000002,2.0869999999999997,21.46,0.008872,0.04192,0.05946,0.01785,0.02793,0.004775,13.25,27.1,86.2,531.2,0.1405,0.3046,0.2806,0.1138,0.3397,0.08365 +B,10.2,17.48,65.05,321.2,0.08054,0.059070000000000004,0.05774,0.010709999999999999,0.1964,0.06315,0.3567,1.922,2.747,22.79,0.00468,0.0312,0.05774,0.010709999999999999,0.0256,0.004613,11.48,24.47,75.4,403.7,0.09527000000000001,0.1397,0.1925,0.035710000000000006,0.2868,0.07808999999999999 +M,19.8,21.56,129.7,1230.0,0.09383,0.1306,0.1272,0.08691,0.2094,0.055810000000000005,0.9553,1.186,6.487,124.4,0.006804000000000001,0.031689999999999996,0.034460000000000005,0.01712,0.018969999999999997,0.004045,25.73,28.64,170.3,2009.0,0.1353,0.3235,0.3617,0.182,0.307,0.08255 +M,19.53,32.47,128.0,1223.0,0.0842,0.113,0.1145,0.06637,0.1428,0.05313,0.7392,1.321,4.7219999999999995,109.9,0.005539,0.026439999999999998,0.026639999999999997,0.01078,0.013319999999999999,0.0022559999999999998,27.9,45.41,180.2,2477.0,0.1408,0.4097,0.3995,0.1625,0.2713,0.07568 +B,13.65,13.16,87.88,568.9,0.09646,0.08711,0.03888,0.02563,0.136,0.06344,0.2102,0.4336,1.391,17.4,0.0041329999999999995,0.01695,0.01652,0.006659,0.01371,0.002735,15.34,16.35,99.71,706.2,0.1311,0.2474,0.1759,0.08056,0.23800000000000002,0.08718 +B,13.56,13.9,88.59,561.3,0.1051,0.1192,0.0786,0.04451,0.1962,0.06302999999999999,0.2569,0.4981,2.011,21.03,0.005850999999999999,0.02314,0.02544,0.00836,0.01842,0.002918,14.98,17.13,101.1,686.6,0.1376,0.2698,0.2577,0.0909,0.3065,0.08177000000000001 +B,10.18,17.53,65.12,313.1,0.1061,0.08502,0.01768,0.01915,0.191,0.06907999999999999,0.2467,1.217,1.641,15.05,0.007899,0.013999999999999999,0.008534,0.007624,0.026369999999999998,0.003761,11.17,22.84,71.94,375.6,0.1406,0.14400000000000002,0.06572,0.05575,0.3055,0.08797 +M,15.75,20.25,102.6,761.3,0.1025,0.1204,0.1147,0.06462000000000001,0.1935,0.06302999999999999,0.3473,0.9209,2.244,32.19,0.004765999999999999,0.02374,0.02384,0.008637,0.01772,0.0031309999999999997,19.56,30.29,125.9,1088.0,0.1552,0.44799999999999995,0.3976,0.1479,0.3993,0.1064 +B,13.27,17.02,84.55,546.4,0.08445,0.04994,0.035539999999999995,0.02456,0.1496,0.05674,0.2927,0.8907,2.044,24.68,0.006032,0.011040000000000001,0.02259,0.009056999999999999,0.014819999999999998,0.002496,15.14,23.6,98.84,708.8,0.1276,0.1311,0.1786,0.09677999999999999,0.2506,0.07622999999999999 +B,14.34,13.47,92.51,641.2,0.09906000000000001,0.07624,0.05724,0.04603,0.2075,0.054479999999999994,0.522,0.8121,3.763,48.29,0.007089,0.014280000000000001,0.0236,0.01286,0.02266,0.001463,16.77,16.9,110.4,873.2,0.1297,0.1525,0.1632,0.1087,0.3062,0.06072 +B,10.44,15.46,66.62,329.6,0.1053,0.07722000000000001,0.0066430000000000005,0.012159999999999999,0.1788,0.0645,0.1913,0.9027,1.208,11.86,0.006513,0.008061,0.002817,0.004972,0.015019999999999999,0.002821,11.52,19.8,73.47,395.4,0.1341,0.1153,0.026389999999999997,0.04464,0.2615,0.08269 +B,15.0,15.51,97.45,684.5,0.08371,0.1096,0.06505,0.0378,0.1881,0.059070000000000004,0.2318,0.4966,2.276,19.88,0.004118999999999999,0.03207,0.03644,0.01155,0.013909999999999999,0.003204,16.41,19.31,114.2,808.2,0.1136,0.3627,0.3402,0.1379,0.2954,0.08362 +B,12.62,23.97,81.35,496.4,0.07902999999999999,0.07529,0.05438,0.02036,0.1514,0.06019,0.2449,1.0659999999999998,1.445,18.51,0.005169,0.022940000000000002,0.030160000000000003,0.008690999999999999,0.01365,0.003407,14.2,31.31,90.67,624.0,0.1227,0.3454,0.3911,0.11800000000000001,0.2826,0.09585 +M,12.83,22.33,85.26,503.2,0.1088,0.1799,0.1695,0.06861,0.2123,0.07254,0.3061,1.069,2.2569999999999997,25.13,0.006983,0.03858,0.046830000000000004,0.01499,0.0168,0.0056170000000000005,15.2,30.15,105.3,706.0,0.1777,0.5343,0.6282,0.1977,0.3407,0.1243 +M,17.05,19.08,113.4,895.0,0.1141,0.1572,0.191,0.109,0.2131,0.06325,0.2959,0.679,2.153,31.98,0.0055320000000000005,0.02008,0.03055,0.01384,0.011770000000000001,0.002336,19.59,24.89,133.5,1189.0,0.1703,0.3934,0.5018,0.2543,0.3109,0.09061 +B,11.32,27.08,71.76,395.7,0.06883,0.038130000000000004,0.01633,0.003125,0.1869,0.05628,0.121,0.8927,1.0590000000000002,8.605,0.003653,0.01647,0.01633,0.003125,0.015369999999999998,0.002052,12.08,33.75,79.82,452.3,0.09203,0.1432,0.1089,0.02083,0.2849,0.07087 +B,11.22,33.81,70.79,386.8,0.0778,0.03574,0.004967,0.0064340000000000005,0.1845,0.05828,0.2239,1.6469999999999998,1.489,15.46,0.004359,0.006813,0.0032229999999999997,0.0034189999999999997,0.01916,0.002534,12.36,41.78,78.44,470.9,0.09994,0.06885,0.023180000000000003,0.030019999999999998,0.2911,0.07307000000000001 +M,20.51,27.81,134.4,1319.0,0.09158999999999999,0.1074,0.1554,0.0834,0.1448,0.055920000000000004,0.524,1.189,3.767,70.01,0.00502,0.02062,0.03457,0.01091,0.012980000000000002,0.0028870000000000002,24.47,37.38,162.7,1872.0,0.1223,0.2761,0.4146,0.1563,0.2437,0.08327999999999999 +B,9.567,15.91,60.21,279.6,0.08463999999999999,0.04087,0.01652,0.016669999999999997,0.1551,0.06402999999999999,0.2152,0.8301,1.215,12.64,0.011640000000000001,0.0104,0.011859999999999999,0.009623,0.02383,0.0035399999999999997,10.51,19.16,65.74,335.9,0.1504,0.09515,0.07161000000000001,0.07222,0.2757,0.08177999999999999 +B,14.03,21.25,89.79,603.4,0.0907,0.06945,0.01462,0.01896,0.1517,0.05835,0.2589,1.5030000000000001,1.6669999999999998,22.07,0.007389,0.01383,0.0073019999999999995,0.01004,0.012629999999999999,0.002925,15.33,30.28,98.27,715.5,0.1287,0.1513,0.062310000000000004,0.07962999999999999,0.2226,0.07617 +M,23.21,26.97,153.5,1670.0,0.09509,0.1682,0.195,0.1237,0.1909,0.06309,1.058,0.9635,7.247000000000001,155.8,0.006428,0.028630000000000003,0.044969999999999996,0.017159999999999998,0.0159,0.003053,31.01,34.51,206.0,2944.0,0.1481,0.4126,0.5820000000000001,0.2593,0.3103,0.08677 +M,20.48,21.46,132.5,1306.0,0.08355,0.08348,0.09042,0.06022,0.1467,0.051770000000000004,0.6874,1.041,5.144,83.5,0.007959,0.031330000000000004,0.04257,0.01671,0.01341,0.003933,24.22,26.17,161.7,1750.0,0.1228,0.2311,0.3158,0.1445,0.2238,0.07127 +B,14.22,27.85,92.55,623.9,0.08223,0.1039,0.1103,0.04408,0.1342,0.06129,0.3354,2.324,2.105,29.96,0.006307,0.02845,0.0385,0.01011,0.01185,0.003589,15.75,40.54,102.5,764.0,0.1081,0.2426,0.3064,0.08219,0.18899999999999997,0.07796 +M,17.46,39.28,113.4,920.6,0.09812,0.1298,0.1417,0.08811000000000001,0.1809,0.059660000000000005,0.5366,0.8561,3.002,49.0,0.00486,0.02785,0.026019999999999998,0.01374,0.01226,0.002759,22.51,44.87,141.2,1408.0,0.1365,0.3735,0.3241,0.2066,0.2853,0.08496000000000001 +B,13.64,15.6,87.38,575.3,0.09423,0.0663,0.04705,0.03731,0.1717,0.0566,0.3242,0.6612,1.996,27.19,0.00647,0.01248,0.0181,0.01103,0.01898,0.001794,14.85,19.05,94.11,683.4,0.1278,0.1291,0.1533,0.09222000000000001,0.253,0.0651 +B,12.42,15.04,78.61,476.5,0.07926,0.03393,0.01053,0.01108,0.1546,0.05754,0.1153,0.6745,0.757,9.006,0.0032649999999999997,0.0049299999999999995,0.0064930000000000005,0.0037619999999999997,0.0172,0.0013599999999999999,13.2,20.37,83.85,543.4,0.1037,0.07776,0.06242999999999999,0.04052,0.2901,0.06783 +B,11.3,18.19,73.93,389.4,0.09592,0.1325,0.1548,0.02854,0.2054,0.07669,0.2428,1.642,2.369,16.39,0.006663,0.05914,0.0888,0.01314,0.01995,0.008675,12.58,27.96,87.16,472.9,0.1347,0.4848,0.7436,0.1218,0.3308,0.1297 +B,13.75,23.77,88.54,590.0,0.08043,0.06807,0.04697,0.02344,0.1773,0.05429,0.4347,1.057,2.8289999999999997,39.93,0.004351,0.02667,0.033710000000000004,0.01007,0.02598,0.003087,15.01,26.34,98.0,706.0,0.09368,0.1442,0.1359,0.06106,0.2663,0.06321 +M,19.4,23.5,129.1,1155.0,0.1027,0.1558,0.2049,0.08886000000000001,0.1978,0.06,0.5243,1.8019999999999998,4.037,60.41,0.01061,0.03252,0.03915,0.015590000000000001,0.02186,0.003949,21.65,30.53,144.9,1417.0,0.1463,0.2968,0.3458,0.1564,0.292,0.07614 +B,10.48,19.86,66.72,337.7,0.107,0.05971,0.048310000000000006,0.0307,0.1737,0.0644,0.3719,2.612,2.517,23.22,0.016040000000000002,0.013859999999999999,0.01865,0.01133,0.03476,0.0035600000000000002,11.48,29.46,73.68,402.8,0.1515,0.1026,0.1181,0.06736,0.2883,0.07748 +B,13.2,17.43,84.13,541.6,0.07215,0.045239999999999995,0.04336,0.01105,0.1487,0.05635,0.163,1.601,0.873,13.56,0.006261,0.01569,0.030789999999999998,0.005383,0.01962,0.00225,13.94,27.82,88.28,602.0,0.1101,0.1508,0.2298,0.0497,0.2767,0.07198 +B,12.89,14.11,84.95,512.2,0.0876,0.1346,0.1374,0.0398,0.1596,0.06409,0.2025,0.4402,2.3930000000000002,16.35,0.005501,0.055920000000000004,0.08158,0.0137,0.01266,0.007555,14.39,17.7,105.0,639.1,0.1254,0.5849,0.7727,0.1561,0.2639,0.1178 +B,10.65,25.22,68.01,347.0,0.09657,0.07234,0.023790000000000002,0.01615,0.1897,0.06329,0.2497,1.493,1.4969999999999999,16.64,0.007189,0.01035,0.01081,0.0062450000000000006,0.021580000000000002,0.0026190000000000002,12.25,35.19,77.98,455.7,0.1499,0.1398,0.1125,0.061360000000000005,0.3409,0.08147 +B,11.52,14.93,73.87,406.3,0.1013,0.07808,0.04328,0.029289999999999997,0.1883,0.06168,0.2562,1.038,1.686,18.62,0.006662,0.01228,0.02105,0.01006,0.01677,0.002784,12.65,21.19,80.88,491.8,0.1389,0.1582,0.1804,0.09608,0.2664,0.07808999999999999 +M,20.94,23.56,138.9,1364.0,0.1007,0.1606,0.2712,0.131,0.2205,0.05898,1.004,0.8208,6.372000000000001,137.9,0.0052829999999999995,0.039080000000000004,0.09518,0.01864,0.02401,0.005002,25.58,27.0,165.3,2010.0,0.1211,0.3172,0.6991,0.2105,0.3126,0.07849 +B,11.5,18.45,73.28,407.4,0.09345,0.059910000000000005,0.02638,0.02069,0.1834,0.05934,0.3927,0.8429,2.6839999999999997,26.99,0.006379999999999999,0.01065,0.01245,0.009175,0.02292,0.0014609999999999998,12.97,22.46,83.12,508.9,0.1183,0.1049,0.08105,0.06544,0.27399999999999997,0.06487000000000001 +M,19.73,19.82,130.7,1206.0,0.1062,0.1849,0.2417,0.0974,0.1733,0.06697,0.7661,0.78,4.115,92.81,0.008482,0.05057,0.068,0.01971,0.014669999999999999,0.007259000000000001,25.28,25.59,159.8,1933.0,0.171,0.5955,0.8489,0.2507,0.2749,0.1297 +M,17.3,17.08,113.0,928.2,0.1008,0.1041,0.1266,0.08353,0.1813,0.05612999999999999,0.3093,0.8568,2.193,33.63,0.004757,0.015030000000000002,0.02332,0.012620000000000001,0.013940000000000001,0.002362,19.85,25.09,130.9,1222.0,0.1416,0.2405,0.3378,0.1857,0.3138,0.08113 +M,19.45,19.33,126.5,1169.0,0.1035,0.1188,0.1379,0.08591,0.1776,0.056470000000000006,0.5959,0.6342,3.7969999999999997,71.0,0.004649,0.018000000000000002,0.027489999999999997,0.01267,0.01365,0.00255,25.7,24.57,163.1,1972.0,0.1497,0.3161,0.4317,0.1999,0.3379,0.0895 +M,13.96,17.05,91.43,602.4,0.1096,0.1279,0.09788999999999999,0.05246,0.1908,0.0613,0.425,0.8098,2.563,35.74,0.006351,0.026789999999999998,0.03119,0.01342,0.02062,0.002695,16.39,22.07,108.1,826.0,0.1512,0.3262,0.3209,0.1374,0.3068,0.07957 +M,19.55,28.77,133.6,1207.0,0.0926,0.2063,0.1784,0.1144,0.1893,0.06232000000000001,0.8426,1.199,7.1579999999999995,106.4,0.0063560000000000005,0.04765,0.03863,0.01519,0.01936,0.005252000000000001,25.05,36.27,178.6,1926.0,0.1281,0.5329,0.4251,0.1941,0.2818,0.1005 +M,15.32,17.27,103.2,713.3,0.1335,0.2284,0.2448,0.1242,0.2398,0.07596,0.6592,1.0590000000000002,4.061,59.46,0.01015,0.045880000000000004,0.04983,0.021269999999999997,0.01884,0.00866,17.73,22.66,119.8,928.8,0.1765,0.4503,0.4429,0.2229,0.3258,0.1191 +M,15.66,23.2,110.2,773.5,0.1109,0.3114,0.3176,0.1377,0.2495,0.08104,1.2919999999999998,2.454,10.12,138.5,0.01236,0.05995,0.08232,0.030239999999999996,0.02337,0.0060420000000000005,19.85,31.64,143.7,1226.0,0.1504,0.5172,0.6181,0.2462,0.3277,0.1019 +M,15.53,33.56,103.7,744.9,0.1063,0.1639,0.1751,0.08399,0.2091,0.0665,0.2419,1.278,1.903,23.02,0.005345,0.02556,0.02889,0.01022,0.009947,0.0033590000000000004,18.49,49.54,126.3,1035.0,0.1883,0.5564,0.5703,0.2014,0.3512,0.1204 +M,20.31,27.06,132.9,1288.0,0.1,0.1088,0.1519,0.09333,0.1814,0.055720000000000006,0.3977,1.033,2.5869999999999997,52.34,0.005043,0.015780000000000002,0.021169999999999998,0.008185,0.012819999999999998,0.0018920000000000002,24.33,39.16,162.3,1844.0,0.1522,0.2945,0.3788,0.1697,0.3151,0.07998999999999999 +M,17.35,23.06,111.0,933.1,0.08662,0.0629,0.02891,0.02837,0.1564,0.053070000000000006,0.4007,1.317,2.577,44.41,0.005726,0.011059999999999999,0.012459999999999999,0.007670999999999999,0.01411,0.001578,19.85,31.47,128.2,1218.0,0.124,0.1486,0.1211,0.08235,0.2452,0.06515 +M,17.29,22.13,114.4,947.8,0.08999,0.1273,0.09697,0.07507,0.2108,0.05464,0.8348,1.633,6.146,90.94,0.006717,0.05981,0.046380000000000005,0.021490000000000002,0.027469999999999998,0.005838,20.39,27.24,137.9,1295.0,0.1134,0.2867,0.2298,0.1528,0.3067,0.07484 +M,15.61,19.38,100.0,758.6,0.0784,0.05616,0.042089999999999995,0.02847,0.1547,0.05442999999999999,0.2298,0.9988,1.534,22.18,0.002826,0.009105,0.01311,0.005174,0.01013,0.0013449999999999998,17.91,31.67,115.9,988.6,0.1084,0.1807,0.226,0.08567999999999999,0.2683,0.06829 +M,17.19,22.07,111.6,928.3,0.09726,0.08995,0.09061,0.06527000000000001,0.1867,0.0558,0.4203,0.7383,2.819,45.42,0.004493,0.01206,0.02048,0.009875,0.01144,0.001575,21.58,29.33,140.5,1436.0,0.1558,0.2567,0.3889,0.1984,0.3216,0.0757 +M,20.73,31.12,135.7,1419.0,0.09469,0.1143,0.1367,0.08646000000000001,0.1769,0.05674,1.172,1.617,7.749,199.7,0.0045509999999999995,0.014780000000000001,0.02143,0.00928,0.013669999999999998,0.002299,32.49,47.16,214.0,3432.0,0.1401,0.2644,0.3442,0.1659,0.2868,0.08217999999999999 +B,10.6,18.95,69.28,346.4,0.09688,0.1147,0.06387000000000001,0.02642,0.1922,0.06491,0.4505,1.197,3.43,27.1,0.00747,0.03581,0.03354,0.01365,0.035039999999999995,0.0033179999999999998,11.88,22.94,78.28,424.8,0.1213,0.2515,0.1916,0.07926,0.294,0.07587 +B,13.59,21.84,87.16,561.0,0.07956,0.08259,0.04072,0.021419999999999998,0.1635,0.058589999999999996,0.33799999999999997,1.916,2.591,26.76,0.005436,0.024059999999999998,0.030989999999999997,0.009918999999999999,0.0203,0.003009,14.8,30.04,97.66,661.5,0.1005,0.17300000000000001,0.1453,0.06189,0.2446,0.07024 +B,12.87,16.21,82.38,512.2,0.09425,0.062189999999999995,0.039,0.01615,0.201,0.05769,0.2345,1.219,1.546,18.24,0.005518,0.02178,0.025889999999999996,0.00633,0.02593,0.002157,13.9,23.64,89.27,597.5,0.1256,0.1808,0.1992,0.0578,0.3604,0.07062 +B,10.71,20.39,69.5,344.9,0.1082,0.1289,0.08448,0.028669999999999998,0.1668,0.06862,0.3198,1.489,2.23,20.74,0.008902,0.04785,0.07339,0.01745,0.027280000000000002,0.00761,11.69,25.21,76.51,410.4,0.1335,0.255,0.2534,0.086,0.2605,0.08701 +B,14.29,16.82,90.3,632.6,0.06429,0.02675,0.00725,0.00625,0.1508,0.05376,0.1302,0.7198,0.8439,10.77,0.0034920000000000003,0.00371,0.0048259999999999996,0.0036079999999999997,0.015359999999999999,0.001381,14.91,20.65,94.44,684.6,0.08567000000000001,0.05036,0.03866,0.03333,0.2458,0.0612 +B,11.29,13.04,72.23,388.0,0.09834,0.07608,0.03265,0.02755,0.1769,0.0627,0.1904,0.5293,1.1640000000000001,13.17,0.0064719999999999995,0.01122,0.012819999999999998,0.008849,0.016919999999999998,0.002817,12.32,16.18,78.27,457.5,0.1358,0.1507,0.1275,0.0875,0.2733,0.08022 +M,21.75,20.99,147.3,1491.0,0.09401,0.1961,0.2195,0.1088,0.1721,0.061939999999999995,1.167,1.3519999999999999,8.867,156.8,0.005686999999999999,0.0496,0.06329,0.015609999999999999,0.01924,0.004614,28.19,28.18,195.9,2384.0,0.1272,0.4725,0.5807,0.1841,0.2833,0.08857999999999999 +B,9.742,15.67,61.5,289.9,0.09037,0.04689,0.01103,0.01407,0.2081,0.06312000000000001,0.2684,1.409,1.75,16.39,0.0138,0.01067,0.008347,0.009472,0.01798,0.004261,10.75,20.88,68.09,355.2,0.1467,0.0937,0.04043,0.05159,0.2841,0.08175 +M,17.93,24.48,115.2,998.9,0.08855,0.07027,0.05699,0.047439999999999996,0.1538,0.0551,0.4212,1.433,2.765,45.81,0.005444,0.01169,0.01622,0.008522,0.014190000000000001,0.002751,20.92,34.69,135.1,1320.0,0.1315,0.1806,0.20800000000000002,0.1136,0.2504,0.07948 +B,11.89,17.36,76.2,435.6,0.1225,0.0721,0.059289999999999995,0.07404,0.2015,0.05875,0.6412,2.293,4.021,48.84,0.014180000000000002,0.01489,0.01267,0.0191,0.02678,0.003002,12.4,18.99,79.46,472.4,0.1359,0.08367999999999999,0.07153,0.08946,0.222,0.060329999999999995 +B,11.33,14.16,71.79,396.6,0.09379,0.03872,0.0014869999999999998,0.003333,0.1954,0.058210000000000005,0.2375,1.28,1.565,17.09,0.008426000000000001,0.008998,0.0014869999999999998,0.003333,0.02358,0.001627,12.2,18.99,77.37,458.0,0.1259,0.07347999999999999,0.004954999999999999,0.01111,0.2758,0.06386 +M,18.81,19.98,120.9,1102.0,0.08922999999999999,0.058839999999999996,0.0802,0.058429999999999996,0.155,0.049960000000000004,0.3283,0.828,2.363,36.74,0.007571,0.01114,0.02623,0.01463,0.0193,0.0016760000000000002,19.96,24.3,129.0,1236.0,0.1243,0.11599999999999999,0.221,0.1294,0.2567,0.057370000000000004 +B,13.59,17.84,86.24,572.3,0.07948,0.04052,0.019969999999999998,0.01238,0.1573,0.0552,0.258,1.166,1.683,22.22,0.0037409999999999995,0.005274,0.01065,0.005044,0.01344,0.001126,15.5,26.1,98.91,739.1,0.105,0.07622000000000001,0.106,0.05185,0.2335,0.06262999999999999 +B,13.85,15.18,88.99,587.4,0.09516000000000001,0.07687999999999999,0.044789999999999996,0.037110000000000004,0.21100000000000002,0.05853,0.2479,0.9195,1.83,19.41,0.004235,0.01541,0.01457,0.01043,0.015280000000000002,0.001593,14.98,21.74,98.37,670.0,0.1185,0.1724,0.1456,0.09992999999999999,0.2955,0.06912 +M,19.16,26.6,126.2,1138.0,0.102,0.1453,0.1921,0.09664,0.1902,0.0622,0.6361,1.001,4.321000000000001,69.65,0.007392,0.02449,0.03988,0.01293,0.01435,0.0034460000000000003,23.72,35.9,159.8,1724.0,0.1782,0.3841,0.5754,0.1872,0.3258,0.0972 +B,11.74,14.02,74.24,427.3,0.07812999999999999,0.0434,0.02245,0.027630000000000002,0.2101,0.06113,0.5619,1.268,3.717,37.83,0.008034,0.014419999999999999,0.01514,0.01846,0.029210000000000003,0.0020050000000000003,13.31,18.26,84.7,533.7,0.1036,0.085,0.06735,0.0829,0.3101,0.06688 +M,19.4,18.18,127.2,1145.0,0.1037,0.1442,0.1626,0.09464,0.1893,0.05892000000000001,0.4709,0.9951,2.903,53.16,0.005654,0.02199,0.03059,0.01499,0.01623,0.0019649999999999997,23.79,28.65,152.4,1628.0,0.1518,0.3749,0.4316,0.2252,0.359,0.07787000000000001 +M,16.24,18.77,108.8,805.1,0.1066,0.1802,0.1948,0.09052,0.1876,0.06684,0.2873,0.9173,2.464,28.09,0.004563,0.03481,0.03872,0.01209,0.013880000000000002,0.004081,18.55,25.09,126.9,1031.0,0.1365,0.4706,0.5026,0.1732,0.27699999999999997,0.1063 +B,12.89,15.7,84.08,516.6,0.07818,0.0958,0.1115,0.0339,0.1432,0.05935,0.2913,1.389,2.347,23.29,0.006418000000000001,0.03961,0.07927000000000001,0.017740000000000002,0.01878,0.003696,13.9,19.69,92.12,595.6,0.09926,0.2317,0.3344,0.1017,0.1999,0.07127 +B,12.58,18.4,79.83,489.0,0.08392999999999999,0.04216,0.00186,0.002924,0.1697,0.05855,0.2719,1.35,1.7209999999999999,22.45,0.006383,0.008008,0.00186,0.002924,0.025710000000000004,0.002015,13.5,23.08,85.56,564.1,0.1038,0.06624,0.005579,0.008772,0.2505,0.06431 +B,11.94,20.76,77.87,441.0,0.08605,0.1011,0.06573999999999999,0.03791,0.1588,0.06766,0.2742,1.39,3.198,21.91,0.006719,0.05156,0.04387,0.01633,0.01872,0.008015000000000001,13.24,27.29,92.2,546.1,0.1116,0.2813,0.2365,0.1155,0.2465,0.09981 +B,12.89,13.12,81.89,515.9,0.06955,0.03729,0.0226,0.01171,0.1337,0.055810000000000005,0.1532,0.469,1.115,12.68,0.004731,0.01345,0.01652,0.005905,0.01619,0.002081,13.62,15.54,87.4,577.0,0.09616,0.1147,0.1186,0.05366,0.2309,0.06915 +B,11.26,19.96,73.72,394.1,0.0802,0.1181,0.09274,0.05587999999999999,0.2595,0.062329999999999997,0.4866,1.905,2.877,34.68,0.01574,0.08262,0.08098999999999999,0.03487,0.03418,0.006517,11.86,22.33,78.27,437.6,0.1028,0.1843,0.1546,0.09314,0.2955,0.07009 +B,11.37,18.89,72.17,396.0,0.08713,0.05008,0.02399,0.021730000000000003,0.2013,0.05955,0.2656,1.974,1.954,17.49,0.0065379999999999995,0.01395,0.01376,0.009923999999999999,0.03416,0.002928,12.36,26.14,79.29,459.3,0.1118,0.09708,0.07529,0.062029999999999995,0.3267,0.06994 +B,14.41,19.73,96.03,651.0,0.08757000000000001,0.1676,0.1362,0.06602000000000001,0.1714,0.07192,0.8811,1.77,4.36,77.11,0.007762000000000001,0.1064,0.0996,0.027710000000000002,0.04077,0.02286,15.77,22.13,101.7,767.3,0.09983,0.2472,0.222,0.1021,0.2272,0.08799 +B,14.96,19.1,97.03,687.3,0.08992,0.09823,0.0594,0.04819,0.1879,0.05852,0.2877,0.948,2.171,24.87,0.005332,0.02115,0.015359999999999999,0.01187,0.01522,0.002815,16.25,26.19,109.1,809.8,0.1313,0.303,0.1804,0.1489,0.2962,0.08472 +B,12.95,16.02,83.14,513.7,0.1005,0.07943,0.06155,0.0337,0.17300000000000001,0.0647,0.2094,0.7636,1.2309999999999999,17.67,0.008725,0.020030000000000003,0.02335,0.01132,0.02625,0.004726,13.74,19.93,88.81,585.4,0.1483,0.2068,0.2241,0.1056,0.33799999999999997,0.09584 +B,11.85,17.46,75.54,432.7,0.08372,0.056420000000000005,0.02688,0.0228,0.1875,0.05715,0.207,1.238,1.234,13.88,0.007595,0.015,0.014119999999999999,0.008578,0.01792,0.001784,13.06,25.75,84.35,517.8,0.1369,0.1758,0.1316,0.0914,0.3101,0.07007000000000001 +B,12.72,13.78,81.78,492.1,0.09667,0.08392999999999999,0.01288,0.01924,0.1638,0.061,0.1807,0.6931,1.34,13.38,0.006064,0.0118,0.006564,0.007978,0.01374,0.001392,13.5,17.48,88.54,553.7,0.1298,0.1472,0.052329999999999995,0.06343,0.2369,0.06922 +B,13.77,13.27,88.06,582.7,0.09197999999999999,0.06221,0.01063,0.01917,0.1592,0.059120000000000006,0.2191,0.6946,1.479,17.74,0.0043479999999999994,0.008153,0.004272,0.006829000000000001,0.02154,0.001802,14.67,16.93,94.17,661.1,0.11699999999999999,0.1072,0.03732,0.05802,0.2823,0.06794 +B,10.91,12.35,69.14,363.7,0.08517999999999999,0.04721,0.01236,0.01369,0.1449,0.06031,0.1753,1.0270000000000001,1.2670000000000001,11.09,0.003478,0.012209999999999999,0.01072,0.009393,0.029410000000000002,0.003428,11.37,14.82,72.42,392.2,0.09312000000000001,0.07506,0.028839999999999998,0.031939999999999996,0.2143,0.06642999999999999 +M,11.76,18.14,75.0,431.1,0.09967999999999999,0.05914,0.02685,0.03515,0.1619,0.06287000000000001,0.645,2.105,4.138,49.11,0.005596,0.01005,0.01272,0.01432,0.01575,0.002758,13.36,23.39,85.1,553.6,0.1137,0.07973999999999999,0.0612,0.0716,0.1978,0.06915 +B,14.26,18.17,91.22,633.1,0.06576,0.0522,0.02475,0.01374,0.1635,0.05586,0.23,0.669,1.661,20.56,0.003169,0.01377,0.010790000000000001,0.005243,0.01103,0.001957,16.22,25.26,105.8,819.7,0.09445,0.2167,0.1565,0.0753,0.2636,0.07676000000000001 +B,10.51,23.09,66.85,334.2,0.1015,0.06797,0.02495,0.01875,0.1695,0.06556000000000001,0.2868,1.143,2.289,20.56,0.01017,0.014430000000000002,0.018609999999999998,0.0125,0.03464,0.001971,10.93,24.22,70.1,362.7,0.1143,0.08614,0.04158,0.03125,0.2227,0.06777000000000001 +M,19.53,18.9,129.5,1217.0,0.115,0.1642,0.2197,0.1062,0.1792,0.06552000000000001,1.111,1.161,7.237,133.0,0.006056000000000001,0.03203,0.05637999999999999,0.01733,0.01884,0.004787,25.93,26.24,171.1,2053.0,0.1495,0.4116,0.6121,0.198,0.2968,0.09929 +B,12.46,19.89,80.43,471.3,0.08451,0.1014,0.0683,0.030989999999999997,0.1781,0.06249,0.3642,1.04,2.5789999999999997,28.32,0.006529999999999999,0.03369,0.04712,0.01403,0.0274,0.004651,13.46,23.07,88.13,551.3,0.105,0.2158,0.1904,0.07625,0.2685,0.07764 +M,20.09,23.86,134.7,1247.0,0.10800000000000001,0.1838,0.2283,0.128,0.2249,0.07468999999999999,1.072,1.743,7.803999999999999,130.8,0.007964,0.04732,0.07649,0.01936,0.027360000000000002,0.005928,23.68,29.43,158.8,1696.0,0.1347,0.3391,0.4932,0.1923,0.3294,0.09469 +B,10.49,18.61,66.86,334.3,0.1068,0.06677999999999999,0.022969999999999997,0.0178,0.1482,0.066,0.1485,1.5630000000000002,1.035,10.08,0.008875,0.009362,0.018080000000000002,0.009198999999999999,0.01791,0.003317,11.06,24.54,70.76,375.4,0.1413,0.1044,0.08423,0.06527999999999999,0.2213,0.07842 +B,11.46,18.16,73.59,403.1,0.08853,0.07694,0.03344,0.015019999999999999,0.1411,0.06242999999999999,0.3278,1.0590000000000002,2.475,22.93,0.006652,0.02652,0.02221,0.007807,0.018940000000000002,0.003411,12.68,21.61,82.69,489.8,0.1144,0.1789,0.1226,0.05509,0.2208,0.07637999999999999 +B,11.6,24.49,74.23,417.2,0.07474,0.05687999999999999,0.01974,0.013130000000000001,0.1935,0.05878,0.2512,1.786,1.9609999999999999,18.21,0.006122,0.02337,0.01596,0.006998000000000001,0.031939999999999996,0.002211,12.44,31.62,81.39,476.5,0.09545,0.1361,0.07239,0.04815,0.3244,0.06745 +B,13.2,15.82,84.07,537.3,0.08511,0.05251,0.0014609999999999998,0.003261,0.1632,0.05894,0.1903,0.5735,1.204,15.5,0.003632,0.007861,0.0011279999999999999,0.002386,0.01344,0.002585,14.41,20.45,92.0,636.9,0.1128,0.1346,0.0112,0.025,0.2651,0.08385 +B,9.0,14.4,56.36,246.3,0.07005,0.031160000000000004,0.0036810000000000002,0.003472,0.1788,0.06833,0.1746,1.305,1.1440000000000001,9.789,0.007389,0.004883,0.0036810000000000002,0.003472,0.027010000000000003,0.002153,9.699,20.07,60.9,285.5,0.09861,0.052320000000000005,0.014719999999999999,0.013890000000000001,0.2991,0.07804 +B,13.5,12.71,85.69,566.2,0.07376,0.03614,0.002758,0.004419,0.1365,0.05335,0.2244,0.6864,1.5090000000000001,20.39,0.0033380000000000003,0.003746,0.00203,0.003242,0.0148,0.0015660000000000001,14.97,16.94,95.48,698.7,0.09022999999999999,0.05836,0.01379,0.0221,0.2267,0.06192 +B,13.05,13.84,82.71,530.6,0.08352000000000001,0.03735,0.0045590000000000006,0.008829,0.1453,0.05517999999999999,0.3975,0.8285,2.5669999999999997,33.01,0.004148,0.004711,0.0028309999999999997,0.004821,0.014219999999999998,0.002273,14.73,17.4,93.96,672.4,0.1016,0.05847,0.01824,0.03532,0.2107,0.0658 +B,11.7,19.11,74.33,418.7,0.08814,0.05252999999999999,0.01583,0.011479999999999999,0.1936,0.061279999999999994,0.1601,1.43,1.109,11.28,0.006064,0.00911,0.01042,0.007638,0.02349,0.001661,12.61,26.55,80.92,483.1,0.1223,0.1087,0.07915,0.05741,0.3487,0.06957999999999999 +B,14.61,15.69,92.68,664.9,0.07618,0.03515,0.014469999999999998,0.01877,0.1632,0.05255,0.316,0.9115,1.954,28.9,0.005031,0.006021,0.005325,0.006324000000000001,0.01494,0.0008948000000000001,16.46,21.75,103.7,840.8,0.1011,0.07087,0.04746,0.058129999999999994,0.253,0.05695 +B,12.76,13.37,82.29,504.1,0.08794,0.07948,0.04052,0.025480000000000003,0.1601,0.0614,0.3265,0.6594,2.346,25.18,0.006494,0.02768,0.03137,0.01069,0.01731,0.004392,14.19,16.4,92.04,618.8,0.1194,0.2208,0.1769,0.08411,0.2564,0.08252999999999999 +B,11.54,10.72,73.73,409.1,0.08597,0.05969,0.013669999999999998,0.008907,0.1833,0.061,0.1312,0.3602,1.107,9.437999999999999,0.004124,0.0134,0.010029999999999999,0.004667,0.020319999999999998,0.001952,12.34,12.87,81.23,467.8,0.1092,0.1626,0.08324,0.04715,0.33899999999999997,0.07434 +B,8.597000000000001,18.6,54.09,221.2,0.1074,0.05847,0.0,0.0,0.2163,0.07359,0.3368,2.7769999999999997,2.222,17.81,0.02075,0.01403,0.0,0.0,0.06146,0.0068200000000000005,8.952,22.44,56.65,240.1,0.1347,0.07767,0.0,0.0,0.3142,0.08116 +B,12.49,16.85,79.19,481.6,0.08511,0.03834,0.0044729999999999995,0.006423000000000001,0.1215,0.056729999999999996,0.1716,0.7151,1.047,12.69,0.004928,0.003012,0.00262,0.00339,0.013930000000000001,0.001344,13.34,19.71,84.48,544.2,0.1104,0.049530000000000005,0.01938,0.027839999999999997,0.1917,0.061739999999999996 +B,12.18,14.08,77.25,461.4,0.07733999999999999,0.032119999999999996,0.01123,0.005051,0.1673,0.05649,0.2113,0.5996,1.4380000000000002,15.82,0.005343,0.005767,0.01123,0.005051,0.01977,0.0009502000000000001,12.85,16.47,81.6,513.1,0.1001,0.053320000000000006,0.04116,0.01852,0.2293,0.06037000000000001 +M,18.22,18.87,118.7,1027.0,0.09746,0.1117,0.113,0.0795,0.1807,0.056639999999999996,0.4041,0.5503,2.5469999999999997,48.9,0.004821,0.01659,0.02408,0.01143,0.01275,0.002451,21.84,25.0,140.9,1485.0,0.1434,0.2763,0.3853,0.1776,0.2812,0.08198 +B,9.042,18.9,60.07,244.5,0.09967999999999999,0.1972,0.1975,0.04908,0.233,0.08743,0.4653,1.911,3.7689999999999997,24.2,0.009845,0.0659,0.1027,0.025269999999999997,0.034910000000000004,0.007877,10.06,23.4,68.62,297.1,0.1221,0.3748,0.4609,0.1145,0.3135,0.1055 +B,12.43,17.0,78.6,477.3,0.07557,0.034539999999999994,0.01342,0.01699,0.1472,0.05561,0.3778,2.2,2.487,31.16,0.007356999999999999,0.010790000000000001,0.009959,0.0112,0.03433,0.002961,12.9,20.21,81.76,515.9,0.08409,0.04712,0.022369999999999998,0.028319999999999998,0.1901,0.059320000000000005 +B,10.25,16.18,66.52,324.2,0.1061,0.1111,0.06726,0.03965,0.1743,0.07279,0.3677,1.4709999999999999,1.597,22.68,0.010490000000000001,0.04265,0.04004,0.01544,0.02719,0.0075959999999999995,11.28,20.61,71.53,390.4,0.1402,0.23600000000000002,0.1898,0.09744,0.2608,0.09702000000000001 +M,20.16,19.66,131.1,1274.0,0.0802,0.08564,0.1155,0.07726,0.1928,0.050960000000000005,0.5925,0.6863,3.8680000000000003,74.85,0.004536,0.01376,0.02645,0.01247,0.02193,0.0015890000000000001,23.06,23.03,150.2,1657.0,0.1054,0.1537,0.2606,0.1425,0.3055,0.059329999999999994 +B,12.86,13.32,82.82,504.8,0.1134,0.08834,0.038,0.034,0.1543,0.06476,0.2212,1.042,1.614,16.57,0.00591,0.02016,0.01902,0.01011,0.01202,0.003107,14.04,21.08,92.8,599.5,0.1547,0.2231,0.1791,0.1155,0.2382,0.08553 +M,20.34,21.51,135.9,1264.0,0.11699999999999999,0.1875,0.2565,0.1504,0.2569,0.0667,0.5702,1.023,4.012,69.06,0.005485,0.02431,0.0319,0.01369,0.02768,0.0033450000000000003,25.3,31.86,171.1,1938.0,0.1592,0.4492,0.5344,0.2685,0.5558,0.1024 +B,12.2,15.21,78.01,457.9,0.08673,0.06545,0.01994,0.016919999999999998,0.1638,0.06129,0.2575,0.8073,1.959,19.01,0.005403,0.014180000000000002,0.01051,0.005142,0.013330000000000002,0.002065,13.75,21.38,91.11,583.1,0.1256,0.1928,0.1167,0.055560000000000005,0.2661,0.07961 +B,12.67,17.3,81.25,489.9,0.1028,0.07664,0.03193,0.02107,0.1707,0.05984,0.21,0.9505,1.5659999999999998,17.61,0.006809,0.009514,0.01329,0.006474,0.020569999999999998,0.001784,13.71,21.1,88.7,574.4,0.1384,0.1212,0.102,0.05602000000000001,0.2688,0.06888 +B,14.11,12.88,90.03,616.5,0.09308999999999999,0.05306,0.01765,0.02733,0.1373,0.057,0.2571,1.081,1.558,23.92,0.006692,0.01132,0.005717,0.006626999999999999,0.014159999999999999,0.0024760000000000003,15.53,18.0,98.4,749.9,0.1281,0.1109,0.053070000000000006,0.0589,0.21,0.07082999999999999 +B,12.03,17.93,76.09,446.0,0.07683,0.038919999999999996,0.001546,0.005592,0.1382,0.0607,0.2335,0.9097,1.466,16.97,0.004729,0.006887000000000001,0.001184,0.003951,0.01466,0.001755,13.07,22.25,82.74,523.4,0.1013,0.0739,0.007731999999999999,0.027960000000000002,0.2171,0.07037 +M,16.27,20.71,106.9,813.7,0.1169,0.1319,0.1478,0.08488,0.1948,0.06277,0.4375,1.232,3.27,44.41,0.006697,0.02083,0.03248,0.013919999999999998,0.015359999999999999,0.0027890000000000002,19.28,30.38,129.8,1121.0,0.159,0.2947,0.3597,0.1583,0.3103,0.08199999999999999 +M,16.26,21.88,107.5,826.8,0.1165,0.1283,0.1799,0.07981,0.1869,0.06532,0.5706,1.4569999999999999,2.9610000000000003,57.72,0.01056,0.03756,0.05839,0.011859999999999999,0.04022,0.006187,17.73,25.21,113.7,975.2,0.1426,0.2116,0.3344,0.1047,0.2736,0.07952999999999999 +M,16.03,15.51,105.8,793.2,0.09491000000000001,0.1371,0.1204,0.07041,0.1782,0.05976,0.3371,0.7476,2.6289999999999996,33.27,0.0058390000000000004,0.03245,0.03715,0.01459,0.014669999999999999,0.003121,18.76,21.98,124.3,1070.0,0.1435,0.4478,0.4956,0.1981,0.3019,0.09124 +B,12.98,19.35,84.52,514.0,0.09579,0.1125,0.07107000000000001,0.0295,0.1761,0.0654,0.2684,0.5664,2.465,20.65,0.005727,0.03255,0.043930000000000004,0.009811,0.027510000000000003,0.004572,14.42,21.95,99.21,634.3,0.1288,0.3253,0.3439,0.09858,0.3596,0.09166 +B,11.22,19.86,71.94,387.3,0.1054,0.06779,0.005006,0.0075829999999999995,0.19399999999999998,0.06027999999999999,0.2976,1.966,1.959,19.62,0.01289,0.011040000000000001,0.003297,0.004967,0.04243,0.001963,11.98,25.78,76.91,436.1,0.1424,0.09669,0.01335,0.02022,0.3292,0.06522 +B,11.25,14.78,71.38,390.0,0.08306000000000001,0.04458,0.0009737,0.002941,0.1773,0.06081,0.2144,0.9961,1.5290000000000001,15.07,0.0056170000000000005,0.007123999999999999,0.0009737,0.002941,0.017,0.00203,12.76,22.06,82.08,492.7,0.1166,0.09794,0.005518,0.016669999999999997,0.2815,0.07418 +B,12.3,19.02,77.88,464.4,0.08313,0.04202,0.007756,0.008535,0.1539,0.05945,0.184,1.5319999999999998,1.199,13.24,0.007881,0.008431999999999999,0.007004000000000001,0.006522,0.01939,0.002222,13.35,28.46,84.53,544.3,0.1222,0.09052,0.03619,0.039830000000000004,0.2554,0.07207000000000001 +M,17.06,21.0,111.8,918.6,0.1119,0.1056,0.1508,0.09934,0.1727,0.06071,0.8161,2.129,6.0760000000000005,87.17,0.006455,0.01797,0.04502,0.01744,0.01829,0.0037329999999999998,20.99,33.15,143.2,1362.0,0.1449,0.2053,0.392,0.1827,0.2623,0.07599 +B,12.99,14.23,84.08,514.3,0.09462000000000001,0.09965,0.037380000000000004,0.020980000000000002,0.1652,0.07238,0.1814,0.6412,0.9219,14.41,0.005231,0.02305,0.03113,0.007315,0.016390000000000002,0.0057009999999999995,13.72,16.91,87.38,576.0,0.1142,0.1975,0.145,0.0585,0.2432,0.1009 +M,18.77,21.43,122.9,1092.0,0.09116,0.1402,0.106,0.0609,0.1953,0.060829999999999995,0.6422,1.53,4.369,88.25,0.007548,0.03897,0.03914,0.01816,0.02168,0.004445,24.54,34.37,161.1,1873.0,0.1498,0.4827,0.4634,0.2048,0.3679,0.0987 +B,10.05,17.53,64.41,310.8,0.1007,0.07326,0.02511,0.01775,0.18899999999999997,0.06331,0.2619,2.015,1.778,16.85,0.007803,0.014490000000000001,0.0169,0.008043000000000002,0.021,0.002778,11.16,26.84,71.98,384.0,0.1402,0.1402,0.1055,0.06498999999999999,0.2894,0.07664 +M,23.51,24.27,155.1,1747.0,0.1069,0.1283,0.2308,0.141,0.1797,0.055060000000000005,1.0090000000000001,0.9245,6.462000000000001,164.1,0.006292,0.01971,0.03582,0.013009999999999999,0.014790000000000001,0.003118,30.67,30.73,202.4,2906.0,0.1515,0.2678,0.4819,0.2089,0.2593,0.07737999999999999 +B,14.42,16.54,94.15,641.2,0.09751,0.1139,0.08007,0.042230000000000004,0.1912,0.06412000000000001,0.3491,0.7706,2.677,32.14,0.004577,0.03053,0.0384,0.01243,0.01873,0.0033729999999999997,16.67,21.51,111.4,862.1,0.1294,0.3371,0.3755,0.1414,0.3053,0.08764 +B,9.606,16.84,61.64,280.5,0.08481,0.09228,0.08422,0.02292,0.2036,0.07125,0.1844,0.9429,1.429,12.07,0.005954,0.034710000000000005,0.05028,0.00851,0.0175,0.004031,10.75,23.07,71.25,353.6,0.1233,0.3416,0.4341,0.0812,0.2982,0.09825 +B,11.06,14.96,71.49,373.9,0.1033,0.09097000000000001,0.053970000000000004,0.03341,0.1776,0.06907,0.1601,0.8225,1.355,10.8,0.007416,0.01877,0.02758,0.0101,0.02348,0.0029170000000000003,11.92,19.9,79.76,440.0,0.1418,0.221,0.2299,0.1075,0.3301,0.0908 +M,19.68,21.68,129.9,1194.0,0.09797,0.1339,0.1863,0.1103,0.2082,0.05715,0.6226,2.2840000000000003,5.172999999999999,67.66,0.004756,0.03368,0.04345,0.01806,0.03756,0.003288,22.75,34.66,157.6,1540.0,0.1218,0.3458,0.4734,0.2255,0.4045,0.07918 +B,11.71,15.45,75.03,420.3,0.115,0.07281,0.040060000000000005,0.0325,0.2009,0.06506,0.3446,0.7395,2.355,24.53,0.009536,0.01097,0.01651,0.01121,0.019530000000000002,0.0031,13.06,18.16,84.16,516.4,0.146,0.1115,0.1087,0.07864,0.2765,0.07806 +B,10.26,14.71,66.2,321.6,0.09882,0.09158999999999999,0.03581,0.02037,0.1633,0.07005,0.33799999999999997,2.509,2.394,19.33,0.01736,0.04671,0.02611,0.01296,0.03675,0.006758,10.88,19.48,70.89,357.1,0.136,0.1636,0.07162,0.04074,0.2434,0.08488 +B,12.06,18.9,76.66,445.3,0.08386,0.05794,0.007509999999999999,0.008487999999999999,0.1555,0.06047999999999999,0.243,1.1520000000000001,1.5590000000000002,18.02,0.00718,0.01096,0.005832,0.005495,0.019819999999999997,0.002754,13.64,27.06,86.54,562.6,0.1289,0.1352,0.04506,0.05093,0.28800000000000003,0.08083 +B,14.76,14.74,94.87,668.7,0.08875,0.0778,0.04608,0.03528,0.1521,0.059120000000000006,0.3428,0.3981,2.537,29.06,0.004732,0.015059999999999999,0.01855,0.01067,0.02163,0.002783,17.27,17.93,114.2,880.8,0.122,0.2009,0.2151,0.1251,0.3109,0.08187 +B,11.47,16.03,73.02,402.7,0.09076000000000001,0.05886,0.025869999999999997,0.023219999999999998,0.1634,0.06372,0.1707,0.7615,1.09,12.25,0.009191,0.008548,0.0094,0.006314999999999999,0.01755,0.003009,12.51,20.79,79.67,475.8,0.1531,0.11199999999999999,0.09823,0.06548,0.2851,0.08763 +B,11.95,14.96,77.23,426.7,0.1158,0.1206,0.01171,0.01787,0.2459,0.06581000000000001,0.361,1.05,2.455,26.65,0.0058,0.02417,0.007816,0.01052,0.027339999999999996,0.003114,12.81,17.72,83.09,496.2,0.1293,0.1885,0.031219999999999998,0.04766,0.3124,0.0759 +B,11.66,17.07,73.7,421.0,0.07561,0.0363,0.008306000000000001,0.01162,0.1671,0.05731,0.3534,0.6724,2.225,26.03,0.0065829999999999994,0.006991,0.005949,0.006296,0.02216,0.002668,13.28,19.74,83.61,542.5,0.09958,0.06476,0.03046,0.04262,0.2731,0.06825 +M,15.75,19.22,107.1,758.6,0.1243,0.2364,0.2914,0.1242,0.2375,0.07603,0.5204,1.324,3.477,51.22,0.009329,0.06559,0.09953,0.02283,0.05542999999999999,0.00733,17.36,24.17,119.4,915.3,0.155,0.5046,0.6872,0.2135,0.4245,0.105 +M,25.73,17.46,174.2,2010.0,0.1149,0.2363,0.3368,0.1913,0.1956,0.06121,0.9948,0.8509,7.222,153.1,0.006369,0.04243,0.042660000000000003,0.015080000000000001,0.02335,0.003385,33.13,23.58,229.3,3234.0,0.153,0.5937,0.6451,0.2756,0.369,0.08815 +M,15.08,25.74,98.0,716.6,0.1024,0.09769,0.1235,0.06552999999999999,0.1647,0.06464,0.6534,1.506,4.1739999999999995,63.37,0.01052,0.02431,0.04912,0.01746,0.0212,0.004867,18.51,33.22,121.2,1050.0,0.166,0.2356,0.4029,0.1526,0.2654,0.09437999999999999 +B,11.14,14.07,71.24,384.6,0.07274,0.06064,0.04505,0.014709999999999999,0.16899999999999998,0.060829999999999995,0.4222,0.8092,3.33,28.84,0.005541,0.03387,0.04505,0.014709999999999999,0.03102,0.004831,12.12,15.82,79.62,453.5,0.08864,0.1256,0.1201,0.03922,0.2576,0.07017999999999999 +B,12.56,19.07,81.92,485.8,0.0876,0.1038,0.10300000000000001,0.043910000000000005,0.1533,0.06184,0.3602,1.4780000000000002,3.2119999999999997,27.49,0.009853,0.04235,0.06271,0.01966,0.026389999999999997,0.0042049999999999995,13.37,22.43,89.02,547.4,0.1096,0.2002,0.2388,0.09265,0.2121,0.07188 +B,13.05,18.59,85.09,512.0,0.1082,0.1304,0.09602999999999999,0.056029999999999996,0.2035,0.06501,0.3106,1.51,2.59,21.57,0.007807,0.03932,0.05112,0.01876,0.0286,0.005715,14.19,24.85,94.22,591.2,0.1343,0.2658,0.2573,0.1258,0.3113,0.08317000000000001 +B,13.87,16.21,88.52,593.7,0.08743,0.054920000000000004,0.015019999999999999,0.020880000000000003,0.1424,0.05882999999999999,0.2543,1.3630000000000002,1.7369999999999999,20.74,0.005638000000000001,0.007939,0.005254,0.0060420000000000005,0.01544,0.0020870000000000003,15.11,25.58,96.74,694.4,0.1153,0.1008,0.05285,0.055560000000000005,0.2362,0.07113 +B,8.878,15.49,56.74,241.0,0.08292999999999999,0.07697999999999999,0.04721,0.023809999999999998,0.193,0.06621,0.5381,1.2,4.277,30.18,0.01093,0.02899,0.032139999999999995,0.015059999999999999,0.02837,0.004174000000000001,9.981,17.7,65.27,302.0,0.1015,0.1248,0.09441000000000001,0.047619999999999996,0.2434,0.07431 +B,9.436,18.32,59.82,278.6,0.1009,0.05956,0.0271,0.01406,0.1506,0.06959,0.5079,1.247,3.267,30.48,0.006836,0.008981999999999999,0.02348,0.0065650000000000005,0.01942,0.0027129999999999997,12.02,25.02,75.79,439.6,0.1333,0.1049,0.1144,0.050519999999999995,0.2454,0.08136 +B,12.54,18.07,79.42,491.9,0.07436,0.0265,0.001194,0.005449,0.1528,0.05185,0.3511,0.9527,2.329,28.3,0.005783,0.004693,0.0007928999999999999,0.003617,0.02043,0.001058,13.72,20.98,86.82,585.7,0.09293,0.043269999999999996,0.0035810000000000004,0.01635,0.2233,0.05521 +B,13.3,21.57,85.24,546.1,0.08582000000000001,0.06373,0.03344,0.02424,0.1815,0.056960000000000004,0.2621,1.5390000000000001,2.028,20.98,0.005497999999999999,0.02045,0.01795,0.006399,0.01829,0.001956,14.2,29.2,92.94,621.2,0.114,0.1667,0.1212,0.056139999999999995,0.2637,0.06658 +B,12.76,18.84,81.87,496.6,0.09676,0.07952000000000001,0.02688,0.01781,0.1759,0.061829999999999996,0.2213,1.285,1.535,17.26,0.005608,0.01646,0.01529,0.009997,0.01909,0.002133,13.75,25.99,87.82,579.7,0.1298,0.1839,0.1255,0.08312,0.2744,0.07238 +B,16.5,18.29,106.6,838.1,0.09686,0.08467999999999999,0.058620000000000005,0.04835,0.1495,0.055929999999999994,0.3389,1.439,2.344,33.58,0.0072569999999999996,0.01805,0.01832,0.010329999999999999,0.01694,0.002001,18.13,25.45,117.2,1009.0,0.1338,0.1679,0.1663,0.09122999999999999,0.2394,0.06469 +B,13.4,16.95,85.48,552.4,0.07937000000000001,0.056960000000000004,0.02181,0.014730000000000002,0.165,0.057010000000000005,0.1584,0.6124,1.036,13.22,0.0043939999999999995,0.0125,0.014509999999999999,0.005484,0.01291,0.002074,14.73,21.7,93.76,663.5,0.1213,0.1676,0.1364,0.06987,0.2741,0.07582 +M,20.44,21.78,133.8,1293.0,0.0915,0.1131,0.09799,0.07785,0.1618,0.05557,0.5781,0.9168,4.218,72.44,0.006208,0.01906,0.02375,0.01461,0.01445,0.001906,24.31,26.37,161.2,1780.0,0.1327,0.2376,0.2702,0.1765,0.2609,0.06735 +M,20.2,26.83,133.7,1234.0,0.09905,0.1669,0.1641,0.1265,0.1875,0.0602,0.9761,1.892,7.127999999999999,103.6,0.008439,0.04674,0.059039999999999995,0.02536,0.0371,0.004286,24.19,33.81,160.0,1671.0,0.1278,0.3416,0.3703,0.2152,0.3271,0.07632 +B,12.21,18.02,78.31,458.4,0.09231,0.07175,0.04392,0.02027,0.1695,0.059160000000000004,0.2527,0.7786,1.874,18.57,0.005833,0.013880000000000002,0.02,0.007087,0.01938,0.00196,14.29,24.04,93.85,624.6,0.1368,0.217,0.2413,0.08829,0.3218,0.0747 +M,21.71,17.25,140.9,1546.0,0.09383999999999999,0.08562,0.1168,0.08465,0.1717,0.050539999999999995,1.207,1.051,7.733,224.1,0.005568,0.01112,0.02096,0.01197,0.012629999999999999,0.0018030000000000001,30.75,26.44,199.5,3143.0,0.1363,0.1628,0.2861,0.182,0.251,0.06494 +M,22.01,21.9,147.2,1482.0,0.1063,0.1954,0.2448,0.1501,0.1824,0.0614,1.008,0.6999,7.561,130.2,0.003978,0.028210000000000002,0.03576,0.014709999999999999,0.01518,0.003796,27.66,25.8,195.0,2227.0,0.1294,0.3885,0.4756,0.2432,0.2741,0.08574 +M,16.35,23.29,109.0,840.4,0.09742,0.1497,0.1811,0.08772999999999999,0.2175,0.06217999999999999,0.4312,1.022,2.972,45.5,0.005635,0.039169999999999996,0.06072,0.01656,0.03197,0.004085,19.38,31.03,129.3,1165.0,0.1415,0.4665,0.7087,0.2248,0.4824,0.09614 +B,15.19,13.21,97.65,711.8,0.07962999999999999,0.06934,0.03393,0.02657,0.1721,0.055439999999999996,0.1783,0.4125,1.338,17.72,0.005012,0.01485,0.01551,0.009155,0.01647,0.0017670000000000001,16.2,15.73,104.5,819.1,0.1126,0.1737,0.1362,0.08177999999999999,0.2487,0.06766 +M,21.37,15.1,141.3,1386.0,0.1001,0.1515,0.1932,0.1255,0.1973,0.061829999999999996,0.3414,1.3090000000000002,2.407,39.06,0.004425999999999999,0.02675,0.03437,0.013430000000000001,0.01675,0.004367,22.69,21.84,152.1,1535.0,0.1192,0.284,0.4024,0.1966,0.273,0.08666 +M,20.64,17.35,134.8,1335.0,0.09446,0.1076,0.1527,0.08941,0.1571,0.054779999999999995,0.6137,0.6575,4.119,77.02,0.006211,0.01895,0.026810000000000004,0.012320000000000001,0.012759999999999999,0.0017109999999999998,25.37,23.17,166.8,1946.0,0.1562,0.3055,0.4159,0.2112,0.2689,0.07055 +B,13.69,16.07,87.84,579.1,0.08302000000000001,0.06373999999999999,0.02556,0.020309999999999998,0.1872,0.05669,0.1705,0.5066,1.3719999999999999,14.0,0.004229999999999999,0.01587,0.01169,0.006335,0.019430000000000003,0.002177,14.84,20.21,99.16,670.6,0.1105,0.2096,0.1346,0.06987,0.3323,0.07701000000000001 +B,16.17,16.07,106.3,788.5,0.0988,0.1438,0.06651,0.053970000000000004,0.19899999999999998,0.06572,0.1745,0.489,1.349,14.91,0.00451,0.018119999999999997,0.01951,0.01196,0.01934,0.003696,16.97,19.14,113.1,861.5,0.1235,0.255,0.2114,0.1251,0.3153,0.0896 +B,10.57,20.22,70.15,338.3,0.09072999999999999,0.166,0.228,0.059410000000000004,0.2188,0.0845,0.1115,1.2309999999999999,2.363,7.228,0.008499,0.07643,0.1535,0.029189999999999997,0.01617,0.0122,10.85,22.82,76.51,351.9,0.1143,0.3619,0.603,0.1465,0.2597,0.12 +B,13.46,28.21,85.89,562.1,0.07517,0.04726,0.012709999999999999,0.011170000000000001,0.1421,0.057629999999999994,0.1689,1.15,1.4,14.91,0.004942,0.012029999999999999,0.007508,0.005179,0.014419999999999999,0.001684,14.69,35.63,97.11,680.6,0.1108,0.1457,0.07934,0.05781,0.2694,0.07061 +B,13.66,15.15,88.27,580.6,0.08267999999999999,0.07547999999999999,0.04249,0.02471,0.1792,0.05897,0.1402,0.5417,1.101,11.35,0.005212,0.02984,0.02443,0.008356,0.01818,0.004868,14.54,19.64,97.96,657.0,0.1275,0.3104,0.2569,0.1054,0.3387,0.09638 +M,11.08,18.83,73.3,361.6,0.1216,0.2154,0.1689,0.06367,0.2196,0.0795,0.2114,1.0270000000000001,1.719,13.99,0.007405,0.045489999999999996,0.045880000000000004,0.01339,0.01738,0.004435000000000001,13.24,32.82,91.76,508.1,0.2184,0.9379,0.8402,0.2524,0.4154,0.1403 +B,11.27,12.96,73.16,386.3,0.1237,0.1111,0.079,0.0555,0.2018,0.06914,0.2562,0.9858,1.8090000000000002,16.04,0.006634999999999999,0.017769999999999998,0.02101,0.011640000000000001,0.02108,0.003721,12.84,20.53,84.93,476.1,0.161,0.2429,0.2247,0.1318,0.3343,0.09215 +B,11.04,14.93,70.67,372.7,0.07987000000000001,0.07078999999999999,0.035460000000000005,0.02074,0.2003,0.06246,0.1642,1.031,1.281,11.68,0.005296,0.019030000000000002,0.017230000000000002,0.006959999999999999,0.0188,0.001941,12.09,20.83,79.73,447.1,0.1095,0.1982,0.1553,0.06754,0.3202,0.07287 +B,12.05,22.72,78.75,447.8,0.06935,0.1073,0.07943,0.02978,0.1203,0.06659,0.1194,1.4340000000000002,1.778,9.549,0.0050420000000000005,0.0456,0.04305,0.016669999999999997,0.0247,0.007358,12.57,28.71,87.36,488.4,0.08799,0.3214,0.2912,0.1092,0.2191,0.09349 +B,12.39,17.48,80.64,462.9,0.1042,0.1297,0.05892000000000001,0.0288,0.1779,0.06588,0.2608,0.873,2.117,19.2,0.0067150000000000005,0.03705,0.04757,0.01051,0.01838,0.006884,14.18,23.13,95.23,600.5,0.1427,0.3593,0.3206,0.09804,0.2819,0.1118 +B,13.28,13.72,85.79,541.8,0.08363,0.08575,0.050769999999999996,0.02864,0.1617,0.05594,0.1833,0.5308,1.5919999999999999,15.26,0.0042710000000000005,0.020730000000000002,0.02828,0.008468,0.01461,0.002613,14.24,17.37,96.59,623.7,0.1166,0.2685,0.2866,0.09172999999999999,0.2736,0.0732 +M,14.6,23.29,93.97,664.7,0.08682000000000001,0.06636,0.0839,0.05271,0.1627,0.05416,0.4157,1.6269999999999998,2.9139999999999997,33.01,0.008312,0.017419999999999998,0.033889999999999997,0.01576,0.0174,0.0028710000000000003,15.79,31.71,102.2,758.2,0.1312,0.1581,0.2675,0.1359,0.2477,0.06836 +B,12.21,14.09,78.78,462.0,0.08108,0.07823,0.06838999999999999,0.02534,0.1646,0.06154,0.2666,0.8309,2.097,19.96,0.004405,0.030260000000000002,0.04344,0.01087,0.019209999999999998,0.004622,13.13,19.29,87.65,529.9,0.1026,0.2431,0.3076,0.0914,0.2677,0.08824 +B,13.88,16.16,88.37,596.6,0.07026,0.048310000000000006,0.02045,0.008506999999999999,0.1607,0.05474,0.2541,0.6218,1.709,23.12,0.003728,0.01415,0.019880000000000002,0.007016,0.01647,0.00197,15.51,19.97,99.66,745.3,0.08484,0.1233,0.1091,0.04537,0.2542,0.06623 +B,11.27,15.5,73.38,392.0,0.08365,0.1114,0.1007,0.027569999999999997,0.18100000000000002,0.07252,0.3305,1.067,2.569,22.97,0.01038,0.06669,0.09472,0.02047,0.012190000000000001,0.012329999999999999,12.04,18.93,79.73,450.0,0.1102,0.2809,0.3021,0.08272,0.2157,0.1043 +M,19.55,23.21,128.9,1174.0,0.10099999999999999,0.1318,0.1856,0.1021,0.1989,0.058839999999999996,0.6107,2.8360000000000003,5.382999999999999,70.1,0.01124,0.04097,0.07468999999999999,0.03441,0.02768,0.00624,20.82,30.44,142.0,1313.0,0.1251,0.2414,0.3829,0.1825,0.2576,0.07602 +B,10.26,12.22,65.75,321.6,0.09996000000000001,0.07542,0.01923,0.01968,0.18,0.06569,0.1911,0.5477,1.348,11.88,0.005682,0.01365,0.008496,0.006929,0.01938,0.0023710000000000003,11.38,15.65,73.23,394.5,0.1343,0.165,0.08615,0.06696,0.2937,0.07722000000000001 +B,8.734,16.84,55.27,234.3,0.1039,0.07428,0.0,0.0,0.1985,0.07098,0.5169,2.079,3.167,28.85,0.015819999999999997,0.01966,0.0,0.0,0.01865,0.006736,10.17,22.8,64.01,317.0,0.146,0.131,0.0,0.0,0.2445,0.08865 +M,15.49,19.97,102.4,744.7,0.11599999999999999,0.1562,0.1891,0.09112999999999999,0.1929,0.06744,0.647,1.331,4.675,66.91,0.007268999999999999,0.02928,0.04972,0.016390000000000002,0.01852,0.004232,21.2,29.41,142.1,1359.0,0.1681,0.3913,0.5553,0.2121,0.3187,0.1019 +M,21.61,22.28,144.4,1407.0,0.1167,0.2087,0.281,0.1562,0.2162,0.06606000000000001,0.6242,0.9209,4.158,80.99,0.005215,0.03726,0.04718,0.01288,0.02045,0.004028,26.23,28.74,172.0,2081.0,0.1502,0.5717,0.7053,0.2422,0.3828,0.1007 +B,12.1,17.72,78.07,446.2,0.1029,0.09758,0.047830000000000004,0.033260000000000005,0.1937,0.061610000000000005,0.2841,1.652,1.869,22.22,0.008145999999999999,0.016309999999999998,0.018430000000000002,0.007513,0.02015,0.0017980000000000001,13.56,25.8,88.33,559.5,0.1432,0.1773,0.1603,0.06266000000000001,0.3049,0.07081 +B,14.06,17.18,89.75,609.1,0.08045,0.053610000000000005,0.026810000000000004,0.032510000000000004,0.1641,0.05764,0.1504,1.685,1.237,12.67,0.005371,0.01273,0.01132,0.009155,0.01719,0.001444,14.92,25.34,96.42,684.5,0.1066,0.1231,0.0846,0.07911,0.2523,0.06609 +B,13.51,18.89,88.1,558.1,0.1059,0.1147,0.0858,0.053810000000000004,0.1806,0.06079,0.2136,1.3319999999999999,1.5130000000000001,19.29,0.005442,0.01957,0.03304,0.013669999999999998,0.01315,0.002464,14.8,27.2,97.33,675.2,0.1428,0.257,0.3438,0.1453,0.2666,0.07686 +B,12.8,17.46,83.05,508.3,0.08044,0.08895,0.0739,0.04083,0.1574,0.0575,0.3639,1.265,2.668,30.57,0.0054210000000000005,0.03477,0.04545,0.01384,0.018690000000000002,0.004067,13.74,21.06,90.72,591.0,0.09534,0.1812,0.1901,0.08296,0.1988,0.07053 +B,11.06,14.83,70.31,378.2,0.07741,0.04768,0.02712,0.007245999999999999,0.1535,0.06214,0.1855,0.6881,1.263,12.98,0.004259000000000001,0.01469,0.0194,0.004168,0.011909999999999999,0.0035369999999999998,12.68,20.35,80.79,496.7,0.11199999999999999,0.1879,0.2079,0.055560000000000005,0.259,0.09158 +B,11.8,17.26,75.26,431.9,0.09087,0.06232000000000001,0.02853,0.016380000000000002,0.1847,0.06019,0.3438,1.14,2.225,25.06,0.005463,0.01964,0.02079,0.005398,0.014769999999999998,0.003071,13.45,24.49,86.0,562.0,0.1244,0.1726,0.1449,0.05356,0.2779,0.08121 +M,17.91,21.02,124.4,994.0,0.12300000000000001,0.2576,0.3189,0.1198,0.2113,0.07115,0.40299999999999997,0.7747,3.123,41.51,0.007159,0.03718,0.06165,0.01051,0.01591,0.005099,20.8,27.78,149.6,1304.0,0.1873,0.5917,0.9034,0.1964,0.3245,0.1198 +B,11.93,10.91,76.14,442.7,0.08872000000000001,0.05242,0.026060000000000003,0.01796,0.1601,0.05541,0.2522,1.045,1.649,18.95,0.006175,0.01204,0.01376,0.005832,0.01096,0.001857,13.8,20.14,87.64,589.5,0.1374,0.1575,0.1514,0.06876,0.24600000000000002,0.07262 +B,12.96,18.29,84.18,525.2,0.07351,0.07899,0.04057,0.01883,0.1874,0.05899,0.2357,1.2990000000000002,2.397,20.21,0.003629,0.03713,0.03452,0.01065,0.02632,0.0037049999999999995,14.13,24.61,96.31,621.9,0.09329,0.2318,0.1604,0.06608,0.3207,0.07247 +B,12.94,16.17,83.18,507.6,0.09879,0.08836000000000001,0.03296,0.0239,0.1735,0.062,0.1458,0.905,0.9975,11.36,0.0028870000000000002,0.01285,0.016130000000000002,0.007308,0.0187,0.001972,13.86,23.02,89.69,580.9,0.1172,0.1958,0.18100000000000002,0.08388,0.3297,0.07833999999999999 +B,12.34,14.95,78.29,469.1,0.08682000000000001,0.04571,0.02109,0.02054,0.1571,0.05708,0.3833,0.9078,2.602,30.15,0.007702,0.008491,0.013069999999999998,0.0103,0.0297,0.0014320000000000001,13.18,16.85,84.11,533.1,0.1048,0.06744,0.049210000000000004,0.04793,0.2298,0.059739999999999994 +B,10.94,18.59,70.39,370.0,0.1004,0.0746,0.04944,0.02932,0.1486,0.06615,0.3796,1.743,3.0180000000000002,25.78,0.009519,0.02134,0.0199,0.01155,0.02079,0.0027010000000000003,12.4,25.58,82.76,472.4,0.1363,0.1644,0.1412,0.07887000000000001,0.2251,0.07732 +B,16.14,14.86,104.3,800.0,0.09495,0.08501,0.055,0.04528,0.1735,0.05875,0.2387,0.6372,1.729,21.83,0.003958,0.012459999999999999,0.01831,0.008747,0.015,0.001621,17.71,19.58,115.9,947.9,0.1206,0.1722,0.231,0.1129,0.2778,0.07012 +B,12.85,21.37,82.63,514.5,0.07551000000000001,0.08316,0.06126,0.01867,0.158,0.06114,0.4993,1.798,2.552,41.24,0.006011,0.0448,0.05175,0.01341,0.02669,0.007731,14.4,27.01,91.63,645.8,0.09402,0.1936,0.1838,0.056010000000000004,0.2488,0.08151 +M,17.99,20.66,117.8,991.7,0.1036,0.1304,0.1201,0.08824,0.1992,0.06069,0.4537,0.8733,3.0610000000000004,49.81,0.0072310000000000004,0.027719999999999998,0.02509,0.0148,0.01414,0.003336,21.08,25.41,138.1,1349.0,0.1482,0.3735,0.3301,0.1974,0.306,0.08503 +B,12.27,17.92,78.41,466.1,0.08685,0.06526,0.03211,0.02653,0.1966,0.055970000000000006,0.3342,1.781,2.079,25.79,0.005888,0.0231,0.02059,0.01075,0.02578,0.0022670000000000004,14.1,28.88,89.0,610.2,0.124,0.1795,0.1377,0.09532,0.3455,0.06896000000000001 +B,11.36,17.57,72.49,399.8,0.08857999999999999,0.05313,0.02783,0.021,0.1601,0.059129999999999995,0.1916,1.555,1.359,13.66,0.005391,0.009947,0.01163,0.005872,0.01341,0.0016589999999999999,13.05,36.32,85.07,521.3,0.1453,0.1622,0.1811,0.08698,0.2973,0.07745 +B,11.04,16.83,70.92,373.2,0.1077,0.07804,0.03046,0.0248,0.1714,0.0634,0.1967,1.3869999999999998,1.3419999999999999,13.54,0.005158,0.009355,0.01056,0.007483,0.01718,0.002198,12.41,26.44,79.93,471.4,0.1369,0.1482,0.1067,0.07431,0.2998,0.07881 +B,9.397,21.68,59.75,268.8,0.07969,0.060529999999999994,0.03735,0.005128,0.1274,0.06724,0.1186,1.182,1.1740000000000002,6.8020000000000005,0.005515,0.026739999999999996,0.03735,0.005128,0.01951,0.004582999999999999,9.965,27.99,66.61,301.0,0.1086,0.1887,0.1868,0.025639999999999996,0.2376,0.09206 +B,14.99,22.11,97.53,693.7,0.08515,0.1025,0.06859,0.03876,0.1944,0.059129999999999995,0.3186,1.3359999999999999,2.31,28.51,0.004449,0.02808,0.03312,0.01196,0.01906,0.0040149999999999995,16.76,31.55,110.2,867.1,0.1077,0.3345,0.3114,0.1308,0.3163,0.09251000000000001 +M,15.13,29.81,96.71,719.5,0.0832,0.04605,0.04686,0.027389999999999998,0.1852,0.05294,0.4681,1.6269999999999998,3.043,45.38,0.006831,0.01427,0.02489,0.009087,0.03151,0.00175,17.26,36.91,110.1,931.4,0.1148,0.09866,0.1547,0.06575,0.3233,0.06165 +B,11.89,21.17,76.39,433.8,0.09773,0.0812,0.02555,0.02179,0.2019,0.0629,0.2747,1.203,1.93,19.53,0.009895000000000001,0.03053,0.0163,0.009276000000000001,0.022580000000000003,0.0022719999999999997,13.05,27.21,85.09,522.9,0.1426,0.2187,0.1164,0.08263,0.3075,0.07351 +B,9.405,21.7,59.6,271.2,0.1044,0.06159,0.02047,0.01257,0.2025,0.06601,0.4302,2.878,2.759,25.17,0.014740000000000001,0.01674,0.013669999999999998,0.008674,0.03044,0.0045899999999999995,10.85,31.24,68.73,359.4,0.1526,0.1193,0.06141,0.0377,0.2872,0.08304 +M,15.5,21.08,102.9,803.1,0.11199999999999999,0.1571,0.1522,0.08481,0.2085,0.06863999999999999,1.37,1.213,9.424,176.5,0.008198,0.03889,0.04493,0.02139,0.02018,0.005815,23.17,27.65,157.1,1748.0,0.1517,0.4002,0.4211,0.2134,0.3003,0.1048 +B,12.7,12.17,80.88,495.0,0.08785,0.05794,0.0236,0.02402,0.1583,0.06275,0.2253,0.6457,1.527,17.37,0.006131,0.012629999999999999,0.009075,0.008231,0.017130000000000003,0.004414,13.65,16.92,88.12,566.9,0.1314,0.1607,0.09385,0.08224,0.2775,0.09464 +B,11.16,21.41,70.95,380.3,0.1018,0.05977999999999999,0.008955,0.010759999999999999,0.1615,0.061439999999999995,0.2865,1.6780000000000002,1.9680000000000002,18.99,0.006908,0.009442,0.006972,0.006159,0.02694,0.00206,12.36,28.92,79.26,458.0,0.1282,0.1108,0.03582,0.04306,0.2976,0.07123 +B,11.57,19.04,74.2,409.7,0.08546000000000001,0.07722000000000001,0.05485,0.014280000000000001,0.2031,0.06267,0.2864,1.44,2.206,20.3,0.007278,0.02047,0.044469999999999996,0.008799,0.018680000000000002,0.003339,13.07,26.98,86.43,520.5,0.1249,0.1937,0.256,0.06663999999999999,0.3035,0.08284 +B,14.69,13.98,98.22,656.1,0.1031,0.1836,0.145,0.063,0.2086,0.07406,0.5462,1.511,4.795,49.45,0.009976,0.05244,0.052779999999999994,0.0158,0.02653,0.005444,16.46,18.34,114.1,809.2,0.1312,0.3635,0.3219,0.1108,0.2827,0.09208 +B,11.61,16.02,75.46,408.2,0.1088,0.1168,0.07097,0.044969999999999996,0.1886,0.0632,0.2456,0.7339,1.6669999999999998,15.89,0.005884,0.02005,0.026310000000000004,0.013040000000000001,0.01848,0.001982,12.64,19.67,81.93,475.7,0.1415,0.217,0.2302,0.1105,0.2787,0.07427 +B,13.66,19.13,89.46,575.3,0.09057,0.1147,0.09657,0.048119999999999996,0.1848,0.061810000000000004,0.2244,0.895,1.804,19.36,0.00398,0.028089999999999997,0.03669,0.012740000000000001,0.01581,0.003956,15.14,25.5,101.4,708.8,0.1147,0.3167,0.366,0.1407,0.2744,0.08839 +B,9.742,19.12,61.93,289.7,0.1075,0.08333,0.008934000000000001,0.01967,0.2538,0.07028999999999999,0.6965,1.7469999999999999,4.607,43.52,0.013069999999999998,0.01885,0.006021,0.01052,0.031,0.004225,11.21,23.17,71.79,380.9,0.1398,0.1352,0.02085,0.04589,0.3196,0.08009 +B,10.03,21.28,63.19,307.3,0.08117,0.03912,0.00247,0.005159,0.163,0.06439,0.1851,1.341,1.1840000000000002,11.6,0.005724,0.005697,0.002074,0.003527,0.01445,0.002411,11.11,28.94,69.92,376.3,0.1126,0.07094,0.01235,0.025789999999999997,0.2349,0.08061 +B,10.48,14.98,67.49,333.6,0.09816,0.1013,0.06335,0.022180000000000002,0.1925,0.06915,0.3276,1.127,2.5639999999999996,20.77,0.007364,0.038669999999999996,0.052629999999999996,0.01264,0.02161,0.00483,12.13,21.57,81.41,440.4,0.1327,0.2996,0.2939,0.0931,0.302,0.09646 +B,10.8,21.98,68.79,359.9,0.08801,0.057429999999999995,0.03614,0.01404,0.2016,0.059770000000000004,0.3077,1.621,2.24,20.2,0.006543000000000001,0.021480000000000003,0.029910000000000003,0.01045,0.01844,0.0026899999999999997,12.76,32.04,83.69,489.5,0.1303,0.1696,0.1927,0.07485,0.2965,0.07662000000000001 +B,11.13,16.62,70.47,381.1,0.08151,0.03834,0.01369,0.0137,0.1511,0.06147999999999999,0.1415,0.9671,0.968,9.704,0.005883,0.006263,0.009398,0.006189,0.02009,0.0023769999999999998,11.68,20.29,74.35,421.1,0.10300000000000001,0.062189999999999995,0.0458,0.04044,0.2383,0.07082999999999999 +B,12.72,17.67,80.98,501.3,0.07896,0.045219999999999996,0.01402,0.01835,0.1459,0.055439999999999996,0.2954,0.8836,2.109,23.24,0.007337000000000001,0.01174,0.005383,0.0056229999999999995,0.0194,0.00118,13.82,20.96,88.87,586.8,0.1068,0.09605,0.03469,0.03612,0.2165,0.06025 +M,14.9,22.53,102.1,685.0,0.09947,0.2225,0.2733,0.09711,0.2041,0.06898,0.253,0.8749,3.466,24.19,0.006965000000000001,0.06213,0.07926,0.022340000000000002,0.01499,0.005784,16.35,27.57,125.4,832.7,0.1419,0.7090000000000001,0.9019,0.2475,0.2866,0.1155 +B,12.4,17.68,81.47,467.8,0.1054,0.1316,0.07741,0.027989999999999998,0.1811,0.07102,0.1767,1.46,2.204,15.43,0.01,0.03295,0.04861,0.01167,0.02187,0.006005,12.88,22.91,89.61,515.8,0.145,0.2629,0.2403,0.0737,0.2556,0.09358999999999999 +M,20.18,19.54,133.8,1250.0,0.1133,0.1489,0.2133,0.1259,0.1724,0.060529999999999994,0.4331,1.001,3.008,52.49,0.009087,0.02715,0.05546,0.0191,0.02451,0.004005,22.03,25.07,146.0,1479.0,0.1665,0.2942,0.5308,0.2173,0.3032,0.08075 +M,18.82,21.97,123.7,1110.0,0.1018,0.1389,0.1594,0.08744,0.1943,0.061320000000000006,0.8191,1.931,4.493,103.9,0.008074,0.04088,0.05321,0.018340000000000002,0.02383,0.004515,22.66,30.93,145.3,1603.0,0.139,0.3463,0.3912,0.1708,0.3007,0.08313999999999999 +B,14.86,16.94,94.89,673.7,0.08924,0.07074,0.033460000000000004,0.02877,0.1573,0.05703,0.3028,0.6683,1.6119999999999999,23.92,0.005756,0.01665,0.01461,0.008281,0.01551,0.002168,16.31,20.54,102.3,777.5,0.1218,0.155,0.122,0.07971,0.2525,0.06827000000000001 +M,13.98,19.62,91.12,599.5,0.106,0.1133,0.1126,0.06462999999999999,0.1669,0.06544,0.2208,0.9533,1.6019999999999999,18.85,0.005314,0.01791,0.02185,0.009567,0.01223,0.002846,17.04,30.8,113.9,869.3,0.1613,0.3568,0.4069,0.1827,0.3179,0.1055 +B,12.87,19.54,82.67,509.2,0.09136,0.07883,0.01797,0.0209,0.1861,0.06347,0.3665,0.7693,2.597,26.5,0.00591,0.013619999999999998,0.007065999999999999,0.006502,0.02223,0.002378,14.45,24.38,95.14,626.9,0.1214,0.1652,0.07127,0.06384,0.3313,0.07735 +B,14.04,15.98,89.78,611.2,0.08457999999999999,0.05895,0.035339999999999996,0.029439999999999997,0.1714,0.05898,0.3892,1.046,2.6439999999999997,32.74,0.007976,0.01295,0.01608,0.009046,0.02005,0.00283,15.66,21.58,101.2,750.0,0.1195,0.1252,0.1117,0.07453,0.2725,0.07234 +B,13.85,19.6,88.68,592.6,0.08684,0.0633,0.01342,0.022930000000000002,0.1555,0.056729999999999996,0.3419,1.6780000000000002,2.331,29.63,0.005836,0.01095,0.0058119999999999995,0.007039,0.02014,0.002326,15.63,28.01,100.9,749.1,0.1118,0.1141,0.04753,0.0589,0.2513,0.06911 +B,14.02,15.66,89.59,606.5,0.07966000000000001,0.055810000000000005,0.02087,0.02652,0.1589,0.05586,0.2142,0.6549,1.6059999999999999,19.25,0.004837,0.009238,0.009212999999999999,0.010759999999999999,0.01171,0.002104,14.91,19.31,96.53,688.9,0.1034,0.1017,0.0626,0.08216,0.2136,0.0671 +B,10.97,17.2,71.73,371.5,0.08915,0.1113,0.09457,0.03613,0.1489,0.0664,0.2574,1.376,2.806,18.15,0.008565000000000001,0.046380000000000005,0.0643,0.01768,0.01516,0.0049759999999999995,12.36,26.87,90.14,476.4,0.1391,0.4082,0.4779,0.1555,0.254,0.09532 +M,17.27,25.42,112.4,928.8,0.08331000000000001,0.1109,0.1204,0.05736,0.1467,0.05407000000000001,0.51,1.679,3.283,58.38,0.008109,0.04308,0.04942,0.017419999999999998,0.01594,0.003739,20.38,35.46,132.8,1284.0,0.1436,0.4122,0.5036,0.1739,0.25,0.07944 +B,13.78,15.79,88.37,585.9,0.08817,0.06717999999999999,0.01055,0.009937,0.1405,0.05848,0.3563,0.4833,2.235,29.34,0.006431999999999999,0.011559999999999999,0.007741,0.005657,0.01227,0.002564,15.27,17.5,97.9,706.6,0.1072,0.1071,0.03517,0.03312,0.1859,0.0681 +B,10.57,18.32,66.82,340.9,0.08142,0.04462,0.01993,0.01111,0.2372,0.057679999999999995,0.1818,2.542,1.2770000000000001,13.12,0.01072,0.013309999999999999,0.01993,0.01111,0.017169999999999998,0.004492,10.94,23.31,69.35,366.3,0.09794,0.06542,0.03986,0.02222,0.2699,0.06736 +M,18.03,16.85,117.5,990.0,0.08947000000000001,0.1232,0.109,0.06254,0.172,0.0578,0.2986,0.5906,1.921,35.77,0.004117,0.0156,0.02975,0.009753,0.01295,0.002436,20.38,22.02,133.3,1292.0,0.1263,0.2666,0.429,0.1535,0.2842,0.08225 +B,11.99,24.89,77.61,441.3,0.10300000000000001,0.09218,0.05441,0.04274,0.182,0.0685,0.2623,1.204,1.865,19.39,0.008320000000000001,0.02025,0.02334,0.01665,0.02094,0.003674,12.98,30.36,84.48,513.9,0.1311,0.1822,0.1609,0.1202,0.2599,0.08251 +M,17.75,28.03,117.3,981.6,0.09997,0.1314,0.1698,0.08292999999999999,0.1713,0.059160000000000004,0.3897,1.077,2.873,43.95,0.004714,0.02015,0.036969999999999996,0.0111,0.01237,0.0025559999999999997,21.53,38.54,145.4,1437.0,0.1401,0.3762,0.6399,0.19699999999999998,0.2972,0.09075 +B,14.8,17.66,95.88,674.8,0.09179,0.0889,0.04069,0.0226,0.1893,0.05886,0.2204,0.6221,1.482,19.75,0.004796,0.01171,0.017580000000000002,0.0068969999999999995,0.02254,0.001971,16.43,22.74,105.9,829.5,0.1226,0.1881,0.20600000000000002,0.08308,0.36,0.07285 +B,14.53,19.34,94.25,659.7,0.08388,0.078,0.08817,0.02925,0.1473,0.057460000000000004,0.2535,1.354,1.994,23.04,0.004147,0.02048,0.03379,0.008848,0.013940000000000001,0.002327,16.3,28.39,108.1,830.5,0.1089,0.2649,0.3779,0.09594,0.2471,0.07463 +M,21.1,20.52,138.1,1384.0,0.09684,0.1175,0.1572,0.1155,0.1554,0.05661,0.6643,1.361,4.542,81.89,0.0054670000000000005,0.02075,0.03185,0.01466,0.01029,0.002205,25.68,32.07,168.2,2022.0,0.1368,0.3101,0.4399,0.228,0.2268,0.07425 +B,11.87,21.54,76.83,432.0,0.06613,0.1064,0.08777,0.02386,0.1349,0.06612,0.256,1.554,1.955,20.24,0.006854000000000001,0.060629999999999996,0.06663,0.01553,0.023540000000000002,0.008925,12.79,28.18,83.51,507.2,0.09457,0.3399,0.3218,0.0875,0.2305,0.09952000000000001 +M,19.59,25.0,127.7,1191.0,0.1032,0.09871,0.1655,0.09063,0.1663,0.05391,0.4674,1.375,2.9160000000000004,56.18,0.0119,0.01929,0.049069999999999996,0.01499,0.01641,0.001807,21.44,30.96,139.8,1421.0,0.1528,0.1845,0.3977,0.1466,0.2293,0.06091 +B,12.0,28.23,76.77,442.5,0.08437,0.0645,0.04055,0.01945,0.1615,0.06104,0.1912,1.705,1.516,13.86,0.007334,0.025889999999999996,0.029410000000000002,0.009165999999999999,0.01745,0.004302,13.09,37.88,85.07,523.7,0.1208,0.1856,0.1811,0.07116,0.2447,0.08194 +B,14.53,13.98,93.86,644.2,0.1099,0.09242,0.06895,0.06495,0.165,0.06121,0.306,0.7213,2.1430000000000002,25.7,0.0061329999999999996,0.01251,0.01615,0.011359999999999999,0.02207,0.003563,15.8,16.93,103.1,749.9,0.1347,0.1478,0.1373,0.1069,0.2606,0.0781 +B,12.62,17.15,80.62,492.9,0.08582999999999999,0.0543,0.029660000000000002,0.022719999999999997,0.1799,0.05826,0.1692,0.6674,1.1159999999999999,13.32,0.0038880000000000004,0.008539,0.01256,0.006887999999999999,0.01608,0.001638,14.34,22.15,91.62,633.5,0.1225,0.1517,0.1887,0.09851,0.327,0.0733 +B,13.38,30.72,86.34,557.2,0.09245,0.07426,0.028189999999999996,0.032639999999999995,0.1375,0.060160000000000005,0.3408,1.9240000000000002,2.287,28.93,0.005841,0.012459999999999999,0.007936,0.009128,0.01564,0.0029850000000000002,15.05,41.61,96.69,705.6,0.1172,0.1421,0.07003,0.07762999999999999,0.2196,0.07675 +B,11.63,29.29,74.87,415.1,0.09357,0.08574,0.0716,0.02017,0.1799,0.06166,0.3135,2.426,2.15,23.13,0.009861,0.02418,0.04275,0.009215000000000001,0.02475,0.002128,13.12,38.81,86.04,527.8,0.1406,0.2031,0.2923,0.06835,0.2884,0.0722 +B,13.21,25.25,84.1,537.9,0.08791,0.05205,0.027719999999999998,0.02068,0.1619,0.05584,0.2084,1.35,1.314,17.58,0.005768,0.008081999999999999,0.0151,0.006451,0.01347,0.0018280000000000002,14.35,34.23,91.29,632.9,0.1289,0.1063,0.139,0.06005,0.2444,0.06788 +B,13.0,25.13,82.61,520.2,0.08369,0.050730000000000004,0.01206,0.01762,0.1667,0.05449,0.2621,1.232,1.6569999999999998,21.19,0.0060539999999999995,0.008974,0.005681,0.006336,0.01215,0.0015140000000000002,14.34,31.88,91.06,628.5,0.1218,0.1093,0.04462,0.059210000000000006,0.2306,0.06291000000000001 +B,9.755,28.2,61.68,290.9,0.07984,0.04626,0.01541,0.01043,0.1621,0.05952,0.1781,1.6869999999999998,1.2429999999999999,11.28,0.006587999999999999,0.0127,0.0145,0.006104,0.01574,0.002268,10.67,36.92,68.03,349.9,0.111,0.1109,0.0719,0.04866,0.2321,0.07211000000000001 +M,17.08,27.15,111.2,930.9,0.09898,0.111,0.1007,0.06431,0.1793,0.06281,0.9291,1.1520000000000001,6.051,115.2,0.008740000000000001,0.02219,0.02721,0.014580000000000001,0.02045,0.004417,22.96,34.49,152.1,1648.0,0.16,0.2444,0.2639,0.1555,0.301,0.0906 +M,27.42,26.27,186.9,2501.0,0.1084,0.1988,0.3635,0.1689,0.2061,0.056229999999999995,2.5469999999999997,1.306,18.65,542.2,0.00765,0.053739999999999996,0.08055,0.02598,0.01697,0.0045579999999999996,36.04,31.37,251.2,4254.0,0.1357,0.4256,0.6833,0.2625,0.2641,0.07427 +B,14.4,26.99,92.25,646.1,0.06995,0.05223,0.03476,0.01737,0.1707,0.054329999999999996,0.2315,0.9112,1.7269999999999999,20.52,0.0053560000000000005,0.01679,0.01971,0.006370000000000001,0.01414,0.0018920000000000002,15.4,31.98,100.4,734.6,0.1017,0.146,0.1472,0.05563,0.2345,0.06464 +B,11.6,18.36,73.88,412.7,0.08507999999999999,0.05855,0.03367,0.017769999999999998,0.1516,0.058589999999999996,0.1816,0.7656,1.3030000000000002,12.89,0.0067090000000000006,0.01701,0.0208,0.007497,0.021240000000000002,0.002768,12.77,24.02,82.68,495.1,0.1342,0.1808,0.18600000000000003,0.08288,0.321,0.07862999999999999 +B,13.17,18.22,84.28,537.3,0.07466,0.05994,0.048589999999999994,0.0287,0.1454,0.05549,0.2023,0.685,1.236,16.89,0.0059689999999999995,0.01493,0.01564,0.008463,0.01093,0.0016719999999999999,14.9,23.89,95.1,687.6,0.1282,0.1965,0.1876,0.1045,0.2235,0.06925 +B,13.24,20.13,86.87,542.9,0.08284,0.1223,0.10099999999999999,0.02833,0.1601,0.06432,0.281,0.8135,3.3689999999999998,23.81,0.004929,0.06657,0.07683,0.013680000000000001,0.01526,0.008133,15.44,25.5,115.0,733.5,0.1201,0.5646,0.6556,0.1357,0.2845,0.1249 +B,13.14,20.74,85.98,536.9,0.08675,0.1089,0.1085,0.0351,0.1562,0.0602,0.3152,0.7884,2.312,27.4,0.007295,0.03179,0.04615,0.01254,0.015609999999999999,0.00323,14.8,25.46,100.9,689.1,0.1351,0.3549,0.4504,0.1181,0.2563,0.08174 +B,9.668,18.1,61.06,286.3,0.08311,0.054279999999999995,0.014790000000000001,0.005769,0.168,0.06412000000000001,0.3416,1.3119999999999998,2.275,20.98,0.01098,0.01257,0.01031,0.003934,0.026930000000000003,0.002979,11.15,24.62,71.11,380.2,0.1388,0.1255,0.06409,0.025,0.3057,0.07875 +M,17.6,23.33,119.0,980.5,0.09289,0.2004,0.2136,0.1002,0.1696,0.07368999999999999,0.9289,1.465,5.801,104.9,0.0067659999999999994,0.07025,0.06591,0.02311,0.016730000000000002,0.0113,21.57,28.87,143.6,1437.0,0.1207,0.4785,0.5165,0.1996,0.2301,0.1224 +B,11.62,18.18,76.38,408.8,0.1175,0.1483,0.102,0.055639999999999995,0.1957,0.07255,0.4101,1.74,3.0269999999999997,27.85,0.01459,0.032060000000000005,0.04961,0.01841,0.01807,0.005217,13.36,25.4,88.14,528.1,0.17800000000000002,0.2878,0.3186,0.1416,0.266,0.0927 +B,9.667,18.49,61.49,289.1,0.08946,0.06258,0.029480000000000003,0.01514,0.2238,0.06412999999999999,0.3776,1.35,2.569,22.73,0.007501000000000001,0.01989,0.027139999999999997,0.009883,0.0196,0.003913000000000001,11.14,25.62,70.88,385.2,0.1234,0.1542,0.1277,0.0656,0.3174,0.08524 +B,12.04,28.14,76.85,449.9,0.08752,0.06,0.02367,0.02377,0.1854,0.056979999999999996,0.6061,2.6430000000000002,4.099,44.96,0.007517,0.01555,0.01465,0.01183,0.02047,0.0038829999999999997,13.6,33.33,87.24,567.6,0.1041,0.09726,0.05524,0.055470000000000005,0.2404,0.06639 +B,14.92,14.93,96.45,686.9,0.08098,0.08549,0.055389999999999995,0.03221,0.1687,0.05669,0.2446,0.4334,1.8259999999999998,23.31,0.003271,0.0177,0.0231,0.008399,0.011479999999999999,0.002379,17.18,18.22,112.0,906.6,0.1065,0.2791,0.3151,0.1147,0.2688,0.08273 +B,12.27,29.97,77.42,465.4,0.07699,0.03398,0.0,0.0,0.1701,0.0596,0.4455,3.647,2.884,35.13,0.007339,0.008243,0.0,0.0,0.03141,0.003136,13.45,38.05,85.08,558.9,0.09422,0.052129999999999996,0.0,0.0,0.2409,0.06742999999999999 +B,10.88,15.62,70.41,358.9,0.1007,0.1069,0.05115,0.01571,0.1861,0.06837,0.1482,0.5379999999999999,1.301,9.597000000000001,0.0044740000000000005,0.030930000000000003,0.027569999999999997,0.006691,0.01212,0.004672,11.94,19.35,80.78,433.1,0.1332,0.3898,0.3365,0.07966000000000001,0.2581,0.10800000000000001 +B,12.83,15.73,82.89,506.9,0.0904,0.08269,0.05835,0.030780000000000002,0.1705,0.059129999999999995,0.1499,0.4875,1.195,11.64,0.004873,0.01796,0.03318,0.00836,0.01601,0.0022890000000000002,14.09,19.35,93.22,605.8,0.1326,0.261,0.3476,0.09783,0.3006,0.07802 +B,14.2,20.53,92.41,618.4,0.08931,0.1108,0.05063,0.03058,0.1506,0.06009,0.3478,1.018,2.7489999999999997,31.01,0.004107,0.03288,0.028210000000000002,0.0135,0.0161,0.002744,16.45,27.26,112.1,828.5,0.1153,0.3429,0.2512,0.1339,0.2534,0.07858 +B,13.9,16.62,88.97,599.4,0.06828,0.05319,0.02224,0.01339,0.1813,0.05536,0.1555,0.5762,1.392,14.03,0.0033079999999999997,0.01315,0.009904000000000001,0.004832,0.01316,0.002095,15.14,21.8,101.2,718.9,0.09383999999999999,0.2006,0.1384,0.062220000000000004,0.2679,0.07697999999999999 +B,11.49,14.59,73.99,404.9,0.1046,0.08227999999999999,0.053079999999999995,0.01969,0.1779,0.06573999999999999,0.2034,1.166,1.567,14.34,0.004957,0.02114,0.04156,0.008038,0.018430000000000002,0.003614,12.4,21.9,82.04,467.6,0.1352,0.201,0.2596,0.07431,0.2941,0.0918 +M,16.25,19.51,109.8,815.8,0.1026,0.1893,0.2236,0.09194,0.2151,0.06577999999999999,0.3147,0.9857,3.07,33.12,0.009197,0.0547,0.08079,0.02215,0.02773,0.0063549999999999995,17.39,23.05,122.1,939.7,0.1377,0.4462,0.5897,0.1775,0.3318,0.09136 +B,12.16,18.03,78.29,455.3,0.09087,0.07837999999999999,0.029160000000000002,0.015269999999999999,0.1464,0.06284,0.2194,1.19,1.6780000000000002,16.26,0.004911,0.016659999999999998,0.013969999999999998,0.005161,0.01454,0.0018579999999999998,13.34,27.87,88.83,547.4,0.1208,0.2279,0.162,0.0569,0.2406,0.07729 +B,13.9,19.24,88.73,602.9,0.07991000000000001,0.05326,0.02995,0.0207,0.1579,0.05594,0.3316,0.9264,2.056,28.41,0.003704,0.01082,0.0153,0.006275,0.010620000000000001,0.0022170000000000002,16.41,26.42,104.4,830.5,0.1064,0.1415,0.1673,0.0815,0.2356,0.07603 +B,13.47,14.06,87.32,546.3,0.1071,0.1155,0.05786,0.052660000000000005,0.1779,0.06639,0.1588,0.5733,1.102,12.84,0.00445,0.014519999999999998,0.013340000000000001,0.008791,0.016980000000000002,0.002787,14.83,18.32,94.94,660.2,0.1393,0.2499,0.1848,0.1335,0.3227,0.09326 +B,13.7,17.64,87.76,571.1,0.0995,0.07957,0.04548,0.0316,0.1732,0.06088,0.2431,0.9462,1.564,20.64,0.0032450000000000005,0.008186,0.016980000000000002,0.009233,0.01285,0.001524,14.96,23.53,95.78,686.5,0.1199,0.1346,0.1742,0.09077,0.2518,0.0696 +B,15.73,11.28,102.8,747.2,0.1043,0.1299,0.1191,0.062110000000000005,0.1784,0.06258999999999999,0.163,0.3871,1.143,13.87,0.006034,0.0182,0.03336,0.01067,0.01175,0.0022559999999999998,17.01,14.2,112.5,854.3,0.1541,0.2979,0.4004,0.1452,0.2557,0.08181000000000001 +B,12.45,16.41,82.85,476.7,0.09514,0.1511,0.1544,0.04846,0.2082,0.07325,0.3921,1.207,5.004,30.19,0.007234,0.07471,0.1114,0.02721,0.03232,0.009627,13.78,21.03,97.82,580.6,0.1175,0.4061,0.4896,0.1342,0.3231,0.1034 +B,14.64,16.85,94.21,666.0,0.08641,0.06698,0.05192000000000001,0.02791,0.1409,0.05355,0.2204,1.006,1.4709999999999999,19.98,0.003535,0.013930000000000001,0.018000000000000002,0.006144,0.01254,0.001219,16.46,25.44,106.0,831.0,0.1142,0.207,0.2437,0.07828,0.2455,0.06596 +M,19.44,18.82,128.1,1167.0,0.1089,0.1448,0.2256,0.1194,0.1823,0.06115,0.5659,1.4080000000000001,3.6310000000000002,67.74,0.005288,0.02833,0.04256,0.01176,0.017169999999999998,0.003211,23.96,30.39,153.9,1740.0,0.1514,0.3725,0.5936,0.20600000000000002,0.3266,0.09009 +B,11.68,16.17,75.49,420.5,0.1128,0.09262999999999999,0.042789999999999995,0.03132,0.1853,0.06401,0.3713,1.1540000000000001,2.5540000000000003,27.57,0.008998,0.01292,0.01851,0.01167,0.021519999999999997,0.003213,13.32,21.59,86.57,549.8,0.1526,0.1477,0.149,0.09815,0.2804,0.08023999999999999 +M,16.69,20.2,107.1,857.6,0.07497000000000001,0.07112,0.036489999999999995,0.02307,0.1846,0.05325,0.2473,0.5679,1.775,22.95,0.002667,0.014459999999999999,0.014230000000000001,0.005297,0.01961,0.0017,19.18,26.56,127.3,1084.0,0.1009,0.292,0.2477,0.08737,0.4677,0.07622999999999999 +B,12.25,22.44,78.18,466.5,0.08192,0.052000000000000005,0.01714,0.01261,0.1544,0.05976,0.2239,1.139,1.577,18.04,0.005096,0.01205,0.00941,0.0045509999999999995,0.01608,0.0023989999999999997,14.17,31.99,92.74,622.9,0.1256,0.1804,0.12300000000000001,0.06335,0.31,0.08202999999999999 +B,17.85,13.23,114.6,992.1,0.07837999999999999,0.06217,0.04445,0.04178,0.122,0.05243,0.4834,1.046,3.1630000000000003,50.95,0.004369,0.008274,0.01153,0.007437,0.013019999999999999,0.001309,19.82,18.42,127.1,1210.0,0.09862,0.09976,0.1048,0.08341,0.1783,0.058710000000000005 +M,18.01,20.56,118.4,1007.0,0.1001,0.1289,0.11699999999999999,0.07762000000000001,0.2116,0.060770000000000005,0.7548,1.288,5.353,89.74,0.007997,0.027000000000000003,0.03737,0.01648,0.02897,0.003996,21.53,26.06,143.4,1426.0,0.1309,0.2327,0.2544,0.1489,0.3251,0.07625 +B,12.46,12.83,78.83,477.3,0.07372000000000001,0.04043,0.0071730000000000006,0.01149,0.1613,0.060129999999999996,0.3276,1.486,2.108,24.6,0.01039,0.010029999999999999,0.006416,0.007895000000000001,0.028689999999999997,0.004821,13.19,16.36,83.24,534.0,0.09439,0.06477000000000001,0.01674,0.0268,0.228,0.07028 +B,13.16,20.54,84.06,538.7,0.07335,0.05275,0.018000000000000002,0.01256,0.1713,0.058879999999999995,0.3237,1.473,2.326,26.07,0.007802,0.02052,0.01341,0.005564,0.02086,0.0027010000000000003,14.5,28.46,95.29,648.3,0.1118,0.1646,0.07697999999999999,0.04195,0.2687,0.07429 +B,14.87,20.21,96.12,680.9,0.09587000000000001,0.08345,0.06824,0.049510000000000005,0.1487,0.057479999999999996,0.2323,1.636,1.5959999999999999,21.84,0.005415,0.01371,0.02153,0.01183,0.01959,0.001812,16.01,28.48,103.9,783.6,0.1216,0.1388,0.17,0.1017,0.2369,0.06599 +B,12.65,18.17,82.69,485.6,0.1076,0.1334,0.08017,0.05074,0.1641,0.06854,0.2324,0.6332,1.696,18.4,0.005704,0.02502,0.02636,0.010320000000000001,0.01759,0.003563,14.38,22.15,95.29,633.7,0.1533,0.3842,0.3582,0.1407,0.32299999999999995,0.1033 +B,12.47,17.31,80.45,480.1,0.08928,0.0763,0.03609,0.02369,0.1526,0.06046,0.1532,0.7809999999999999,1.253,11.91,0.003796,0.01371,0.01346,0.007095999999999999,0.015359999999999999,0.001541,14.06,24.34,92.82,607.3,0.1276,0.2506,0.2028,0.1053,0.3035,0.07661 +M,18.49,17.52,121.3,1068.0,0.1012,0.1317,0.1491,0.09183,0.1832,0.06697,0.7923,1.045,4.851,95.77,0.007974,0.032139999999999995,0.04435,0.01573,0.01617,0.005255,22.75,22.88,146.4,1600.0,0.1412,0.3089,0.3533,0.1663,0.251,0.09445 +M,20.59,21.24,137.8,1320.0,0.1085,0.1644,0.2188,0.1121,0.1848,0.062220000000000004,0.5904,1.216,4.206,75.09,0.006666,0.02791,0.040619999999999996,0.014790000000000001,0.011170000000000001,0.0037270000000000003,23.86,30.76,163.2,1760.0,0.1464,0.3597,0.5179,0.2113,0.248,0.08999 +B,15.04,16.74,98.73,689.4,0.09883,0.1364,0.07721,0.06142,0.1668,0.06869,0.37200000000000005,0.8423,2.3040000000000003,34.84,0.004123,0.01819,0.01996,0.01004,0.01055,0.003237,16.76,20.43,109.7,856.9,0.1135,0.2176,0.1856,0.1018,0.2177,0.08549 +M,13.82,24.49,92.33,595.9,0.1162,0.1681,0.1357,0.06759,0.2275,0.07237,0.4751,1.528,2.9739999999999998,39.05,0.00968,0.038560000000000004,0.03476,0.01616,0.02434,0.006995,16.01,32.94,106.0,788.0,0.1794,0.3966,0.3381,0.1521,0.3651,0.1183 +B,12.54,16.32,81.25,476.3,0.1158,0.1085,0.05927999999999999,0.03279,0.1943,0.06612,0.2577,1.095,1.5659999999999998,18.49,0.009701999999999999,0.01567,0.02575,0.011609999999999999,0.028010000000000004,0.00248,13.57,21.4,86.67,552.0,0.158,0.1751,0.1889,0.08411,0.3155,0.07537999999999999 +M,23.09,19.83,152.1,1682.0,0.09342,0.1275,0.1676,0.1003,0.1505,0.05484,1.291,0.7452,9.635,180.2,0.005753,0.03356,0.039760000000000004,0.02156,0.02201,0.002897,30.79,23.87,211.5,2782.0,0.1199,0.3625,0.3794,0.2264,0.2908,0.07277 +B,9.267999999999999,12.87,61.49,248.7,0.1634,0.2239,0.0973,0.052520000000000004,0.2378,0.09502000000000001,0.4076,1.093,3.014,20.04,0.009783,0.04542,0.03483,0.02188,0.025419999999999998,0.01045,10.28,16.38,69.05,300.2,0.1902,0.3441,0.2099,0.1025,0.3038,0.1252 +B,9.676,13.14,64.12,272.5,0.1255,0.2204,0.1188,0.07038,0.2057,0.09575,0.2744,1.39,1.787,17.67,0.021769999999999998,0.04888,0.05189,0.0145,0.02632,0.011479999999999999,10.6,18.04,69.47,328.1,0.2006,0.3663,0.2913,0.1075,0.2848,0.1364 +B,12.22,20.04,79.47,453.1,0.1096,0.1152,0.08175,0.02166,0.2124,0.06894,0.1811,0.7959,0.9857,12.58,0.006272,0.02198,0.03966,0.009894,0.0132,0.0038130000000000004,13.16,24.17,85.13,515.3,0.1402,0.2315,0.3535,0.08088,0.2709,0.08839 +B,11.06,17.12,71.25,366.5,0.1194,0.1071,0.04063,0.04268,0.1954,0.07976,0.1779,1.03,1.318,12.3,0.012620000000000001,0.02348,0.018000000000000002,0.01285,0.0222,0.008313,11.69,20.74,76.08,411.1,0.1662,0.2031,0.1256,0.09514,0.278,0.1168 +B,16.3,15.7,104.7,819.8,0.09427,0.06712,0.055260000000000004,0.045630000000000004,0.1711,0.05657,0.2067,0.4706,1.146,20.67,0.0073939999999999995,0.012029999999999999,0.0247,0.01431,0.01344,0.002569,17.32,17.76,109.8,928.2,0.1354,0.1361,0.1947,0.1357,0.23,0.0723 +M,15.46,23.95,103.8,731.3,0.1183,0.187,0.203,0.0852,0.1807,0.07082999999999999,0.3331,1.9609999999999999,2.937,32.52,0.009538,0.0494,0.06019,0.02041,0.02105,0.006,17.11,36.33,117.7,909.4,0.1732,0.4967,0.5911,0.2163,0.3013,0.1067 +B,11.74,14.69,76.31,426.0,0.08098999999999999,0.09661,0.06726,0.026389999999999997,0.1499,0.06758,0.1924,0.6417,1.345,13.04,0.0069819999999999995,0.03916,0.04017,0.015280000000000002,0.0226,0.006822,12.45,17.6,81.25,473.8,0.1073,0.2793,0.26899999999999996,0.1056,0.2604,0.09879 +B,14.81,14.7,94.66,680.7,0.08472,0.05016,0.03416,0.02541,0.1659,0.05347999999999999,0.2182,0.6232,1.6769999999999998,20.72,0.0067079999999999996,0.01197,0.014819999999999998,0.01056,0.0158,0.001779,15.61,17.58,101.7,760.2,0.1139,0.1011,0.1101,0.07955,0.2334,0.06142 +M,13.4,20.52,88.64,556.7,0.1106,0.1469,0.1445,0.08172,0.2116,0.07325,0.3906,0.9306,3.093,33.67,0.005414,0.02265,0.03452,0.013340000000000001,0.01705,0.004005,16.41,29.66,113.3,844.4,0.1574,0.3856,0.5106,0.2051,0.3585,0.1109 +B,14.58,13.66,94.29,658.8,0.09832,0.08918,0.08222,0.04349,0.1739,0.0564,0.4165,0.6237,2.5610000000000004,37.11,0.004953,0.018119999999999997,0.03035,0.008648000000000001,0.015390000000000001,0.002281,16.76,17.24,108.5,862.0,0.1223,0.1928,0.2492,0.09186,0.2626,0.07048 +M,15.05,19.07,97.26,701.9,0.09215,0.08597,0.07486,0.04335,0.1561,0.05915,0.386,1.198,2.63,38.49,0.004952000000000001,0.0163,0.02967,0.009423,0.01152,0.001718,17.58,28.06,113.8,967.0,0.1246,0.2101,0.2866,0.11199999999999999,0.2282,0.06954 +B,11.34,18.61,72.76,391.2,0.1049,0.08499,0.043019999999999996,0.025939999999999998,0.1927,0.062110000000000005,0.243,1.01,1.4909999999999999,18.19,0.008577,0.01641,0.02099,0.01107,0.02434,0.001217,12.47,23.03,79.15,478.6,0.1483,0.1574,0.1624,0.08542000000000001,0.306,0.06783 +M,18.31,20.58,120.8,1052.0,0.1068,0.1248,0.1569,0.09451,0.18600000000000003,0.059410000000000004,0.5449,0.9225,3.218,67.36,0.006176,0.01877,0.02913,0.010459999999999999,0.015590000000000001,0.002725,21.86,26.2,142.2,1493.0,0.1492,0.2536,0.3759,0.151,0.3074,0.07862999999999999 +M,19.89,20.26,130.5,1214.0,0.1037,0.131,0.1411,0.09431,0.1802,0.06188,0.5079,0.8737,3.654,59.7,0.005089,0.023030000000000002,0.03052,0.01178,0.01057,0.0033909999999999995,23.73,25.23,160.5,1646.0,0.1417,0.3309,0.4185,0.1613,0.2549,0.09136 +B,12.88,18.22,84.45,493.1,0.1218,0.1661,0.04825,0.053029999999999994,0.1709,0.07253,0.4426,1.169,3.176,34.37,0.005273,0.02329,0.01405,0.012440000000000001,0.01816,0.0032990000000000003,15.05,24.37,99.31,674.7,0.1456,0.2961,0.1246,0.1096,0.2582,0.08893 +B,12.75,16.7,82.51,493.8,0.1125,0.1117,0.0388,0.02995,0.212,0.06623,0.3834,1.003,2.495,28.62,0.007509,0.015609999999999999,0.01977,0.009198999999999999,0.01805,0.003629,14.45,21.74,93.63,624.1,0.1475,0.1979,0.1423,0.08045,0.3071,0.08557000000000001 +B,9.295,13.9,59.96,257.8,0.1371,0.1225,0.033319999999999995,0.02421,0.2197,0.07696,0.3538,1.13,2.388,19.63,0.01546,0.0254,0.02197,0.0158,0.03997,0.003901,10.57,17.84,67.84,326.6,0.185,0.2097,0.09996000000000001,0.07262,0.3681,0.08982000000000001 +M,24.63,21.6,165.5,1841.0,0.10300000000000001,0.2106,0.231,0.1471,0.1991,0.06738999999999999,0.9915,0.9004,7.05,139.9,0.004989,0.032119999999999996,0.035710000000000006,0.015969999999999998,0.01879,0.00476,29.92,26.93,205.7,2642.0,0.1342,0.4188,0.4658,0.2475,0.3157,0.09671 +B,11.26,19.83,71.3,388.1,0.08511,0.04413,0.005067,0.005664,0.1637,0.06343,0.1344,1.083,0.9812,9.332,0.0042,0.0059,0.003846,0.004065,0.01487,0.0022949999999999997,11.93,26.43,76.38,435.9,0.1108,0.07723,0.025330000000000002,0.028319999999999998,0.2557,0.07612999999999999 +B,13.71,18.68,88.73,571.0,0.09916,0.107,0.05385,0.03783,0.1714,0.06842999999999999,0.3191,1.249,2.2840000000000003,26.45,0.006739,0.02251,0.02086,0.013519999999999999,0.0187,0.003747,15.11,25.63,99.43,701.9,0.1425,0.2566,0.1935,0.1284,0.2849,0.09031 +B,9.847000000000001,15.68,63.0,293.2,0.09492,0.08419,0.0233,0.02416,0.1387,0.06891,0.2498,1.216,1.976,15.24,0.008732,0.020419999999999997,0.010620000000000001,0.006801000000000001,0.01824,0.0034939999999999997,11.24,22.99,74.32,376.5,0.1419,0.2243,0.08434,0.06527999999999999,0.2502,0.09208999999999999 +B,8.571,13.1,54.53,221.3,0.1036,0.07632,0.02565,0.0151,0.1678,0.07126,0.1267,0.6793,1.069,7.254,0.007897,0.01762,0.018009999999999998,0.00732,0.01592,0.003925,9.472999999999999,18.45,63.3,275.6,0.1641,0.2235,0.1754,0.08512,0.2983,0.1049 +B,13.46,18.75,87.44,551.1,0.1075,0.1138,0.042010000000000006,0.03152,0.1723,0.06317,0.1998,0.6068,1.443,16.07,0.004413,0.014430000000000002,0.015090000000000001,0.007369,0.01354,0.0017870000000000002,15.35,25.16,101.9,719.8,0.1624,0.3124,0.2654,0.1427,0.3518,0.08665 +B,12.34,12.27,78.94,468.5,0.09003,0.06307,0.029580000000000002,0.02647,0.1689,0.05807999999999999,0.1166,0.4957,0.7714,8.955,0.0036810000000000002,0.009169,0.008732,0.0057399999999999994,0.011290000000000001,0.001366,13.61,19.27,87.22,564.9,0.1292,0.2074,0.1791,0.107,0.311,0.07592 +B,13.94,13.17,90.31,594.2,0.1248,0.09755,0.10099999999999999,0.06615,0.1976,0.06457,0.5461,2.635,4.091,44.74,0.01004,0.03247,0.04763,0.02853,0.01715,0.005528,14.62,15.38,94.52,653.3,0.1394,0.1364,0.1559,0.1015,0.21600000000000003,0.07253 +B,12.07,13.44,77.83,445.2,0.11,0.09009,0.03781,0.02798,0.1657,0.06608,0.2513,0.504,1.714,18.54,0.007326999999999999,0.01153,0.01798,0.007986,0.01962,0.002234,13.45,15.77,86.92,549.9,0.1521,0.1632,0.1622,0.07393,0.2781,0.08052000000000001 +B,11.75,17.56,75.89,422.9,0.1073,0.09713,0.052820000000000006,0.0444,0.1598,0.06677000000000001,0.4384,1.9069999999999998,3.1489999999999996,30.66,0.006587000000000001,0.01815,0.01737,0.01316,0.01835,0.002318,13.5,27.98,88.52,552.3,0.1349,0.1854,0.1366,0.10099999999999999,0.2478,0.07757 +B,11.67,20.02,75.21,416.2,0.1016,0.09452999999999999,0.042,0.02157,0.1859,0.06461,0.2067,0.8745,1.393,15.34,0.005251,0.017269999999999997,0.0184,0.005298,0.014490000000000001,0.002671,13.35,28.81,87.0,550.6,0.155,0.2964,0.2758,0.0812,0.3206,0.0895 +B,13.68,16.33,87.76,575.5,0.09277,0.07255,0.017519999999999997,0.0188,0.1631,0.06155,0.2047,0.4801,1.3730000000000002,17.25,0.0038280000000000002,0.007228,0.007078,0.005077,0.01054,0.001697,15.85,20.2,101.6,773.4,0.1264,0.1564,0.1206,0.08703999999999999,0.2806,0.07782 +M,20.47,20.67,134.7,1299.0,0.09156,0.1313,0.1523,0.1015,0.2166,0.054189999999999995,0.8336,1.736,5.167999999999999,100.4,0.0049380000000000005,0.030889999999999997,0.04093,0.01699,0.02816,0.002719,23.23,27.15,152.0,1645.0,0.1097,0.2534,0.3092,0.1613,0.322,0.06386 +B,10.96,17.62,70.79,365.6,0.09687,0.09752000000000001,0.052629999999999996,0.027880000000000002,0.1619,0.06408,0.1507,1.5830000000000002,1.165,10.09,0.009501,0.033780000000000004,0.04401,0.01346,0.013219999999999999,0.0035340000000000002,11.62,26.51,76.43,407.5,0.1428,0.251,0.2123,0.09861,0.2289,0.08277999999999999 +M,20.55,20.86,137.8,1308.0,0.1046,0.1739,0.2085,0.1322,0.2127,0.06251,0.6986,0.9901,4.706,87.78,0.0045780000000000005,0.026160000000000003,0.04005,0.014209999999999999,0.01948,0.002689,24.3,25.48,160.2,1809.0,0.1268,0.3135,0.4433,0.2148,0.3077,0.07569 +M,14.27,22.55,93.77,629.8,0.1038,0.1154,0.1463,0.06139,0.1926,0.059820000000000005,0.2027,1.851,1.895,18.54,0.006113,0.025830000000000002,0.04645,0.012759999999999999,0.014509999999999999,0.0037560000000000002,15.29,34.27,104.3,728.3,0.138,0.2733,0.4234,0.1362,0.2698,0.08351 +B,11.69,24.44,76.37,406.4,0.1236,0.1552,0.04515,0.04531,0.2131,0.07405,0.2957,1.9780000000000002,2.158,20.95,0.01288,0.03495,0.01865,0.01766,0.0156,0.005824,12.98,32.19,86.12,487.7,0.1768,0.3251,0.1395,0.1308,0.2803,0.0997 +B,7.729,25.49,47.98,178.8,0.08098,0.048780000000000004,0.0,0.0,0.187,0.07285,0.3777,1.462,2.492,19.14,0.01266,0.009692000000000001,0.0,0.0,0.02882,0.006872,9.077,30.92,57.17,248.0,0.1256,0.0834,0.0,0.0,0.3058,0.09938 +B,7.691,25.44,48.34,170.4,0.08668,0.1199,0.09252,0.013640000000000001,0.2037,0.07751,0.2196,1.479,1.445,11.73,0.01547,0.06457,0.09252,0.013640000000000001,0.02105,0.007551,8.677999999999999,31.89,54.49,223.6,0.1596,0.3064,0.3393,0.05,0.27899999999999997,0.1066 +B,11.54,14.44,74.65,402.9,0.09984,0.11199999999999999,0.06737,0.025939999999999998,0.1818,0.06782,0.2784,1.768,1.6280000000000001,20.86,0.01215,0.04112,0.055529999999999996,0.01494,0.0184,0.0055119999999999995,12.26,19.68,78.78,457.8,0.1345,0.2118,0.1797,0.06917999999999999,0.2329,0.08134 +B,14.47,24.99,95.81,656.4,0.08837,0.12300000000000001,0.1009,0.0389,0.1872,0.06341000000000001,0.2542,1.079,2.615,23.11,0.007137999999999999,0.04653,0.03829,0.01162,0.02068,0.006111,16.22,31.73,113.5,808.9,0.134,0.4202,0.40399999999999997,0.1205,0.3187,0.1023 +B,14.74,25.42,94.7,668.6,0.08275,0.07214,0.04105,0.03027,0.184,0.0568,0.3031,1.385,2.177,27.41,0.004775,0.01172,0.019469999999999998,0.01269,0.0187,0.0026260000000000003,16.51,32.29,107.4,826.4,0.106,0.1376,0.1611,0.1095,0.2722,0.06956 +B,13.21,28.06,84.88,538.4,0.08671,0.06877,0.029869999999999997,0.03275,0.1628,0.05781,0.2351,1.597,1.5390000000000001,17.85,0.004973,0.01372,0.014980000000000002,0.009117,0.017240000000000002,0.001343,14.37,37.17,92.48,629.6,0.1072,0.1381,0.1062,0.07958,0.2473,0.06443 +B,13.87,20.7,89.77,584.8,0.09577999999999999,0.1018,0.03688,0.02369,0.162,0.06688,0.272,1.047,2.076,23.12,0.006298,0.02172,0.02615,0.009061,0.0149,0.003599,15.05,24.75,99.17,688.6,0.1264,0.2037,0.1377,0.06845,0.2249,0.08492000000000001 +B,13.62,23.23,87.19,573.2,0.09246,0.06747,0.02974,0.02443,0.1664,0.05801,0.34600000000000003,1.3359999999999999,2.066,31.24,0.005868,0.02099,0.02021,0.009064000000000001,0.02087,0.002583,15.35,29.09,97.58,729.8,0.1216,0.1517,0.1049,0.07174,0.2642,0.06953 +B,10.32,16.35,65.31,324.9,0.09434,0.04994,0.01012,0.005495,0.1885,0.06201,0.2104,0.9670000000000001,1.3559999999999999,12.97,0.007086,0.007247,0.01012,0.005495,0.0156,0.002606,11.25,21.77,71.12,384.9,0.1285,0.08842,0.04384,0.023809999999999998,0.2681,0.07399 +B,10.26,16.58,65.85,320.8,0.08877,0.08066,0.04358,0.024380000000000002,0.1669,0.06713999999999999,0.1144,1.023,0.9887,7.3260000000000005,0.01027,0.03084,0.02613,0.01097,0.02277,0.00589,10.83,22.04,71.08,357.4,0.1461,0.2246,0.1783,0.08333,0.2691,0.09479 +B,9.683,19.34,61.05,285.7,0.08491,0.0503,0.02337,0.009615,0.158,0.06235,0.2957,1.3630000000000002,2.0540000000000003,18.24,0.00744,0.01123,0.02337,0.009615,0.02203,0.004154,10.93,25.59,69.1,364.2,0.1199,0.09546,0.0935,0.03846,0.2552,0.0792 +B,10.82,24.21,68.89,361.6,0.08192,0.06602000000000001,0.01548,0.008159999999999999,0.1976,0.06327999999999999,0.5196,1.9180000000000001,3.5639999999999996,33.0,0.008263,0.0187,0.01277,0.005917,0.024659999999999998,0.002977,13.03,31.45,83.9,505.6,0.1204,0.1633,0.061939999999999995,0.032639999999999995,0.3059,0.07626000000000001 +B,10.86,21.48,68.51,360.5,0.07431,0.04227,0.0,0.0,0.1661,0.05948,0.3163,1.304,2.115,20.67,0.009579,0.011040000000000001,0.0,0.0,0.030039999999999997,0.002228,11.66,24.77,74.08,412.3,0.1001,0.07347999999999999,0.0,0.0,0.2458,0.06592 +B,11.13,22.44,71.49,378.4,0.09566000000000001,0.08194,0.04824,0.02257,0.203,0.06552000000000001,0.28,1.4669999999999999,1.994,17.85,0.0034950000000000003,0.030510000000000002,0.03445,0.01024,0.02912,0.004723,12.02,28.26,77.8,436.6,0.1087,0.1782,0.1564,0.06412999999999999,0.3169,0.08032 +B,12.77,29.43,81.35,507.9,0.08276,0.042339999999999996,0.019969999999999998,0.01499,0.1539,0.05637,0.2409,1.367,1.4769999999999999,18.76,0.008834999999999999,0.012329999999999999,0.013280000000000002,0.009304999999999999,0.018969999999999997,0.001726,13.87,36.0,88.1,594.7,0.1234,0.1064,0.08653,0.06498,0.2407,0.06484 +B,9.333,21.94,59.01,264.0,0.0924,0.05605,0.03996,0.012819999999999998,0.1692,0.06576,0.3013,1.879,2.121,17.86,0.01094,0.018340000000000002,0.03996,0.012819999999999998,0.03759,0.0046229999999999995,9.845,25.05,62.86,295.8,0.1103,0.08298,0.07993,0.025639999999999996,0.2435,0.07393 +B,12.88,28.92,82.5,514.3,0.08123,0.05824,0.06195,0.02343,0.1566,0.05708,0.2116,1.36,1.5019999999999998,16.83,0.008412000000000001,0.02153,0.03898,0.00762,0.01695,0.002801,13.89,35.74,88.84,595.7,0.1227,0.162,0.2439,0.06493,0.2372,0.07242 +B,10.29,27.61,65.67,321.4,0.0903,0.07658,0.059989999999999995,0.02738,0.1593,0.061270000000000005,0.2199,2.239,1.4369999999999998,14.46,0.01205,0.027360000000000002,0.04804,0.01721,0.018430000000000002,0.0049380000000000005,10.84,34.91,69.57,357.6,0.1384,0.171,0.2,0.09127,0.2226,0.08283 +B,10.16,19.59,64.73,311.7,0.1003,0.07504,0.005025,0.01116,0.1791,0.06331,0.2441,2.09,1.6480000000000001,16.8,0.01291,0.02222,0.004174000000000001,0.007081999999999999,0.02572,0.002278,10.65,22.88,67.88,347.3,0.1265,0.12,0.01005,0.02232,0.2262,0.06742000000000001 +B,9.423,27.88,59.26,271.3,0.08123,0.049710000000000004,0.0,0.0,0.1742,0.06059,0.5375,2.927,3.6180000000000003,29.11,0.011590000000000001,0.01124,0.0,0.0,0.030039999999999997,0.003324,10.49,34.24,66.5,330.6,0.1073,0.07157999999999999,0.0,0.0,0.2475,0.06969 +B,14.59,22.68,96.39,657.1,0.08473,0.133,0.1029,0.037360000000000004,0.1454,0.061470000000000004,0.2254,1.1079999999999999,2.224,19.54,0.004242,0.04639,0.06577999999999999,0.016059999999999998,0.016380000000000002,0.004406,15.48,27.27,105.9,733.5,0.1026,0.3171,0.3662,0.1105,0.2258,0.08004 +B,11.51,23.93,74.52,403.5,0.09261,0.1021,0.1112,0.04105,0.1388,0.0657,0.2388,2.904,1.936,16.97,0.0082,0.02982,0.057379999999999994,0.01267,0.01488,0.004738,12.48,37.16,82.28,474.2,0.1298,0.2517,0.363,0.09652999999999999,0.2112,0.08732000000000001 +B,14.05,27.15,91.38,600.4,0.09929,0.1126,0.04462,0.043039999999999995,0.1537,0.06171,0.3645,1.492,2.888,29.84,0.007256,0.02678,0.02071,0.01626,0.0208,0.005304,15.3,33.17,100.2,706.7,0.1241,0.2264,0.1326,0.1048,0.225,0.08321 +B,11.2,29.37,70.67,386.0,0.07449,0.03558,0.0,0.0,0.106,0.055020000000000006,0.3141,3.8960000000000004,2.041,22.81,0.007594,0.008878,0.0,0.0,0.01989,0.001773,11.92,38.3,75.19,439.6,0.09267,0.054939999999999996,0.0,0.0,0.1566,0.05905 +M,15.22,30.62,103.4,716.9,0.1048,0.2087,0.255,0.09429,0.2128,0.07152,0.2602,1.205,2.362,22.65,0.004625,0.04844,0.07359,0.01608,0.02137,0.006142,17.52,42.79,128.7,915.0,0.1417,0.7917,1.17,0.2356,0.4089,0.1409 +M,20.92,25.09,143.0,1347.0,0.1099,0.2236,0.3174,0.1474,0.2149,0.06879,0.9622,1.026,8.758,118.8,0.006399,0.0431,0.07845,0.02624,0.020569999999999998,0.006213000000000001,24.29,29.41,179.1,1819.0,0.1407,0.4186,0.6599,0.2542,0.2929,0.09873 +M,21.56,22.39,142.0,1479.0,0.111,0.1159,0.2439,0.1389,0.1726,0.056229999999999995,1.176,1.256,7.672999999999999,158.7,0.0103,0.02891,0.05198,0.02454,0.01114,0.004239,25.45,26.4,166.1,2027.0,0.141,0.2113,0.4107,0.2216,0.20600000000000002,0.07115 +M,20.13,28.25,131.2,1261.0,0.0978,0.1034,0.14400000000000002,0.09791,0.1752,0.05533,0.7655,2.463,5.202999999999999,99.04,0.005769,0.02423,0.0395,0.01678,0.01898,0.0024980000000000002,23.69,38.25,155.0,1731.0,0.1166,0.1922,0.3215,0.1628,0.2572,0.06637 +M,16.6,28.08,108.3,858.1,0.08455,0.1023,0.09251000000000001,0.053020000000000005,0.159,0.056479999999999995,0.4564,1.075,3.425,48.55,0.005903,0.03731,0.0473,0.015569999999999999,0.01318,0.003892,18.98,34.12,126.7,1124.0,0.1139,0.3094,0.3403,0.1418,0.2218,0.0782 +M,20.6,29.33,140.1,1265.0,0.1178,0.27699999999999997,0.3514,0.152,0.2397,0.07016,0.726,1.595,5.772,86.22,0.006522,0.061579999999999996,0.07117000000000001,0.016640000000000002,0.02324,0.006185,25.74,39.42,184.6,1821.0,0.165,0.8681,0.9387,0.265,0.4087,0.124 +B,7.76,24.54,47.92,181.0,0.052629999999999996,0.04362,0.0,0.0,0.1587,0.058839999999999996,0.3857,1.4280000000000002,2.548,19.15,0.007189,0.00466,0.0,0.0,0.026760000000000003,0.002783,9.456,30.37,59.16,268.6,0.08996,0.06444,0.0,0.0,0.2871,0.07039 diff --git a/Algorithms/Sorting/BitonicSort.cpp b/Algorithms/Sorting/BitonicSort.cpp new file mode 100644 index 00000000..f99a8c82 --- /dev/null +++ b/Algorithms/Sorting/BitonicSort.cpp @@ -0,0 +1,72 @@ +/* C++ Program for Bitonic Sort. Note that this program +works only when size of input is a power of 2. */ +#include +using namespace std; + +/*The parameter dir indicates the sorting direction, ASCENDING +or DESCENDING; if (a[i] > a[j]) agrees with the direction, +then a[i] and a[j] are interchanged.*/ +void compAndSwap(int a[], int i, int j, int dir) +{ + if (dir==(a[i]>a[j])) + swap(a[i],a[j]); +} + +/*It recursively sorts a bitonic sequence in ascending order, +if dir = 1, and in descending order otherwise (means dir=0). +The sequence to be sorted starts at index position low, +the parameter cnt is the number of elements to be sorted.*/ +void bitonicMerge(int a[], int low, int cnt, int dir) +{ + if (cnt>1) + { + int k = cnt/2; + for (int i=low; i1) + { + int k = cnt/2; + + // sort in ascending order since dir here is 1 + bitonicSort(a, low, k, 1); + + // sort in descending order since dir here is 0 + bitonicSort(a, low+k, k, 0); + + // Will merge wole sequence in ascending order + // since dir=1. + bitonicMerge(a,low, cnt, dir); + } +} + +/* Caller of bitonicSort for sorting the entire array of +length N in ASCENDING order */ +void sort(int a[], int N, int up) +{ + bitonicSort(a,0, N, up); +} + +// Driver code +int main() +{ + int a[]= {3, 7, 4, 8, 6, 2, 1, 5}; + int N = sizeof(a)/sizeof(a[0]); + + int up = 1; // means sort in ascending order + sort(a, N, up); + + printf("Sorted array: \n"); + for (int i=0; i +using namespace std; +void generateArray(int a[], int n){ + int i; + for(i = 0; i < n; i++){ + a[i] = rand() % 100; + } +} +void sSort(int a[], int n){ + int i, j, temp, loc, min; + for(i=0;ia[j]) + { + min=a[j]; + loc=j; + } + } + + temp=a[i]; + a[i]=a[loc]; + a[loc]=temp; + } +} +int main() +{ + int i, n, a[100]; + cin>>n; + generateArray(a, n); + cout<<"Original Array: "; + for(i = 0; i < n; i++){ + cout< +using namespace std; + +// To find gap between elements +int getNextGap(int gap) +{ + // Shrink gap by Shrink factor + gap = (gap*10)/13; + + if (gap < 1) + return 1; + return gap; +} + +// Function to sort a[0..n-1] using Comb Sort +void combSort(int a[], int n) +{ + // Initialize gap + int gap = n; + + // Initialize swapped as true to make sure that loop runs + bool swapped = true; + + // Keep running while gap is more than 1 and last iteration caused a swap + while (gap != 1 || swapped == true) + { + // Find next gap + gap = getNextGap(gap); + + // Initialize swapped as false so that we can check if swap happened or not + swapped = false; + + // Compare all elements with current gap + for (int i=0; i a[i+gap]) + { + swap(a[i], a[i+gap]); + swapped = true; + } + } + } +} + +int main() +{ + int a[] = {8, 4, 1, 56, 3, -44, 23, -6, 28, 0}; + int n = sizeof(a)/sizeof(a[0]); + + combSort(a, n); + + printf("Sorted array: \n"); + for (int i=0; i +using namespace std; + +// To find gap between elements +int getNextGap(int gap) +{ + // Shrink gap by Shrink factor + gap = (gap*10)/13; + + if (gap < 1) + return 1; + return gap; +} + +// Function to sort a[0..n-1] using Comb Sort +void combSort(int a[], int n) +{ + // Initialize gap + int gap = n; + + // Initialize swapped as true to make sure that loop runs + bool swapped = true; + + // Keep running while gap is more than 1 and last iteration caused a swap + while (gap != 1 || swapped == true) + { + // Find next gap + gap = getNextGap(gap); + + // Initialize swapped as false so that we can check if swap happened or not + swapped = false; + + // Compare all elements with current gap + for (int i=0; i a[i+gap]) + { + swap(a[i], a[i+gap]); + swapped = true; + } + } + } +} + +int main() +{ + int a[] = {8, 4, 1, 56, 3, -44, 23, -6, 28, 0}; + int n = sizeof(a)/sizeof(a[0]); + + combSort(a, n); + + printf("Sorted array: \n"); + for (int i=0; i +using namespace std; + +// To find gap between elements +int getNextGap(int gap) +{ + // Shrink gap by Shrink factor + gap = (gap*10)/13; + + if (gap < 1) + return 1; + return gap; +} + +// Function to sort a[0..n-1] using Comb Sort +void combSort(int a[], int n) +{ + // Initialize gap + int gap = n; + + // Initialize swapped as true to make sure that loop runs + bool swapped = true; + + // Keep running while gap is more than 1 and last iteration caused a swap + while (gap != 1 || swapped == true) + { + // Find next gap + gap = getNextGap(gap); + + // Initialize swapped as false so that we can check if swap happened or not + swapped = false; + + // Compare all elements with current gap + for (int i=0; i a[i+gap]) + { + swap(a[i], a[i+gap]); + swapped = true; + } + } + } +} + +int main() +{ + int a[] = {8, 4, 1, 56, 3, -44, 23, -6, 28, 0}; + int n = sizeof(a)/sizeof(a[0]); + + combSort(a, n); + + printf("Sorted array: \n"); + for (int i=0; i +using namespace std; + +// To find gap between elements +int getNextGap(int gap) +{ + // Shrink gap by Shrink factor + gap = (gap*10)/13; + + if (gap < 1) + return 1; + return gap; +} + +// Function to sort a[0..n-1] using Comb Sort +void combSort(int a[], int n) +{ + // Initialize gap + int gap = n; + + // Initialize swapped as true to make sure that loop runs + bool swapped = true; + + // Keep running while gap is more than 1 and last iteration caused a swap + while (gap != 1 || swapped == true) + { + // Find next gap + gap = getNextGap(gap); + + // Initialize swapped as false so that we can check if swap happened or not + swapped = false; + + // Compare all elements with current gap + for (int i=0; i a[i+gap]) + { + swap(a[i], a[i+gap]); + swapped = true; + } + } + } +} + +int main() +{ + int a[] = {8, 4, 1, 56, 3, -44, 23, -6, 28, 0}; + int n = sizeof(a)/sizeof(a[0]); + + combSort(a, n); + + printf("Sorted array: \n"); + for (int i=0; i +#include +using namespace std; +#define RANGE 255 + + +void countSort(char arr[]) +{ + + char output[strlen(arr)]; + + int count[RANGE + 1], i; + memset(count, 0, sizeof(count)); + + for(i = 0; arr[i]; ++i) + ++count[arr[i]]; + + for (i = 1; i <= RANGE; ++i) + count[i] += count[i-1]; + + for (i = 0; arr[i]; ++i) + { + output[count[arr[i]]-1] = arr[i]; + --count[arr[i]]; + } + + for (i = 0; arr[i]; ++i) + arr[i] = output[i]; +} +int main() +{ + char arr[] = "geeksforgeeks"; + + countSort(arr); + + cout<< arr; + return 0; +} + diff --git a/Algorithms/Sorting/heapSort.cpp b/Algorithms/Sorting/heapSort.cpp new file mode 100644 index 00000000..a1d0cf7a --- /dev/null +++ b/Algorithms/Sorting/heapSort.cpp @@ -0,0 +1,99 @@ + +// max heap inplementation using arrays without using dynamic resizing. + +// best case = worst case = avg case = o(nlogn); + +#include + +#define maxsize 100 + +using namespace std; + +// helper methods + +void swap(int *a, int *b){ + + int temp = *a; + *a = *b; + *b = temp; + +} + +// function to max_heapify the given array +void max_heapify(int a[], int n, int i){ + + int max = i; + int l = 2 * i + 1; + int r = 2 * i + 2; + + if(l < n && a[l] > a[max]){ + max = l; + } + if(r < n && a[r] > a[max]){ + max = r; + } + + if(max != i){ + swap(&a[i], &a[max]); + max_heapify(a, n, max); + } + + +} + + +// delete min element and return it + +int heapSort(int a[], int n){ + + for (int i = n/2 - 1; i >= 0; i--){ + + max_heapify(a, n, i); + + } + + for (int i = n - 1; i >= 0; i--){ + + swap(&a[0], &a[i]); + + max_heapify(a, i, 0); + + } + + + for (int i = 0; i < n; i++){ + + cout << a[i] << endl; + + } + +} + +int main(){ + + int n, el; + + cout << "Enter the size of the array: " << endl; + cin >> n; + + int a[n]; + + cout << "Enter the elements" << endl; + + for (int i = 0; i < n; i++) { + + cin >> a[i]; + + } + + cout << endl; + + // heapsort + + cout << "The sorted elements are: " << endl; + + heapSort(a, n); + + return 0; + +} \ No newline at end of file diff --git a/Algorithms/Sorting/quick_sort.py b/Algorithms/Sorting/quick_sort.py new file mode 100644 index 00000000..057d6f86 --- /dev/null +++ b/Algorithms/Sorting/quick_sort.py @@ -0,0 +1,55 @@ + +# quicksort is a non stable sorting algorithm +# quicksort : average and best: o(nlogn). worst: o(n*n) when array is already sorted. +# reasons why quicksort is better that merge sort in some cases: +# 1) its space complexity is better than merge sort since its space complexity is o(1) [considering stack space for recusrion worst case +# is o(n), average is o(logn)] +# 2) if a randomized version of quicksort is used, the worst case can be avoided by choosing random pivot +# 3) quicksort has better cache locality, i.e, better locality of reference. + +import random + +def partition(a, l, h): + + i = l + pivot = a[h] + for j in range(l, h): + if(a[j] <= pivot): + a[i], a[j] = a[j], a[i] + i += 1 + + a[i], a[h] = a[h], a[i] + return i + +# random partition function. generates a random number +# between high and low and swaps the last element with the randomly generated index +# eliminates the worst case for quick sort. since partitions are random, worst case (already sorted array) wont take O(n*n). +def random_partition(a, l, h): + + rand_index = random.randint(l, h) + a[rand_index], a[h] = a[h], a[rand_index] + return partition(a, l, h) + + +# main quicksort function +def quicksort(a, l, h): + + if(l < h): + + pivot = random_partition(a, l, h) + + quicksort(a, pivot + 1, h) + quicksort(a, l, pivot - 1) + + +# driver function +if __name__ == '__main__': + + size = int(input('enter the size: ')) + + a = list(map(int, input().split())) + + quicksort(a, 0, size - 1) + + print(a) + diff --git a/Algorithms/Sorting/radixs_sort.cpp b/Algorithms/Sorting/radixs_sort.cpp new file mode 100644 index 00000000..cad047e5 --- /dev/null +++ b/Algorithms/Sorting/radixs_sort.cpp @@ -0,0 +1,74 @@ +// C++ implementation of Radix Sort +#include +using namespace std; + +// A utility function to get maximum value in arr[] +int getMax(int arr[], int n) +{ + int mx = arr[0]; + for (int i = 1; i < n; i++) + if (arr[i] > mx) + mx = arr[i]; + return mx; +} + +// A function to do counting sort of arr[] according to +// the digit represented by exp. +void countSort(int arr[], int n, int exp) +{ + int output[n]; // output array + int i, count[10] = {0}; + + // Store count of occurrences in count[] + for (i = 0; i < n; i++) + count[ (arr[i]/exp)%10 ]++; + + // Change count[i] so that count[i] now contains actual + // position of this digit in output[] + for (i = 1; i < 10; i++) + count[i] += count[i - 1]; + + // Build the output array + for (i = n - 1; i >= 0; i--) + { + output[count[ (arr[i]/exp)%10 ] - 1] = arr[i]; + count[ (arr[i]/exp)%10 ]--; + } + + // Copy the output array to arr[], so that arr[] now + // contains sorted numbers according to current digit + for (i = 0; i < n; i++) + arr[i] = output[i]; +} + +// The main function to that sorts arr[] of size n using +// Radix Sort +void radixsort(int arr[], int n) +{ + // Find the maximum number to know number of digits + int m = getMax(arr, n); + + // Do counting sort for every digit. Note that instead + // of passing digit number, exp is passed. exp is 10^i + // where i is current digit number + for (int exp = 1; m/exp > 0; exp *= 10) + countSort(arr, n, exp); +} + +// A utility function to print an array +void print(int arr[], int n) +{ + for (int i = 0; i < n; i++) + cout << arr[i] << " "; +} + +// Driver program to test above functions +int main() +{ + int arr[] = {170, 45, 75, 90, 802, 24, 2, 66}; + int n = sizeof(arr)/sizeof(arr[0]); + radixsort(arr, n); + print(arr, n); + return 0; +} + diff --git a/Algorithms/Sorting/timsort.cpp b/Algorithms/Sorting/timsort.cpp new file mode 100644 index 00000000..31b56df2 --- /dev/null +++ b/Algorithms/Sorting/timsort.cpp @@ -0,0 +1,124 @@ +// C++ program to perform TimSort. +#include +using namespace std; +const int RUN = 32; + +// this function sorts array from left index to +// to right index which is of size atmost RUN +void insertionSort(int arr[], int left, int right) +{ + for (int i = left + 1; i <= right; i++) + { + int temp = arr[i]; + int j = i - 1; + while (arr[j] > temp && j >= left) + { + arr[j+1] = arr[j]; + j--; + } + arr[j+1] = temp; + } +} + +// merge function merges the sorted runs +void merge(int arr[], int l, int m, int r) +{ + // original array is broken in two parts + // left and right array + int len1 = m - l + 1, len2 = r - m; + int left[len1], right[len2]; + for (int i = 0; i < len1; i++) + left[i] = arr[l + i]; + for (int i = 0; i < len2; i++) + right[i] = arr[m + 1 + i]; + + int i = 0; + int j = 0; + int k = l; + + // after comparing, we merge those two array + // in larger sub array + while (i < len1 && j < len2) + { + if (left[i] <= right[j]) + { + arr[k] = left[i]; + i++; + } + else + { + arr[k] = right[j]; + j++; + } + k++; + } + + // copy remaining elements of left, if any + while (i < len1) + { + arr[k] = left[i]; + k++; + i++; + } + + // copy remaining element of right, if any + while (j < len2) + { + arr[k] = right[j]; + k++; + j++; + } +} + +// iterative Timsort function to sort the +// array[0...n-1] (similar to merge sort) +void timSort(int arr[], int n) +{ + // Sort individual subarrays of size RUN + for (int i = 0; i < n; i+=RUN) + insertionSort(arr, i, min((i+31), (n-1))); + + // start merging from size RUN (or 32). It will merge + // to form size 64, then 128, 256 and so on .... + for (int size = RUN; size < n; size = 2*size) + { + // pick starting point of left sub array. We + // are going to merge arr[left..left+size-1] + // and arr[left+size, left+2*size-1] + // After every merge, we increase left by 2*size + for (int left = 0; left < n; left += 2*size) + { + // find ending point of left sub array + // mid+1 is starting point of right sub array + int mid = left + size - 1; + int right = min((left + 2*size - 1), (n-1)); + + // merge sub array arr[left.....mid] & + // arr[mid+1....right] + merge(arr, left, mid, right); + } + } +} + +// utility function to print the Array +void printArray(int arr[], int n) +{ + for (int i = 0; i < n; i++) + printf("%d ", arr[i]); + printf("\n"); +} + +// Driver program to test above function +int main() +{ + int arr[] = {5, 21, 7, 23, 19}; + int n = sizeof(arr)/sizeof(arr[0]); + printf("Given Array is\n"); + printArray(arr, n); + + timSort(arr, n); + + printf("After Sorting Array is\n"); + printArray(arr, n); + return 0; +} diff --git a/Algorithms/Sorting/topologicalSort.cpp b/Algorithms/Sorting/topologicalSort.cpp new file mode 100644 index 00000000..8da42674 --- /dev/null +++ b/Algorithms/Sorting/topologicalSort.cpp @@ -0,0 +1,97 @@ +// A C++ program to print topological sorting of a DAG +#include +#include +#include +using namespace std; + +// Class to represent a graph +class Graph +{ + int V; // No. of vertices' + + // Pointer to an array containing adjacency listsList + list *adj; + + // A function used by topologicalSort + void topologicalSortUtil(int v, bool visited[], stack &Stack); +public: + Graph(int V); // Constructor + + // function to add an edge to graph + void addEdge(int v, int w); + + // prints a Topological Sort of the complete graph + void topologicalSort(); +}; + +Graph::Graph(int V) +{ + this->V = V; + adj = new list[V]; +} + +void Graph::addEdge(int v, int w) +{ + adj[v].push_back(w); // Add w to v’s list. +} + +// A recursive function used by topologicalSort +void Graph::topologicalSortUtil(int v, bool visited[], + stack &Stack) +{ + // Mark the current node as visited. + visited[v] = true; + + // Recur for all the vertices adjacent to this vertex + list::iterator i; + for (i = adj[v].begin(); i != adj[v].end(); ++i) + if (!visited[*i]) + topologicalSortUtil(*i, visited, Stack); + + // Push current vertex to stack which stores result + Stack.push(v); +} + +// The function to do Topological Sort. It uses recursive +// topologicalSortUtil() +void Graph::topologicalSort() +{ + stack Stack; + + // Mark all the vertices as not visited + bool *visited = new bool[V]; + for (int i = 0; i < V; i++) + visited[i] = false; + + // Call the recursive helper function to store Topological + // Sort starting from all vertices one by one + for (int i = 0; i < V; i++) + if (visited[i] == false) + topologicalSortUtil(i, visited, Stack); + + // Print contents of stack + while (Stack.empty() == false) + { + cout << Stack.top() << " "; + Stack.pop(); + } +} + +// Driver program to test above functions +int main() +{ + // Create a graph given in the above diagram + Graph g(6); + g.addEdge(5, 2); + g.addEdge(5, 0); + g.addEdge(4, 0); + g.addEdge(4, 1); + g.addEdge(2, 3); + g.addEdge(3, 1); + + cout << "Following is a Topological Sort of the given graph \n"; + g.topologicalSort(); + + return 0; +} +//contributed by Sundaram Dubey diff --git a/Algorithms/String Manipulation/partialpalindrome.c b/Algorithms/String Manipulation/partialpalindrome.c new file mode 100644 index 00000000..93c0a80d --- /dev/null +++ b/Algorithms/String Manipulation/partialpalindrome.c @@ -0,0 +1,26 @@ +#include +#include + +int isPalindrome(char *str, int len){ + for(int i = 0; i <= len - 1 - i; i++) + if(str[i] != str[len - 1 - i]) + return 0; + return 1; +} + +int makePalindrome(char* str, int len, int pad){ + if(!isPalindrome(str + pad, len - pad)) + return 0; + printf("%d\n%s", pad, str); + for(int i = pad - 1; i >= 0; i--) + printf("%c", str[i]); + return 1; +} + +int main(){ + char str[100]; + gets(str); + int len = strlen(str), padding = 0; + while(!makePalindrome(str, len, padding++)); + return 0; +} diff --git a/Competitions/AtCoder/AtCoder Beginner Contest 043/Be Together.cpp b/AtCoder/AtCoder Beginner Contest 043/Be Together.cpp similarity index 100% rename from Competitions/AtCoder/AtCoder Beginner Contest 043/Be Together.cpp rename to AtCoder/AtCoder Beginner Contest 043/Be Together.cpp diff --git a/Competitions/AtCoder/AtCoder Beginner Contest 043/Children and Candies.cpp b/AtCoder/AtCoder Beginner Contest 043/Children and Candies.cpp similarity index 100% rename from Competitions/AtCoder/AtCoder Beginner Contest 043/Children and Candies.cpp rename to AtCoder/AtCoder Beginner Contest 043/Children and Candies.cpp diff --git a/Competitions/AtCoder/AtCoder Beginner Contest 043/Unhappy Hacking.cpp b/AtCoder/AtCoder Beginner Contest 043/Unhappy Hacking.cpp similarity index 100% rename from Competitions/AtCoder/AtCoder Beginner Contest 043/Unhappy Hacking.cpp rename to AtCoder/AtCoder Beginner Contest 043/Unhappy Hacking.cpp diff --git a/BFE.dev/1. implement curry().js b/BFE.dev/1. implement curry().js new file mode 100644 index 00000000..ff7003cc --- /dev/null +++ b/BFE.dev/1. implement curry().js @@ -0,0 +1,13 @@ +/** + * @param { (...args: any[]) => any } fn + * @returns { (...args: any[]) => any } + */ +function curry(fn) { + return function curried(...args) { + if (args.length >= fn.length) { + return fn(...args); + } + + return (...rest) => curried(...args, ...rest); + }; +} diff --git a/Competitions/Codechef/COOK85/OBTTRNGL.py b/BFE.dev/10. first bad version.js similarity index 100% rename from Competitions/Codechef/COOK85/OBTTRNGL.py rename to BFE.dev/10. first bad version.js diff --git a/BFE.dev/2. implement curry() with placeholder support.js b/BFE.dev/2. implement curry() with placeholder support.js new file mode 100644 index 00000000..0f8313e4 --- /dev/null +++ b/BFE.dev/2. implement curry() with placeholder support.js @@ -0,0 +1,19 @@ +/** + * @param { (...args: any[]) => any } fn + * @returns { (...args: any[]) => any } + */ +function curry(fn) { + return function curried(...args) { + const filteredArgs = args.slice(0, fn.length).filter(item => item !== curry.placeholder); + if (filteredArgs.length >= fn.length) { + return fn(...filteredArgs); + } + + return (...rest) => { + const updatedArgs = args.map(item => (item === curry.placeholder && rest.length ? rest.shift() : item)); + return curried(...updatedArgs, ...rest); + }; + }; +} + +curry.placeholder = Symbol(); diff --git a/BFE.dev/3. implement Array.prototype.flat().js b/BFE.dev/3. implement Array.prototype.flat().js new file mode 100644 index 00000000..e31413a7 --- /dev/null +++ b/BFE.dev/3. implement Array.prototype.flat().js @@ -0,0 +1,13 @@ +/** + * @param { Array } arr + * @param { number } depth + * @returns { Array } + */ +function flat(arr, depth = 1) { + return arr.reduce((acc, item) => { + if (depth && Array.isArray(item)) { + return [...acc, ...flat(item, depth - 1)]; + } + return [...acc, item]; + }, []); +} diff --git a/BFE.dev/4. implement basic throttle().js b/BFE.dev/4. implement basic throttle().js new file mode 100644 index 00000000..ebb0b029 --- /dev/null +++ b/BFE.dev/4. implement basic throttle().js @@ -0,0 +1,27 @@ +/** + * @param {Function} func + * @param {number} wait + */ +function throttle(func, wait) { + let waiting; + let params; + + function callback() { + if (params) { + func(...params); + params = null; + } + } + + return function (...args) { + params = args; + if (!waiting) { + callback(); + } + + waiting = setTimeout(() => { + waiting = null; + callback(); + }, wait); + }; +} diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 1/sample-output.out b/BFE.dev/5. implement throttle() with leading & trailing option.js similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 1/sample-output.out rename to BFE.dev/5. implement throttle() with leading & trailing option.js diff --git a/BFE.dev/6. implement basic debounce().js b/BFE.dev/6. implement basic debounce().js new file mode 100644 index 00000000..51e39f9f --- /dev/null +++ b/BFE.dev/6. implement basic debounce().js @@ -0,0 +1,14 @@ +/** + * @param {Function} func + * @param {number} wait + */ +function debounce(func, wait) { + let timer; + return function (...args) { + clearTimeout(timer); + timer = setTimeout(() => { + func(...args); + timer = null; + }, wait); + }; +} diff --git a/BFE.dev/7. implement debounce() with leading & trailing option.js b/BFE.dev/7. implement debounce() with leading & trailing option.js new file mode 100644 index 00000000..a9cf8cce --- /dev/null +++ b/BFE.dev/7. implement debounce() with leading & trailing option.js @@ -0,0 +1,24 @@ +/** + * @param {Function} func + * @param {number} wait + * @param {boolean} option.leading + * @param {boolean} option.trailing + */ +function debounce(func, wait, option = { leading: false, trailing: true }) { + let timer; + let lastArgs; + return function betterFunction(...args) { + lastArgs = args; + clearTimeout(timer); + if (option.leading && !timer && lastArgs) { + func(...lastArgs); + lastArgs = null; + } + timer = setTimeout(() => { + if (option.trailing && lastArgs) { + func(...lastArgs); + } + timer = null; + }, wait); + }; +} diff --git a/BFE.dev/8. can you shuffle() an array?.js b/BFE.dev/8. can you shuffle() an array?.js new file mode 100644 index 00000000..9ccc9ff8 --- /dev/null +++ b/BFE.dev/8. can you shuffle() an array?.js @@ -0,0 +1,9 @@ +/** + * @param {any[]} arr + */ +function shuffle(arr) { + for (let i = 0; i < arr.length; i++) { + const j = i + Math.floor(Math.random() * (arr.length - i)); + [arr[i], arr[j]] = [arr[j], arr[i]]; + } +} diff --git a/BFE.dev/9. decode message.js b/BFE.dev/9. decode message.js new file mode 100644 index 00000000..95c8ce78 --- /dev/null +++ b/BFE.dev/9. decode message.js @@ -0,0 +1,22 @@ +/** + * @param {string[][]} message + * @return {string} + */ +function decode(message) { + let ans = ""; + let i = 0; + let j = 0; + let direction = 1; + while (j < message.length && i < message[0].length) { + ans += message[j][i]; + i++; + if (j === 0) { + direction = 1; + } + if (j + 1 === message.length) { + direction = -1; + } + j += direction; + } + return ans; +} diff --git a/Code Templates/00008.cpp b/Code Templates/00008.cpp new file mode 100644 index 00000000..7e90ae65 --- /dev/null +++ b/Code Templates/00008.cpp @@ -0,0 +1,52 @@ +#include +#include +#include + +using namespace std; + +bool findExistence(vectorv, long k); + +int main(){ + + long n; + cin>>n; + + vectorv; + long i,x; + + for(i=0;i>x; + v.push_back(x); + } + + long k; + cin>>k; + + bool exist = findExistence(v,k); + if(exist == true){ + cout<<"Exists"; + } + else{ + cout<<"Doesn't Exists"; + } + +} + +bool findExistence(vectorv, long k){ + sort(v.begin(),v.end()); + long n = v.size(); + long l,r; + l=0,r=n-1; + while(l using namespace std; -int main() -{ - return 0; -} + + +typedef long long ll; +typedef pair ii; +typedef vector vi; +typedef vector vii; +typedef vector vll; +typedef vector vc; +typedef long double ld; + +typedef set::iterator sit; +typedef map::iterator mit; +typedef vector::iterator vit; +typedef vector::iterator vllit; + +const int INF = 1e9 + 7; +const int MOD = 1e9 + 7; +const int MAXN = 1e6 + 3; + +#define _ % MOD +#define __ %= MOD + +#define each(it,s) for(vit it = s.begin(); it != s.end(); ++it) +#define sortA(v) sort(v.begin(), v.end()) +#define sortD(v) sort(v.begin(), v.end(), greater()) +#define fill(a) memset(a, 0, sizeof (a)) + +#define rep(i, n) for(int i = 0; i < (n); ++i) +#define repA(i, a, n) for(int i = a; i <= (n); ++i) +#define repD(i, a, n) for(int i = a; i >= (n); --i) +#define pq(x) priority_queue,compare> +#define rpq(x) priority_queue,compare> +#define fi first +#define se second +#define mp make_pair +#define pb push_back + +#define fbo find_by_order +#define ook order_of_key + +#define loop(i,start,end) for(auto i=(start=end;(start0) { + String s=sc.next(); + int[] zero=new int[s.length()]; + int[] ones=new int[s.length()]; + zero[s.length()-1]=s.length(); + if(s.charAt(s.length()-1)=='0') { + zero[s.length()-1]--; + } + for(int i=s.length()-2;i>=0;i--) { + zero[i]=zero[i+1]; + if(s.charAt(i)=='0') { + zero[i]=i; + } + } + if(zero[0]==s.length()) { + System.out.print("0\n"); + continue; + } + ones[s.length()-1]=s.length(); + if(s.charAt(s.length()-1)=='1') { + ones[s.length()-1]--; + } + for(int i=s.length()-2;i>=0;i--) { + ones[i]=ones[i+1]; + if(s.charAt(i)=='1') { + ones[i]=i; + } + } + int[] dp=new int[s.length()+1]; + int[] dp1=new int[s.length()+1]; + for(int i=s.length()-1;i>=0;i--) { + dp[i]=dp[i+1]; + dp1[i]=dp1[i+1]; + if(s.charAt(i)=='0'&&ones[i]=s.length()) { + res[resl++]=0; + continue; + } + if(zero[ind]>=s.length()) { + ind=zero[ind]+1; + res[resl++]=0; + continue; + } + if(dp[zero[ind]+1]0) { + long n=sc.nextLong(); + if(n<=4) { + if(n==1){ + System.out.print("20\n"); + } + if(n==2){ + System.out.print("36\n"); + } + if(n==3){ + System.out.print("51\n"); + } + if(n==4){ + System.out.print("60\n"); + } + } + else { + if(n%4==0){ + System.out.print( ( ( ((n-n%4)/4) *44) +16) +"\n"); + } + else if(n%4==1){ + System.out.print( ( ( ((n-n%4)/4) *44) +32) +"\n"); + } + else if(n%4==2){ + System.out.print( ( ( ((n-n%4)/4) *44) +44) +"\n"); + } + else if(n%4==3){ + System.out.print( ( ( ((n-n%4)/4) *44) +55) +"\n"); + } + } + } + } +} diff --git a/Codechef/APRIL21B/Destroy the EMP Chip.java b/Codechef/APRIL21B/Destroy the EMP Chip.java new file mode 100644 index 00000000..0c51a57c --- /dev/null +++ b/Codechef/APRIL21B/Destroy the EMP Chip.java @@ -0,0 +1,252 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +/* Name of the class has to be "Main" only if the class is public. */ +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main(String[] args) throws java.lang.Exception{ + FastReader sc=new FastReader(); + int t=sc.nextInt(),q=sc.nextInt(),d=sc.nextInt(); + while(t-->0) { + long xl=(long)-1e18-1,xr=-1*xl; + long yl=(long)-1e18-1,yr=-1*yl; + int type=1; + long xmid,ymid; + String s; + while(true) { + if(type==1) { + if(xr>=(xl+2)&&yr>=(yl+2)) { + xmid=(xl+xr)/2; + ymid=(yl+yr)/2; + System.out.print(type+" "+xmid+" "+ymid+"\n"); + s=sc.next(); + if(s.equals("O")|s.equals("FAILED")) { + break; + } + else if(s.equals("PY")) { + xr=xmid-1; + if(d==1){ + xr++; + xl--; + } + yl=ymid-1; + yr=ymid+1; + } + else if(s.equals("NY")) { + xl=xmid+1; + if(d==1) { + xl--; + xr++; + } + yl=ymid-1; + yr=ymid+1; + } + else if(s.equals("XP")) { + xl=xmid-1; + xr=xmid+1; + yr=ymid-1; + if(d==1) { + yr++; + yl--; + } + } + else if(s.equals("XN")) { + xl=xmid-1; + xr=xmid+1; + yl=ymid+1; + if(d==1) { + yl--; + yr++; + } + } + else if(s.equals("PP")) { + xr=xmid-1; + if(d==1){ + xr++; + xl--; + } + yr=ymid-1; + if(d==1) { + yr++; + yl--; + } + } + else if(s.equals("PN")) { + xr=xmid-1; + if(d==1){ + xr++; + xl--; + } + yl=ymid+1; + if(d==1) { + yl--; + yr++; + } + } + else if(s.equals("NP")) { + xl=xmid+1; + if(d==1) { + xl--; + xr++; + } + yr=ymid-1; + if(d==1) { + yr++; + yl--; + } + } + else if(s.equals("NN")) { + xl=xmid+1; + if(d==1) { + xl--; + xr++; + } + yl=ymid+1; + if(d==1) { + yl--; + yr++; + } + } + if(d==1) { + if(xr<=(xl+3)&&yr<=(yl+3)){ + type=2; + } + } + } + else { + type=2; + //System.out.print(type+" "+xl+" "+yl+" "+xr+" "+yr+"\n"); + //s=sc.next(); + //break; + } + } + else { + if(xr==(xl+3)&&yr==(yl+3)){ + System.out.print(type+" "+xl+" "+yl+" "+(xl+2)+" "+yr+"\n"); + s=sc.next(); + if(s.equals("O")|s.equals("FAILED")){ + break; + } + else if(s.equals("IN")){ + xr=xl+2; + } + else{ + xl=xl+2; + xr++; + } + } + if(xr==(xl+2)&&yr==(yl+3)){ + System.out.print(type+" "+xl+" "+yl+" "+xr+" "+(yl+2)+"\n"); + s=sc.next(); + if(s.equals("O")|s.equals("FAILED")){ + break; + } + else if(s.equals("IN")){ + System.out.print(type+" "+xl+" "+yl+" "+xr+" "+(yl+2)+"\n"); + s=sc.next(); + if(s.equals("O")|s.equals("FAILED")){ + break; + } + } + else{ + System.out.print(type+" "+xl+" "+(yl+2)+" "+xr+" "+(yl+4)+"\n"); + s=sc.next(); + if(s.equals("O")|s.equals("FAILED")){ + break; + } + } + //break; + } + if(xr==(xl+3)&&yr==(yl+2)){ + System.out.print(type+" "+xl+" "+yl+" "+(xl+2)+" "+yr+"\n"); + s=sc.next(); + if(s.equals("O")|s.equals("FAILED")){ + break; + } + else if(s.equals("IN")){ + System.out.print(type+" "+xl+" "+yl+" "+(xl+2)+" "+yr+"\n"); + s=sc.next(); + if(s.equals("O")|s.equals("FAILED")){ + break; + } + } + else{ + System.out.print(type+" "+(xl+2)+" "+yl+" "+(xl+4)+" "+yr+"\n"); + s=sc.next(); + if(s.equals("O")|s.equals("FAILED")){ + break; + } + } + //break; + } + else{ + System.out.print(type+" "+xl+" "+yl+" "+xr+" "+yr+"\n"); + s=sc.next(); + if(s.equals("O")|s.equals("FAILED")){ + break; + } + //break; + } + } + } + } + } +} diff --git a/Codechef/APRIL21B/Worthy Matrix.cpp b/Codechef/APRIL21B/Worthy Matrix.cpp new file mode 100644 index 00000000..886547d8 --- /dev/null +++ b/Codechef/APRIL21B/Worthy Matrix.cpp @@ -0,0 +1,49 @@ +#include +#include +using namespace std; + +int main() { + // your code goes here + ios_base::sync_with_stdio(false); + cin.tie(NULL); + cout.tie(NULL); + int t; + cin>>t; + while(t-->0) { + int n,m,k; + cin>>n>>m>>k; + long mat[n+1][m+1]; + for(int i=1;i<=n;i++) { + for(int j=1;j<=m;j++) { + cin>>mat[i][j]; + } + } + long temp; + for(int i=0;i<=n;i++) { + temp=0; + for(int j=0;j<=m;j++) { + mat[i][j]=mat[i][j]+temp; + temp=mat[i][j]; + } + } + for(int i=0;i<=m;i++) { + temp=0; + for(int j=0;j<=n;j++) { + mat[j][i]=mat[j][i]+temp; + temp=mat[j][i]; + } + } + long res=0; + for(int i=1;i<=min(m,n);i++) { + for(int j=i;j<=n;j++) { + for(int l=i;l<=m;l++) { + if(((mat[j-i][l-i]+mat[j][l])-(mat[j-i][l]+mat[j][l-i]) )/(pow(i,2)) >=k) { + res++; + } + } + } + } + cout< +using namespace std; +int main(){ + int testc; + cin >> testc; + while(testc--){ + int n; + cin >> n; + double k[n+1]; + double c[n+1]; + double x[n+1]; + for(int i = 1;i<=n;i++) scanf("%lf",k+i); + for(int i = 1;i<=n;i++) scanf("%lf",c+i); + int indicator = 0; + for(int i = 1;i<=n;i++){ + if( c[i] != 0){ + indicator = 1; + break; + } + } + if( indicator == 0) { + for(int i =0;i= 0) result = result + sqrt(x[i]+c[i]); + else {imposs= true; break;} + } + if( imposs== true) cout << -1 <0) { + int n=sc.nextInt(); + int x=sc.nextInt(); + Dictionary d=new Hashtable(); + int temp,temp2; + for(int i=0;i1) { + if(x>temp2-1) { + x=x-temp2+1; + d.put(temp,1); + } + else { + d.put(temp,temp2-x); + x=0; + } + } + if(x==0) { + break; + } + } + if(x!=0) { + for (Enumeration k = d.keys(); k.hasMoreElements();) + { + temp=(int)k.nextElement(); + d.remove(temp); + x--; + if(x==0) { + break; + } + } + } + System.out.print(d.size()+"\n"); + } + } +} diff --git a/Codechef/COOK128B/OR of ANDs.java b/Codechef/COOK128B/OR of ANDs.java new file mode 100644 index 00000000..3d9a83a8 --- /dev/null +++ b/Codechef/COOK128B/OR of ANDs.java @@ -0,0 +1,72 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + public static void main(String[] args) throws java.lang.Exception{ + Scanner sc=new Scanner(System.in); + int t=sc.nextInt(); + while(t-->0) { + int n=sc.nextInt(); + int q=sc.nextInt(); + long[] arr=new long[n]; + for(int i=0;i=0;j--) { + if(s.charAt(j)=='1') { + bits[pos]++; + } + pos++; + } + } + long res=0,val=1; + for(int j=0;j<32;j++) { + if(bits[j]>0) { + res=res+val; + } + val=val*2; + } + System.out.print(res+"\n"); + int x; + long v; + for(int i=0;i=0;j--) { + if(s.charAt(j)=='1') { + bits[pos]--; + } + pos++; + } + arr[x-1]=v; + s=Long.toBinaryString(v); + pos=0; + for(int j=s.length()-1;j>=0;j--) { + if(s.charAt(j)=='1') { + bits[pos]++; + } + pos++; + } + res=0; + val=1; + for(int j=0;j<32;j++) { + if(bits[j]>0) { + res=res+val; + } + val=val*2; + } + System.out.print(res+"\n"); + } + } + } +} diff --git a/Codechef/COOK133/Cars_and_Bikes.cpp b/Codechef/COOK133/Cars_and_Bikes.cpp new file mode 100644 index 00000000..c07e88f0 --- /dev/null +++ b/Codechef/COOK133/Cars_and_Bikes.cpp @@ -0,0 +1,20 @@ +#include +using namespace std; +// Contributed by Shrimad Bhagwat + +typedef long long ll; +int main() { + int t; + cin >> t; + while(t--){ + int n; + cin >> n; + if(n%4==0){ + cout << "NO" << endl; + } + else{ + cout << "YES" << endl; + } + } + return 0; +} diff --git a/Competitions/Codechef/COOK72/Chef and Array.cpp b/Codechef/COOK72/Chef and Array.cpp similarity index 100% rename from Competitions/Codechef/COOK72/Chef and Array.cpp rename to Codechef/COOK72/Chef and Array.cpp diff --git a/Competitions/Codechef/COOK72/Chef and Proportion.cpp b/Codechef/COOK72/Chef and Proportion.cpp similarity index 100% rename from Competitions/Codechef/COOK72/Chef and Proportion.cpp rename to Codechef/COOK72/Chef and Proportion.cpp diff --git a/Competitions/Codechef/COOK73/Tweedle-Dee and Tweedle-Dum.cpp b/Codechef/COOK73/Tweedle-Dee and Tweedle-Dum.cpp similarity index 100% rename from Competitions/Codechef/COOK73/Tweedle-Dee and Tweedle-Dum.cpp rename to Codechef/COOK73/Tweedle-Dee and Tweedle-Dum.cpp diff --git a/Competitions/Codechef/COOK74/Counting Strings.cpp b/Codechef/COOK74/Counting Strings.cpp similarity index 100% rename from Competitions/Codechef/COOK74/Counting Strings.cpp rename to Codechef/COOK74/Counting Strings.cpp diff --git a/Competitions/Codechef/COOK74/Lazy Jem.cpp b/Codechef/COOK74/Lazy Jem.cpp similarity index 100% rename from Competitions/Codechef/COOK74/Lazy Jem.cpp rename to Codechef/COOK74/Lazy Jem.cpp diff --git a/Competitions/Codechef/COOK74/The Lost Arithmetic Sequences.cpp b/Codechef/COOK74/The Lost Arithmetic Sequences.cpp similarity index 100% rename from Competitions/Codechef/COOK74/The Lost Arithmetic Sequences.cpp rename to Codechef/COOK74/The Lost Arithmetic Sequences.cpp diff --git a/Competitions/Codechef/COOK75/Sherlock Counts Ways.cpp b/Codechef/COOK75/Sherlock Counts Ways.cpp similarity index 100% rename from Competitions/Codechef/COOK75/Sherlock Counts Ways.cpp rename to Codechef/COOK75/Sherlock Counts Ways.cpp diff --git a/Competitions/Codechef/COOK77/Chef and Subset.cpp b/Codechef/COOK77/Chef and Subset.cpp similarity index 100% rename from Competitions/Codechef/COOK77/Chef and Subset.cpp rename to Codechef/COOK77/Chef and Subset.cpp diff --git a/Competitions/Codechef/COOK85/ELEVSTRS.py b/Codechef/COOK85/ELEVSTRS.py similarity index 100% rename from Competitions/Codechef/COOK85/ELEVSTRS.py rename to Codechef/COOK85/ELEVSTRS.py diff --git a/Competitions/Skillenza/September Stupendousness/Tyrion fights Bran.py b/Codechef/COOK85/OBTTRNGL.py similarity index 100% rename from Competitions/Skillenza/September Stupendousness/Tyrion fights Bran.py rename to Codechef/COOK85/OBTTRNGL.py diff --git a/Competitions/Codechef/FEB17/Chef and His Apartment Dues.cpp b/Codechef/FEB17/Chef and His Apartment Dues.cpp similarity index 100% rename from Competitions/Codechef/FEB17/Chef and His Apartment Dues.cpp rename to Codechef/FEB17/Chef and His Apartment Dues.cpp diff --git a/Competitions/Codechef/JAN17/Cats and Dogs.cpp b/Codechef/JAN17/Cats and Dogs.cpp similarity index 100% rename from Competitions/Codechef/JAN17/Cats and Dogs.cpp rename to Codechef/JAN17/Cats and Dogs.cpp diff --git a/Competitions/Codechef/KGP16MOS/Coal Mafia and Toll Tax.cpp b/Codechef/KGP16MOS/Coal Mafia and Toll Tax.cpp similarity index 100% rename from Competitions/Codechef/KGP16MOS/Coal Mafia and Toll Tax.cpp rename to Codechef/KGP16MOS/Coal Mafia and Toll Tax.cpp diff --git a/Competitions/Codechef/KGP16MOS/Optimal Partition.cpp b/Codechef/KGP16MOS/Optimal Partition.cpp similarity index 100% rename from Competitions/Codechef/KGP16MOS/Optimal Partition.cpp rename to Codechef/KGP16MOS/Optimal Partition.cpp diff --git a/Competitions/Codechef/LTIME39/Studying Alphabet.cpp b/Codechef/LTIME39/Studying Alphabet.cpp similarity index 100% rename from Competitions/Codechef/LTIME39/Studying Alphabet.cpp rename to Codechef/LTIME39/Studying Alphabet.cpp diff --git a/Competitions/Codechef/LTIME41/The Largest Bouquet.cpp b/Codechef/LTIME41/The Largest Bouquet.cpp similarity index 100% rename from Competitions/Codechef/LTIME41/The Largest Bouquet.cpp rename to Codechef/LTIME41/The Largest Bouquet.cpp diff --git a/Competitions/Codechef/LTIME43/Superheroes and villains.cpp b/Codechef/LTIME43/Superheroes and villains.cpp similarity index 100% rename from Competitions/Codechef/LTIME43/Superheroes and villains.cpp rename to Codechef/LTIME43/Superheroes and villains.cpp diff --git a/Competitions/Codechef/LTIME44/Nothing in Common.cpp b/Codechef/LTIME44/Nothing in Common.cpp similarity index 100% rename from Competitions/Codechef/LTIME44/Nothing in Common.cpp rename to Codechef/LTIME44/Nothing in Common.cpp diff --git a/Competitions/Codechef/LTIME50/GCAC.py b/Codechef/LTIME50/GCAC.py similarity index 100% rename from Competitions/Codechef/LTIME50/GCAC.py rename to Codechef/LTIME50/GCAC.py diff --git a/Competitions/Codechef/LTIME50/LOSTMAX.py b/Codechef/LTIME50/LOSTMAX.py similarity index 100% rename from Competitions/Codechef/LTIME50/LOSTMAX.py rename to Codechef/LTIME50/LOSTMAX.py diff --git a/Competitions/Codechef/LTIME50/MAXOR.py b/Codechef/LTIME50/MAXOR.py similarity index 100% rename from Competitions/Codechef/LTIME50/MAXOR.py rename to Codechef/LTIME50/MAXOR.py diff --git a/Codechef/LTIME88B/GCD operations.java b/Codechef/LTIME88B/GCD operations.java new file mode 100644 index 00000000..037dae1c --- /dev/null +++ b/Codechef/LTIME88B/GCD operations.java @@ -0,0 +1,89 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main (String[] args) throws java.lang.Exception + { + // your code goes here + FastReader sc=new FastReader(); + int t=sc.nextInt(); + while(t-->0) { + int n=sc.nextInt(); + int[] b=new int[n]; + for(int i=0;i0) { + int n=sc.nextInt(); + int[] fr=new int[n-1]; + int[] to=new int[n-1]; + for(int i=0;i1) { + s=s+temp-1; + } + } + System.out.println(s); + } + } +} diff --git a/Codechef/LTIME88B/Watermelon.java b/Codechef/LTIME88B/Watermelon.java new file mode 100644 index 00000000..964d28f8 --- /dev/null +++ b/Codechef/LTIME88B/Watermelon.java @@ -0,0 +1,95 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ +static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main (String[] args) throws java.lang.Exception + { + // your code goes here + FastReader sc=new FastReader(); + int t=sc.nextInt(); + while(t-->0) { + int n=sc.nextInt(); + int[] arr=new int[n]; + long sum=0,cp=0,cn=0; + for(int i=0;i0) { + cp=cp+arr[i]; + } + if(arr[i]<0) { + cn=cn-arr[i]; + } + } + if(sum==0) { + System.out.println("YES"); + } + else { + if(cp>cn) { + System.out.println("YES"); + } + else { + System.out.println("NO"); + } + } + } + } +} diff --git a/Codechef/LTIME89B/AND Plus OR.java b/Codechef/LTIME89B/AND Plus OR.java new file mode 100644 index 00000000..bde2d5b9 --- /dev/null +++ b/Codechef/LTIME89B/AND Plus OR.java @@ -0,0 +1,75 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main(String[] args) throws java.lang.Exception{ + FastReader sc=new FastReader(); + int t=sc.nextInt(); + long x,a,b; + while(t-->0) { + x=sc.nextLong(); + a=x; + b=0; + System.out.println(a+" "+b); + } + } +} diff --git a/Codechef/LTIME90B/Fractions(Partial).java b/Codechef/LTIME90B/Fractions(Partial).java new file mode 100644 index 00000000..169fb765 --- /dev/null +++ b/Codechef/LTIME90B/Fractions(Partial).java @@ -0,0 +1,90 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + static long __gcd(long a, long b) + { + if (b == 0) + return a; + return __gcd(b, a % b); + + } + public static void main(String[] args) throws java.lang.Exception{ + FastReader sc=new FastReader(); + int n=sc.nextInt(); + long n1,d1,res=0; + for(int i=1;i<=n;i++) { + for(int j=1;j<=n;j++) { + n1=i*(j+1); + d1=(i+1)*j; + long d; + d = __gcd(n1, d1); + n1 = n1 / d; + d1 = d1 / d; + if(n1+1==d1) { + res++; + } + } + } + System.out.println(res); + } +} diff --git a/Codechef/LTIME90B/Gasoline Introduction.java b/Codechef/LTIME90B/Gasoline Introduction.java new file mode 100644 index 00000000..ca88ce1c --- /dev/null +++ b/Codechef/LTIME90B/Gasoline Introduction.java @@ -0,0 +1,84 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main(String[] args) throws java.lang.Exception{ + FastReader sc=new FastReader(); + int t=sc.nextInt(); + while(t-->0) { + int n=sc.nextInt(); + int[] arr=new int[n]; + for(int i=0;i0) { + dist=dist+arr[i]; + sum=sum+arr[i]; + sum--; + } + } + System.out.println(dist); + } + } +} diff --git a/Codechef/LTIME90B/Xor Compare(Partial).java b/Codechef/LTIME90B/Xor Compare(Partial).java new file mode 100644 index 00000000..35ae74b5 --- /dev/null +++ b/Codechef/LTIME90B/Xor Compare(Partial).java @@ -0,0 +1,80 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main(String[] args) throws java.lang.Exception{ + FastReader sc=new FastReader(); + int t=sc.nextInt(); + while(t-->0) { + long x=sc.nextLong(); + long y=sc.nextLong(); + long n=sc.nextLong(); + long res=0; + for(long i=n;i>=0;i--) { + if((x^i)<(y^i)) { + res++; + } + } + System.out.println(res); + } + } +} diff --git a/Codechef/LTIME91B/One Zero Swaps.java b/Codechef/LTIME91B/One Zero Swaps.java new file mode 100644 index 00000000..ff9352b6 --- /dev/null +++ b/Codechef/LTIME91B/One Zero Swaps.java @@ -0,0 +1,101 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main(String[] args) throws java.lang.Exception{ + FastReader sc=new FastReader(); + int t=sc.nextInt(); + while(t-->0) { + int n=sc.nextInt(); + String s1=sc.next(); + String s2=sc.next(); + int i=0,count=0; + while(i0) { + count--; + i++; + continue; + } + else { + break; + } + } + if(s1.charAt(i)=='1'&&s2.charAt(i)=='0') { + count++; + i++; + continue; + } + } + if(i==n&&count==0) { + System.out.println("Yes"); + } + else { + System.out.println("No"); + } + } + } +} diff --git a/Codechef/LTIME91B/Sed Sequences.java b/Codechef/LTIME91B/Sed Sequences.java new file mode 100644 index 00000000..81c49b8f --- /dev/null +++ b/Codechef/LTIME91B/Sed Sequences.java @@ -0,0 +1,84 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main(String[] args) throws java.lang.Exception{ + FastReader sc=new FastReader(); + int t=sc.nextInt(); + while(t-->0) { + int n=sc.nextInt(); + int k=sc.nextInt(); + int temp; + long sum=0; + for(int i=0;i0) { + String st=sc.next(); + Dictionary dict = new Hashtable(); + int sz=0,res=0; + for(int i=0;i0) { + int n=sc.nextInt(); + String s=sc.next(); + int[] arr=new int[n]; + int flag=1,zero=0,x=0,y=0,z=0,maxa=0; + for(int i=0;imaxa) { + y=zero; + z=x; + maxa=zero-x; + } + x++; + } + } + System.out.println(n-Math.max(zero,Math.max(x,(y+x-z)))); + } + } +} diff --git a/Codechef/LTIME92B/Dreams of Divisibility(Partial).cpp b/Codechef/LTIME92B/Dreams of Divisibility(Partial).cpp new file mode 100644 index 00000000..ae648437 --- /dev/null +++ b/Codechef/LTIME92B/Dreams of Divisibility(Partial).cpp @@ -0,0 +1,36 @@ +#include +#include +using namespace std; + +int main() { + // your code goes here + int t; + cin>>t; + while(t--) { + int n,k; + cin>>n>>k; + int arr[n]; + set s; + int temp; + for(int i=0;i>arr[i]; + temp=arr[i]%k; + s.insert(temp); + } + int flag=0; + for(int i=0;i0) { + int n=sc.nextInt(); + int[] arr=new int[n]; + int eve=0,odd=0; + for(int i=0;i0) { + int n=sc.nextInt(); + int[] arr=new int[n]; + long sum=0; + int eve=0,odd=0; + for(int i=0;i0) { + int n=sc.nextInt(); + int[] arr=new int[n]; + int min=Integer.MAX_VALUE,max=Integer.MIN_VALUE; + for(int i=0;i=arr[i+1]) { + //I did it + } + else { + flag=1; + break; + } + } + if(flag==0) { + System.out.println("No"); + } + else { + System.out.println("Yes"); + } + } + } +} diff --git a/Codechef/LTIME93B/Coprime Range.java b/Codechef/LTIME93B/Coprime Range.java new file mode 100644 index 00000000..9fe61e39 --- /dev/null +++ b/Codechef/LTIME93B/Coprime Range.java @@ -0,0 +1,73 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main(String[] args) throws java.lang.Exception{ + FastReader sc=new FastReader(); + int t=sc.nextInt(); + while(t-->0) { + int l=sc.nextInt(); + int r=sc.nextInt(); + System.out.print(2534171+"\n"); + } + } +} diff --git a/Codechef/LTIME93B/Palpal Strings.java b/Codechef/LTIME93B/Palpal Strings.java new file mode 100644 index 00000000..3f0b5b46 --- /dev/null +++ b/Codechef/LTIME93B/Palpal Strings.java @@ -0,0 +1,88 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main(String[] args) throws java.lang.Exception{ + FastReader sc=new FastReader(); + int t=sc.nextInt(); + while(t-->0) { + String s=sc.next(); + int[] arr=new int[26]; + for(int i=0;i0) { + long a=sc.nextInt(); + long y=sc.nextInt(); + long x=sc.nextInt(); + if(y>a) { + System.out.print(((a*x)+1)+"\n"); + } + else { + System.out.print((y*x)+"\n"); + } + } + } +} diff --git a/Codechef/LTIME94B/Lunchtime.java b/Codechef/LTIME94B/Lunchtime.java new file mode 100644 index 00000000..b4cf3a86 --- /dev/null +++ b/Codechef/LTIME94B/Lunchtime.java @@ -0,0 +1,107 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main(String[] args) throws java.lang.Exception{ + FastReader sc=new FastReader(); + int t=sc.nextInt(); + while(t-->0) { + int n=sc.nextInt(); + int[] arr=new int[n]; + for(int i=0;i=0;j--) { + if(i==j) { + continue; + } + if(arr[i]==arr[j]) { + count++; + } + if(arr[i]0) { + long x=sc.nextInt(); + long r=sc.nextInt(); + long m=sc.nextInt(); + r=r*60; + m=m*60; + if(r0) { + int n=sc.nextInt(); + long w=sc.nextLong(); + long wr=sc.nextLong(); + long[] wt=new long[n]; + Hashtable d= new Hashtable<>(); + long temp; + for(int i=0;i=2) { + if(temp2%2==0) { + resw=resw+temp*temp2; + } + else { + resw=resw+temp*(temp2-1); + } + } + } + if(resw+wr>=w) { + System.out.print("YES\n"); + } + else { + System.out.print("NO\n"); + } + } + } +} diff --git a/Codechef/LTIME95B/Chef in Heaven.java b/Codechef/LTIME95B/Chef in Heaven.java new file mode 100644 index 00000000..82b79428 --- /dev/null +++ b/Codechef/LTIME95B/Chef in Heaven.java @@ -0,0 +1,92 @@ +import java.util.*; +import java.lang.*; +import java.io.*; + +class Codechef +{ + static class FastReader + { + BufferedReader br; + StringTokenizer st; + + public FastReader() + { + br = new BufferedReader(new + InputStreamReader(System.in)); + } + + String next() + { + while (st == null || !st.hasMoreElements()) + { + try + { + st = new StringTokenizer(br.readLine()); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return st.nextToken(); + } + + int nextInt() + { + return Integer.parseInt(next()); + } + + + long nextLong() + { + return Long.parseLong(next()); + } + + double nextDouble() + { + return Double.parseDouble(next()); + } + + String nextLine() + { + String str = ""; + try + { + str = br.readLine(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return str; + } + } + public static void main(String[] args) throws java.lang.Exception{ + FastReader sc=new FastReader(); + int t=sc.nextInt(); + while(t-->0) { + int l=sc.nextInt(); + String s=sc.next(); + int ones=0,zero=0; + int flag=0; + for(int i=0;i=zero) { + flag=1; + break; + } + } + if(flag==1) { + System.out.print("YES\n"); + } + else { + System.out.print("NO\n"); + } + } + } +} diff --git a/Competitions/Codechef/MARCH17/Bear and Extra Number.cpp b/Codechef/MARCH17/Bear and Extra Number.cpp similarity index 100% rename from Competitions/Codechef/MARCH17/Bear and Extra Number.cpp rename to Codechef/MARCH17/Bear and Extra Number.cpp diff --git a/Competitions/Codechef/MARCH17/Xenny and Alternating Tasks.cpp b/Codechef/MARCH17/Xenny and Alternating Tasks.cpp similarity index 100% rename from Competitions/Codechef/MARCH17/Xenny and Alternating Tasks.cpp rename to Codechef/MARCH17/Xenny and Alternating Tasks.cpp diff --git a/Competitions/Codechef/MARCH17/Xenny and Alternating Tasks.py b/Codechef/MARCH17/Xenny and Alternating Tasks.py similarity index 100% rename from Competitions/Codechef/MARCH17/Xenny and Alternating Tasks.py rename to Codechef/MARCH17/Xenny and Alternating Tasks.py diff --git a/Competitions/Codechef/NOV17/CLRL.py b/Codechef/NOV17/CLRL.py similarity index 100% rename from Competitions/Codechef/NOV17/CLRL.py rename to Codechef/NOV17/CLRL.py diff --git a/Competitions/Codechef/NOV17/VILTRIBE.py b/Codechef/NOV17/VILTRIBE.py similarity index 100% rename from Competitions/Codechef/NOV17/VILTRIBE.py rename to Codechef/NOV17/VILTRIBE.py diff --git a/Codechef/Practice/auglunchtime1.cpp b/Codechef/Practice/auglunchtime1.cpp new file mode 100644 index 00000000..34dcaf9f --- /dev/null +++ b/Codechef/Practice/auglunchtime1.cpp @@ -0,0 +1,53 @@ +//Problem: MODEFREQ (August Lunchtime 2020) +#include +using namespace std; +int main() { +ios_base::sync_with_stdio(false); +cin.tie(NULL); +int t; +cin>>t; +while(t--) +{ + int n; + cin>>n; + + int a[n]; + for(int i=0;i>a[i]; + } + mapb; + for(auto x:a){ + b[x]++; + } + mapc; + for(auto it = b.cbegin(); it != b.cend(); ++it ){ + c[it->second]++; + + } + int result=0; + int val=INT_MAX; + for(auto it = c.cbegin(); it != c.cend(); ++it ) + { + if(it->second>result) + { + result=it->second; + val=it->first; + } + if(it->second==result) + { + if(it->firstsecond; + val=it->first; + } + else + continue; + } + } + cout< +#include +using namespace std; +int main() +{ + int t; + cin>>t; + for(int x=0;x>n;; + int a[n],i,s=0; + for(i=0;i>a[i]; + s+=a[i]; + } + if(s>=0) + { + cout<<"YES\n"; + } + else + cout<<"NO\n"; + } +} diff --git a/Competitions/Codechef/SEPT16/Chef and digits of a number.cpp b/Codechef/SEPT16/Chef and digits of a number.cpp similarity index 100% rename from Competitions/Codechef/SEPT16/Chef and digits of a number.cpp rename to Codechef/SEPT16/Chef and digits of a number.cpp diff --git a/Competitions/Codechef/SEPT16/Faded Palindromes.cpp b/Codechef/SEPT16/Faded Palindromes.cpp similarity index 100% rename from Competitions/Codechef/SEPT16/Faded Palindromes.cpp rename to Codechef/SEPT16/Faded Palindromes.cpp diff --git a/Competitions/Codechef/TSTIND16/Mahasena.cpp b/Codechef/TSTIND16/Mahasena.cpp similarity index 100% rename from Competitions/Codechef/TSTIND16/Mahasena.cpp rename to Codechef/TSTIND16/Mahasena.cpp diff --git a/Competitions/Codechef/TSTIND16/Processing a string.cpp b/Codechef/TSTIND16/Processing a string.cpp similarity index 100% rename from Competitions/Codechef/TSTIND16/Processing a string.cpp rename to Codechef/TSTIND16/Processing a string.cpp diff --git a/Competitions/Codeforces/Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined)/Bashs Big Day.cpp b/Codeforces/Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined)/Bashs Big Day.cpp similarity index 100% rename from Competitions/Codeforces/Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined)/Bashs Big Day.cpp rename to Codeforces/Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined)/Bashs Big Day.cpp diff --git a/Competitions/Codeforces/Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined)/Gotta Catch Em All.cpp b/Codeforces/Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined)/Gotta Catch Em All.cpp similarity index 100% rename from Competitions/Codeforces/Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined)/Gotta Catch Em All.cpp rename to Codeforces/Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined)/Gotta Catch Em All.cpp diff --git a/Competitions/Codeforces/Codeforces Beta Round #1/Theatre Square.cpp b/Codeforces/Codeforces Beta Round #1/Theatre Square.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Beta Round #1/Theatre Square.cpp rename to Codeforces/Codeforces Beta Round #1/Theatre Square.cpp diff --git a/Competitions/Codeforces/Codeforces Beta Round #4 (Div. 2 Only)/Watermelon.cpp b/Codeforces/Codeforces Beta Round #4 (Div. 2 Only)/Watermelon.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Beta Round #4 (Div. 2 Only)/Watermelon.cpp rename to Codeforces/Codeforces Beta Round #4 (Div. 2 Only)/Watermelon.cpp diff --git a/Competitions/Codeforces/Codeforces Beta Round #47/Domino piling.cpp b/Codeforces/Codeforces Beta Round #47/Domino piling.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Beta Round #47/Domino piling.cpp rename to Codeforces/Codeforces Beta Round #47/Domino piling.cpp diff --git a/Competitions/Codeforces/Codeforces Beta Round #65 (Div. 2)/Way Too Long Words.cpp b/Codeforces/Codeforces Beta Round #65 (Div. 2)/Way Too Long Words.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Beta Round #65 (Div. 2)/Way Too Long Words.cpp rename to Codeforces/Codeforces Beta Round #65 (Div. 2)/Way Too Long Words.cpp diff --git a/Competitions/Codeforces/Codeforces Beta Round #77 (Div. 2 Only)/Football.cpp b/Codeforces/Codeforces Beta Round #77 (Div. 2 Only)/Football.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Beta Round #77 (Div. 2 Only)/Football.cpp rename to Codeforces/Codeforces Beta Round #77 (Div. 2 Only)/Football.cpp diff --git a/Competitions/Codeforces/Codeforces Beta Round #89 (Div. 2)/String Task.cpp b/Codeforces/Codeforces Beta Round #89 (Div. 2)/String Task.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Beta Round #89 (Div. 2)/String Task.cpp rename to Codeforces/Codeforces Beta Round #89 (Div. 2)/String Task.cpp diff --git a/Competitions/Codeforces/Codeforces Beta Round #96 (Div. 2)/HQ9+.py b/Codeforces/Codeforces Beta Round #96 (Div. 2)/HQ9+.py similarity index 100% rename from Competitions/Codeforces/Codeforces Beta Round #96 (Div. 2)/HQ9+.py rename to Codeforces/Codeforces Beta Round #96 (Div. 2)/HQ9+.py diff --git a/Codeforces/Codeforces Global Round 7/A Bad Ugly Numbers.js b/Codeforces/Codeforces Global Round 7/A Bad Ugly Numbers.js new file mode 100644 index 00000000..99ad0158 --- /dev/null +++ b/Codeforces/Codeforces Global Round 7/A Bad Ugly Numbers.js @@ -0,0 +1,18 @@ +const readline = require("readline"); +const rl = readline.createInterface(process.stdin, process.stdout); + +let lineNo = 0; +let testCases; + +const parseProblem = line => { + if (lineNo === 0) { + testCases = parseInt(line); + } + lineNo++; +}; + +rl.on("line", function (line) { + // console.log('Line number: ' + line); + if (lineNo === 0) { + } +}); diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2018/Googol String/sample-input.txt b/Codeforces/Codeforces Global Round 7/test input.txt similarity index 80% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2018/Googol String/sample-input.txt rename to Codeforces/Codeforces Global Round 7/test input.txt index 0aa4e3bb..49349590 100644 --- a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2018/Googol String/sample-input.txt +++ b/Codeforces/Codeforces Global Round 7/test input.txt @@ -2,4 +2,4 @@ 1 2 3 -10 \ No newline at end of file +4 diff --git a/Competitions/Codeforces/Codeforces Round #143 (Div. 2)/Team.cpp b/Codeforces/Codeforces Round #143 (Div. 2)/Team.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #143 (Div. 2)/Team.cpp rename to Codeforces/Codeforces Round #143 (Div. 2)/Team.cpp diff --git a/Competitions/Codeforces/Codeforces Round #173 (Div. 2)/Bit++.cpp b/Codeforces/Codeforces Round #173 (Div. 2)/Bit++.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #173 (Div. 2)/Bit++.cpp rename to Codeforces/Codeforces Round #173 (Div. 2)/Bit++.cpp diff --git a/Competitions/Codeforces/Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition)/Little Artem and Presents.cpp b/Codeforces/Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition)/Little Artem and Presents.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition)/Little Artem and Presents.cpp rename to Codeforces/Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition)/Little Artem and Presents.cpp diff --git a/Competitions/Codeforces/Codeforces Round #349 (Div. 2)/Pouring Rain.cpp b/Codeforces/Codeforces Round #349 (Div. 2)/Pouring Rain.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #349 (Div. 2)/Pouring Rain.cpp rename to Codeforces/Codeforces Round #349 (Div. 2)/Pouring Rain.cpp diff --git a/Competitions/Codeforces/Codeforces Round #352 (Div. 2)/Summer Camp.cpp b/Codeforces/Codeforces Round #352 (Div. 2)/Summer Camp.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #352 (Div. 2)/Summer Camp.cpp rename to Codeforces/Codeforces Round #352 (Div. 2)/Summer Camp.cpp diff --git a/Competitions/Codeforces/Codeforces Round #354 (Div. 2)/Nicholas and Permutation.cpp b/Codeforces/Codeforces Round #354 (Div. 2)/Nicholas and Permutation.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #354 (Div. 2)/Nicholas and Permutation.cpp rename to Codeforces/Codeforces Round #354 (Div. 2)/Nicholas and Permutation.cpp diff --git a/Competitions/Codeforces/Codeforces Round #355 (Div. 2)/Vanya and Fence.cpp b/Codeforces/Codeforces Round #355 (Div. 2)/Vanya and Fence.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #355 (Div. 2)/Vanya and Fence.cpp rename to Codeforces/Codeforces Round #355 (Div. 2)/Vanya and Fence.cpp diff --git a/Competitions/Codeforces/Codeforces Round #355 (Div. 2)/Vanya and Food Processor.cpp b/Codeforces/Codeforces Round #355 (Div. 2)/Vanya and Food Processor.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #355 (Div. 2)/Vanya and Food Processor.cpp rename to Codeforces/Codeforces Round #355 (Div. 2)/Vanya and Food Processor.cpp diff --git a/Competitions/Codeforces/Codeforces Round #356 (Div. 2)/Bear and Five Cards.cpp b/Codeforces/Codeforces Round #356 (Div. 2)/Bear and Five Cards.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #356 (Div. 2)/Bear and Five Cards.cpp rename to Codeforces/Codeforces Round #356 (Div. 2)/Bear and Five Cards.cpp diff --git a/Competitions/Codeforces/Codeforces Round #357 (Div. 2)/A Good Contest.cpp b/Codeforces/Codeforces Round #357 (Div. 2)/A Good Contest.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #357 (Div. 2)/A Good Contest.cpp rename to Codeforces/Codeforces Round #357 (Div. 2)/A Good Contest.cpp diff --git a/Competitions/Codeforces/Codeforces Round #358 (Div. 2)/Alyona and Mex.cpp b/Codeforces/Codeforces Round #358 (Div. 2)/Alyona and Mex.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #358 (Div. 2)/Alyona and Mex.cpp rename to Codeforces/Codeforces Round #358 (Div. 2)/Alyona and Mex.cpp diff --git a/Competitions/Codeforces/Codeforces Round #358 (Div. 2)/Alyona and Numbers.cpp b/Codeforces/Codeforces Round #358 (Div. 2)/Alyona and Numbers.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #358 (Div. 2)/Alyona and Numbers.cpp rename to Codeforces/Codeforces Round #358 (Div. 2)/Alyona and Numbers.cpp diff --git a/Competitions/Codeforces/Codeforces Round #359 (Div. 2)/Free Ice Cream.cpp b/Codeforces/Codeforces Round #359 (Div. 2)/Free Ice Cream.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #359 (Div. 2)/Free Ice Cream.cpp rename to Codeforces/Codeforces Round #359 (Div. 2)/Free Ice Cream.cpp diff --git a/Competitions/Codeforces/Codeforces Round #360 (Div. 2)/Lovely Palindromes.cpp b/Codeforces/Codeforces Round #360 (Div. 2)/Lovely Palindromes.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #360 (Div. 2)/Lovely Palindromes.cpp rename to Codeforces/Codeforces Round #360 (Div. 2)/Lovely Palindromes.cpp diff --git a/Competitions/Codeforces/Codeforces Round #360 (Div. 2)/Opponents.cpp b/Codeforces/Codeforces Round #360 (Div. 2)/Opponents.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #360 (Div. 2)/Opponents.cpp rename to Codeforces/Codeforces Round #360 (Div. 2)/Opponents.cpp diff --git a/Competitions/Codeforces/Codeforces Round #362 (Div. 2)/Barnicle.cpp b/Codeforces/Codeforces Round #362 (Div. 2)/Barnicle.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #362 (Div. 2)/Barnicle.cpp rename to Codeforces/Codeforces Round #362 (Div. 2)/Barnicle.cpp diff --git a/Competitions/Codeforces/Codeforces Round #362 (Div. 2)/Pineapple Incident.cpp b/Codeforces/Codeforces Round #362 (Div. 2)/Pineapple Incident.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #362 (Div. 2)/Pineapple Incident.cpp rename to Codeforces/Codeforces Round #362 (Div. 2)/Pineapple Incident.cpp diff --git a/Competitions/Codeforces/Codeforces Round #363 (Div. 2)/Launch of Collider.cpp b/Codeforces/Codeforces Round #363 (Div. 2)/Launch of Collider.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #363 (Div. 2)/Launch of Collider.cpp rename to Codeforces/Codeforces Round #363 (Div. 2)/Launch of Collider.cpp diff --git a/Competitions/Codeforces/Codeforces Round #363 (Div. 2)/One Bomb.cpp b/Codeforces/Codeforces Round #363 (Div. 2)/One Bomb.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #363 (Div. 2)/One Bomb.cpp rename to Codeforces/Codeforces Round #363 (Div. 2)/One Bomb.cpp diff --git a/Competitions/Codeforces/Codeforces Round #364 (Div. 2)/Cards.cpp b/Codeforces/Codeforces Round #364 (Div. 2)/Cards.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #364 (Div. 2)/Cards.cpp rename to Codeforces/Codeforces Round #364 (Div. 2)/Cards.cpp diff --git a/Competitions/Codeforces/Codeforces Round #364 (Div. 2)/Cells Not Under Attack.cpp b/Codeforces/Codeforces Round #364 (Div. 2)/Cells Not Under Attack.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #364 (Div. 2)/Cells Not Under Attack.cpp rename to Codeforces/Codeforces Round #364 (Div. 2)/Cells Not Under Attack.cpp diff --git a/Competitions/Codeforces/Codeforces Round #364 (Div. 2)/They Are Everywhere.cpp b/Codeforces/Codeforces Round #364 (Div. 2)/They Are Everywhere.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #364 (Div. 2)/They Are Everywhere.cpp rename to Codeforces/Codeforces Round #364 (Div. 2)/They Are Everywhere.cpp diff --git a/Competitions/Codeforces/Codeforces Round #365 (Div. 2)/Mishka and Game.cpp b/Codeforces/Codeforces Round #365 (Div. 2)/Mishka and Game.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #365 (Div. 2)/Mishka and Game.cpp rename to Codeforces/Codeforces Round #365 (Div. 2)/Mishka and Game.cpp diff --git a/Competitions/Codeforces/Codeforces Round #365 (Div. 2)/Mishka and Interesting sum.cpp b/Codeforces/Codeforces Round #365 (Div. 2)/Mishka and Interesting sum.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #365 (Div. 2)/Mishka and Interesting sum.cpp rename to Codeforces/Codeforces Round #365 (Div. 2)/Mishka and Interesting sum.cpp diff --git a/Competitions/Codeforces/Codeforces Round #366 (Div. 2)/Hulk.cpp b/Codeforces/Codeforces Round #366 (Div. 2)/Hulk.cpp similarity index 100% rename from Competitions/Codeforces/Codeforces Round #366 (Div. 2)/Hulk.cpp rename to Codeforces/Codeforces Round #366 (Div. 2)/Hulk.cpp diff --git a/Codeforces/Codeforces Round #366 (Div. 2)/Spider Man.cpp b/Codeforces/Codeforces Round #366 (Div. 2)/Spider Man.cpp new file mode 100644 index 00000000..ffa2a3d2 --- /dev/null +++ b/Codeforces/Codeforces Round #366 (Div. 2)/Spider Man.cpp @@ -0,0 +1,16 @@ +#include +using namespace std; +const int MAXN=100001; +int main (){ + int n; + long long x=0; + long a[MAXN]; + cin >> n; + for (int i=0; i> a[i]; + x+=a[i]-1; + if (x%2==1) cout<<1<>x>>y; + int a=y,b=y,c=y; + int rs=0; + while(true){ + if(a>=x&&b>=x&&c>=x)cout< +using namespace std; +int a[200005]; +int b[200005]; +string s,t; +int R; + +int check(int m){ + int k=0; + for(int i=m;i>s>>t; + R=s.size(); + for(int i=0;i>a[i]; + } + int l=0; + int r=s.size(); + while(l +using namespace std; +typedef long long ll; +bool oppositesigns(ll x,ll y) +{ + return ((x^y)<0); +} +bool large(ll x,ll y) +{ + if(x>y) + return 1; + return 0; +} +int main() +{ + ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); + ll t,n,p,i; + cin>>t; + while(t--) + { + cin>>n; + ll a[n]; + vector b; + for(i=0;i>a[i]; + p=a[0]; + for(i=0;i +using namespace std; +typedef long long ll; +int main() +{ + ll n,i=1,j,num; + vector bn; + cin>>n; + for(i=1;i<18;i+=2) + { + num=0; + for(j=i;j>i/2;j--) + { + num+=pow(2,j-1); + } + bn.push_back(num); + } + i=1; + while(i<=n) + { + if(n%i==0) + { + ll g = n/i; + if(find( bn.begin(), bn.end(), g) != bn.end()) + { + cout< +using namespace std; +typedef long long ll; +int main() +{ + string s; + cin>>s; + ll k,i,c=0; + cin>>k; + ll w[26]; + for(i=0;i<26;i++) + cin>>w[i]; + for(i=0;i +using namespace std; +typedef long long ll; +int main() +{ + ll t; + cin>>t; + while(t--) + { + ll n,c=0; + cin>>n; + ll m = sqrt(n); + c=m-1; + if(n%m==0) + cout< +using namespace std; +typedef long long ll; +int main() +{ + ll n,w=0,i; + cin>>n; + for(i=3;i<=n;i++) + w=w+(i*(i-1)); + cout< +using namespace std; +typedef long long ll; +int main() +{ + ll q; + cin>>q; + while(q--) + { + ll c,m,x,d; + cin>>c>>m>>x; + if(c<=x||m<=x||c==0||m==0) + { + cout<min(c,m)) + x=x+min(c,m); + else + x=x+(c+m)/3; + cout< +using namespace std; +typedef long long ll; +int main() +{ + ll n,a,b,i,y; + cin>>n>>a>>b; + for(i=0;i<=n/a;i++) + { + y = (n-i*a)/b; + if(i*a+y*b==n) + { + cout<<"YES"< +using namespace std; +typedef long long ll; +int main() +{ + ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); + ll n,sum=0,i; + cin>>n; + vector b; + if(n==1) + { + cout<i) + { + sum+=i; + b.push_back(i); + } + else + { + b.push_back(n-sum); + break; + } + } + cout< +using namespace std; +typedef long long ll; +int main() +{ + ll t; + cin>>t; + while(t--) + { + ll n,m,i,flag=0; + cin>>n>>m; + ll a[2*n][2]; + for(i=0;i<2*n;i++) + cin>>a[i][0]>>a[i][1]; + if(m%2!=0) + cout<<"NO"< +using namespace std; +typedef long long ll; +int main() +{ + ll a,b,n,t; + cin>>t; + while(t--) + { + cin>>a>>b>>n; + ll x[3]; + x[0]=a;x[1]=b;x[2]=(a^b); + cout< +#include +#include + +using namespace std; + +bool findExistence(vectorv, long k); + +int main(){ + + long n; + cin>>n; + + vectorv; + long i,x; + + for(i=0;i>x; + v.push_back(x); + } + + long k; + cin>>k; + + bool exist = findExistence(v,k); + if(exist == true){ + cout<<"Exists"; + } + else{ + cout<<"Doesn't Exists"; + } + +} + +bool findExistence(vectorv, long k){ + sort(v.begin(),v.end()); + long n = v.size(); + long l,r; + l=0,r=n-1; + while(l B -> C, it should become A <- B <- C. \ No newline at end of file +Write an algorithm that computes the reversal of a directed graph. For example, if a graph consists of A -> B -> C, it should become A <- B <- C. diff --git a/Practice/Daily Coding Problem/00219/README.md b/Daily Coding Problem/00219/README.md similarity index 87% rename from Practice/Daily Coding Problem/00219/README.md rename to Daily Coding Problem/00219/README.md index c91f0c86..0ec0567d 100644 --- a/Practice/Daily Coding Problem/00219/README.md +++ b/Daily Coding Problem/00219/README.md @@ -1,5 +1,7 @@ +# Problem 219 + This problem was asked by Salesforce. Connect 4 is a game where opponents take turns dropping red or black discs into a 7 x 6 vertically suspended grid. The game ends either when one player creates a line of four consecutive discs of their color (horizontally, vertically, or diagonally), or when there are no more spots left in the grid. -Design and implement Connect 4. \ No newline at end of file +Design and implement Connect 4. diff --git a/Practice/Daily Coding Problem/00220/README.md b/Daily Coding Problem/00220/README.md similarity index 93% rename from Practice/Daily Coding Problem/00220/README.md rename to Daily Coding Problem/00220/README.md index aa9cc6b1..622b1b7c 100644 --- a/Practice/Daily Coding Problem/00220/README.md +++ b/Daily Coding Problem/00220/README.md @@ -1,7 +1,9 @@ +# Problem 220 + This problem was asked by Square. In front of you is a row of N coins, with values v1, v1, ..., vn. You are asked to play the following game. You and an opponent take turns choosing either the first or last coin from the row, removing it from the row, and receiving the value of the coin. -Write a program that returns the maximum amount of money you can win with certainty, if you move first, assuming your opponent plays optimally. \ No newline at end of file +Write a program that returns the maximum amount of money you can win with certainty, if you move first, assuming your opponent plays optimally. diff --git a/Practice/Daily Coding Problem/00221/README.md b/Daily Coding Problem/00221/README.md similarity index 84% rename from Practice/Daily Coding Problem/00221/README.md rename to Daily Coding Problem/00221/README.md index 27dcb8ff..305bc06b 100644 --- a/Practice/Daily Coding Problem/00221/README.md +++ b/Daily Coding Problem/00221/README.md @@ -1,3 +1,5 @@ +# Problem 221 + This problem was asked by Zillow. -Let's define a "sevenish" number to be one which is either a power of 7, or the sum of unique powers of 7. The first few sevenish numbers are 1, 7, 8, 49, and so on. Create an algorithm to find the nth sevenish number. \ No newline at end of file +Let's define a "sevenish" number to be one which is either a power of 7, or the sum of unique powers of 7. The first few sevenish numbers are 1, 7, 8, 49, and so on. Create an algorithm to find the nth sevenish number. diff --git a/Practice/Daily Coding Problem/00222/README.md b/Daily Coding Problem/00222/README.md similarity index 89% rename from Practice/Daily Coding Problem/00222/README.md rename to Daily Coding Problem/00222/README.md index 6f8e018a..c1750ea1 100644 --- a/Practice/Daily Coding Problem/00222/README.md +++ b/Daily Coding Problem/00222/README.md @@ -1,5 +1,7 @@ +# Problem 222 + This problem was asked by Quora. Given an absolute pathname that may have . or .. as part of it, return the shortest standardized path. -For example, given "/usr/bin/../bin/./scripts/../", return "/usr/bin/". \ No newline at end of file +For example, given "/usr/bin/../bin/./scripts/../", return "/usr/bin/". diff --git a/Practice/Daily Coding Problem/00223/README.md b/Daily Coding Problem/00223/README.md similarity index 85% rename from Practice/Daily Coding Problem/00223/README.md rename to Daily Coding Problem/00223/README.md index 110f5e5a..4d1d6668 100644 --- a/Practice/Daily Coding Problem/00223/README.md +++ b/Daily Coding Problem/00223/README.md @@ -1,3 +1,5 @@ +# Problem 223 + This problem was asked by Palantir. -Typically, an implementation of in-order traversal of a binary tree has O(h) space complexity, where h is the height of the tree. Write a program to compute the in-order traversal of a binary tree using O(1) space. \ No newline at end of file +Typically, an implementation of in-order traversal of a binary tree has O(h) space complexity, where h is the height of the tree. Write a program to compute the in-order traversal of a binary tree using O(1) space. diff --git a/Practice/Daily Coding Problem/00224/README.md b/Daily Coding Problem/00224/README.md similarity index 93% rename from Practice/Daily Coding Problem/00224/README.md rename to Daily Coding Problem/00224/README.md index e0cdac7d..00ed7458 100644 --- a/Practice/Daily Coding Problem/00224/README.md +++ b/Daily Coding Problem/00224/README.md @@ -1,3 +1,5 @@ +# Problem 224 + This problem was asked by Amazon. Given a sorted array, find the smallest positive integer that is not the sum of a subset of the array. diff --git a/Practice/Daily Coding Problem/00225/README.md b/Daily Coding Problem/00225/README.md similarity index 89% rename from Practice/Daily Coding Problem/00225/README.md rename to Daily Coding Problem/00225/README.md index a6ed824b..11a167f7 100644 --- a/Practice/Daily Coding Problem/00225/README.md +++ b/Daily Coding Problem/00225/README.md @@ -1,3 +1,5 @@ +# Problem 225 + This problem was asked by Bloomberg. There are N prisoners standing in a circle, waiting to be executed. The executions are carried out starting with the kth person, and removing every successive kth person going clockwise until there is no one left. @@ -6,4 +8,4 @@ Given N and k, write an algorithm to determine where a prisoner should stand in For example, if N = 5 and k = 2, the order of executions would be [2, 4, 1, 5, 3], so you should return 3. -Bonus: Find an O(log N) solution if k = 2. \ No newline at end of file +Bonus: Find an O(log N) solution if k = 2. diff --git a/Practice/Daily Coding Problem/00226/README.md b/Daily Coding Problem/00226/README.md similarity index 84% rename from Practice/Daily Coding Problem/00226/README.md rename to Daily Coding Problem/00226/README.md index 43eecbb5..ea69fa73 100644 --- a/Practice/Daily Coding Problem/00226/README.md +++ b/Daily Coding Problem/00226/README.md @@ -1,5 +1,7 @@ +# Problem 226 + This problem was asked by Airbnb. You come across a dictionary of sorted words in a language you've never seen before. Write a program that returns the correct order of letters in this language. -For example, given ['xww', 'wxyz', 'wxyw', 'ywx', 'ywz'], you should return ['x', 'z', 'w', 'y']. \ No newline at end of file +For example, given ['xww', 'wxyz', 'wxyw', 'ywx', 'ywz'], you should return ['x', 'z', 'w', 'y']. diff --git a/Practice/Daily Coding Problem/00227/README.md b/Daily Coding Problem/00227/README.md similarity index 90% rename from Practice/Daily Coding Problem/00227/README.md rename to Daily Coding Problem/00227/README.md index 2b6fe63c..89c225f6 100644 --- a/Practice/Daily Coding Problem/00227/README.md +++ b/Daily Coding Problem/00227/README.md @@ -1,3 +1,5 @@ +# Problem 227 + This problem was asked by Facebook. -Boggle is a game played on a 4 x 4 grid of letters. The goal is to find as many words as possible that can be formed by a sequence of adjacent letters in the grid, using each cell at most once. Given a game board and a dictionary of valid words, implement a Boggle solver. \ No newline at end of file +Boggle is a game played on a 4 x 4 grid of letters. The goal is to find as many words as possible that can be formed by a sequence of adjacent letters in the grid, using each cell at most once. Given a game board and a dictionary of valid words, implement a Boggle solver. diff --git a/Practice/Daily Coding Problem/00228/README.md b/Daily Coding Problem/00228/README.md similarity index 72% rename from Practice/Daily Coding Problem/00228/README.md rename to Daily Coding Problem/00228/README.md index 7831c1ee..fef4690d 100644 --- a/Practice/Daily Coding Problem/00228/README.md +++ b/Daily Coding Problem/00228/README.md @@ -1,3 +1,5 @@ +# Problem 228 + This problem was asked by Twitter. -Given a list of numbers, create an algorithm that arranges them in order to form the largest possible integer. For example, given [10, 7, 76, 415], you should return 77641510. \ No newline at end of file +Given a list of numbers, create an algorithm that arranges them in order to form the largest possible integer. For example, given [10, 7, 76, 415], you should return 77641510. diff --git a/Practice/Daily Coding Problem/00229/README.md b/Daily Coding Problem/00229/README.md similarity index 95% rename from Practice/Daily Coding Problem/00229/README.md rename to Daily Coding Problem/00229/README.md index 0c4ab2d3..94f70b67 100644 --- a/Practice/Daily Coding Problem/00229/README.md +++ b/Daily Coding Problem/00229/README.md @@ -1,3 +1,5 @@ +# Problem 229 + This problem was asked by Flipkart. Snakes and Ladders is a game played on a 10 x 10 board, the goal of which is get from square 1 to square 100. On each turn players will roll a six-sided die and move forward a number of spaces equal to the result. If they land on a square that represents a snake or ladder, they will be transported ahead or behind, respectively, to a new square. @@ -7,4 +9,4 @@ Find the smallest number of turns it takes to play snakes and ladders. For convenience, here are the squares representing snakes and ladders, and their outcomes: snakes = {16: 6, 48: 26, 49: 11, 56: 53, 62: 19, 64: 60, 87: 24, 93: 73, 95: 75, 98: 78} -ladders = {1: 38, 4: 14, 9: 31, 21: 42, 28: 84, 36: 44, 51: 67, 71: 91, 80: 100} \ No newline at end of file +ladders = {1: 38, 4: 14, 9: 31, 21: 42, 28: 84, 36: 44, 51: 67, 71: 91, 80: 100} diff --git a/Practice/Daily Coding Problem/00230/README.md b/Daily Coding Problem/00230/README.md similarity index 91% rename from Practice/Daily Coding Problem/00230/README.md rename to Daily Coding Problem/00230/README.md index c83c0aa1..9e0d4d4e 100644 --- a/Practice/Daily Coding Problem/00230/README.md +++ b/Daily Coding Problem/00230/README.md @@ -1,7 +1,9 @@ +# Problem 230 + This problem was asked by Goldman Sachs. You are given N identical eggs and access to a building with k floors. Your task is to find the lowest floor that will cause an egg to break, if dropped from that floor. Once an egg breaks, it cannot be dropped again. If an egg breaks when dropped from the xth floor, you can assume it will also break when dropped from any floor greater than x. Write an algorithm that finds the minimum number of trial drops it will take, in the worst case, to identify this floor. -For example, if N = 1 and k = 5, we will need to try dropping the egg at every floor, beginning with the first, until we reach the fifth floor, so our solution will be 5. \ No newline at end of file +For example, if N = 1 and k = 5, we will need to try dropping the egg at every floor, beginning with the first, until we reach the fifth floor, so our solution will be 5. diff --git a/Practice/Daily Coding Problem/00231/README.md b/Daily Coding Problem/00231/README.md similarity index 87% rename from Practice/Daily Coding Problem/00231/README.md rename to Daily Coding Problem/00231/README.md index 34260fd8..9199d112 100644 --- a/Practice/Daily Coding Problem/00231/README.md +++ b/Daily Coding Problem/00231/README.md @@ -1,5 +1,7 @@ +# Problem 231 + This problem was asked by IBM. Given a string with repeated characters, rearrange the string so that no two adjacent characters are the same. If this is not possible, return None. -For example, given "aaabbc", you could return "ababac". Given "aaab", return None. \ No newline at end of file +For example, given "aaabbc", you could return "ababac". Given "aaab", return None. diff --git a/Practice/Daily Coding Problem/00232/README.md b/Daily Coding Problem/00232/README.md similarity index 90% rename from Practice/Daily Coding Problem/00232/README.md rename to Daily Coding Problem/00232/README.md index ecb7a2f8..0ba69d3f 100644 --- a/Practice/Daily Coding Problem/00232/README.md +++ b/Daily Coding Problem/00232/README.md @@ -1,3 +1,5 @@ +# Problem 232 + This problem was asked by Google. Implement a PrefixMapSum class with the following methods: @@ -10,4 +12,4 @@ mapsum.insert("columnar", 3) assert mapsum.sum("col") == 3 mapsum.insert("column", 2) -assert mapsum.sum("col") == 5 \ No newline at end of file +assert mapsum.sum("col") == 5 diff --git a/Practice/Daily Coding Problem/00233/README.md b/Daily Coding Problem/00233/README.md similarity index 61% rename from Practice/Daily Coding Problem/00233/README.md rename to Daily Coding Problem/00233/README.md index 673c10f4..8646a066 100644 --- a/Practice/Daily Coding Problem/00233/README.md +++ b/Daily Coding Problem/00233/README.md @@ -1,3 +1,5 @@ +# Problem 233 + This problem was asked by Apple. -Implement the function fib(n), which returns the nth number in the Fibonacci sequence, using only O(1) space. \ No newline at end of file +Implement the function fib(n), which returns the nth number in the Fibonacci sequence, using only O(1) space. diff --git a/Daily Coding Problem/00233/solution.cpp b/Daily Coding Problem/00233/solution.cpp new file mode 100644 index 00000000..062e6972 --- /dev/null +++ b/Daily Coding Problem/00233/solution.cpp @@ -0,0 +1,27 @@ +#include + +using namespace std; + +typedef long long ll; + +ll fib(ll n){ + ll a=1, b=1; + ll temp; + for(int i=1; i>n; + cout< B <--> C <--> plant +``` + +Each pipe has an associated cost, which the utility company would like to minimize. Given an undirected graph of pipe connections, return the lowest cost configuration of pipes such that each house has access to water. + +In the following setup, for example, we can remove all but the pipes from plant to A, plant to B, and B to C, for a total cost of 16. + +``` +pipes = { + 'plant': {'A': 1, 'B': 5, 'C': 20}, + 'A': {'C': 15}, + 'B': {'C': 10}, + 'C': {} +} +``` diff --git a/Daily Coding Problem/00408/README.md b/Daily Coding Problem/00408/README.md new file mode 100644 index 00000000..92155343 --- /dev/null +++ b/Daily Coding Problem/00408/README.md @@ -0,0 +1,7 @@ +# Problem #408 [Medium] + +This problem was asked by Facebook. + +Given an array of numbers representing the stock prices of a company in chronological order and an integer k, return the maximum profit you can make from k buys and sells. You must buy the stock before you can sell it, and you must sell the stock before you can buy it again. + +For example, given k = 2 and the array [5, 2, 4, 0, 1], you should return 3. diff --git a/Daily Coding Problem/00409/README.md b/Daily Coding Problem/00409/README.md new file mode 100644 index 00000000..a1330441 --- /dev/null +++ b/Daily Coding Problem/00409/README.md @@ -0,0 +1,13 @@ +# Problem #409 [Hard] + +This problem was asked by Google. + +PageRank is an algorithm used by Google to rank the importance of different websites. While there have been changes over the years, the central idea is to assign each site a score based on the importance of other pages that link to that page. + +More mathematically, suppose there are N sites, and each site i has a certain count Ci of outgoing links. Then the score for a particular site Sj is defined as : + +score(Sj) = (1 - d) / N + d \* (score(Sx) / Cx+ score(Sy) / Cy+ ... + score(Sz) / Cz)) + +Here, Sx, Sy, ..., Sz denote the scores of all the other sites that have outgoing links to Sj, and d is a damping factor, usually set to around 0.85, used to model the probability that a user will stop searching. + +Given a directed graph of links between various websites, write a program that calculates each site's page rank. diff --git a/Daily Coding Problem/00410/README.md b/Daily Coding Problem/00410/README.md new file mode 100644 index 00000000..eb1a2457 --- /dev/null +++ b/Daily Coding Problem/00410/README.md @@ -0,0 +1,11 @@ +# Problem #410 [Hard] + +This problem was asked by Airbnb. + +You are given an array X of floating-point numbers x1, x2, ... xn. These can be rounded up or down to create a corresponding array Y of integers y1, y2, ... yn. + +Write an algorithm that finds an appropriate Y array with the following properties: + +The rounded sums of both arrays should be equal. +The absolute pairwise difference between elements is minimized. In other words, |x1- y1| + |x2- y2| + ... + |xn- yn| should be as small as possible. +For example, suppose your input is [1.3, 2.3, 4.4]. In this case you cannot do better than [1, 2, 5], which has an absolute difference of |1.3 - 1| + |2.3 - 2| + |4.4 - 5| = 1. diff --git a/Daily Coding Problem/00411/README.md b/Daily Coding Problem/00411/README.md new file mode 100644 index 00000000..18e3fb14 --- /dev/null +++ b/Daily Coding Problem/00411/README.md @@ -0,0 +1,7 @@ +# Problem #411 [Hard] + +This problem was asked by Google. + +Given a string which we can delete at most k, return whether you can make a palindrome. + +For example, given 'waterrfetawx' and a k of 2, you could delete f and x to get 'waterretaw'. diff --git a/Daily Coding Problem/00412/README.md b/Daily Coding Problem/00412/README.md new file mode 100644 index 00000000..c4c7f6fa --- /dev/null +++ b/Daily Coding Problem/00412/README.md @@ -0,0 +1,17 @@ +# Problem #412 [Medium] + +This problem was asked by Epic. + +The "look and say" sequence is defined as follows: beginning with the term 1, each subsequent term visually describes the digits appearing in the previous term. The first few terms are as follows: + +``` +1 +11 +21 +1211 +111221 +``` + +As an example, the fourth term is 1211, since the third term consists of one 2 and one 1. + +Given an integer N, print the Nth term of this sequence. diff --git a/Daily Coding Problem/00413/README.md b/Daily Coding Problem/00413/README.md new file mode 100644 index 00000000..8f50735d --- /dev/null +++ b/Daily Coding Problem/00413/README.md @@ -0,0 +1,14 @@ +# Problem #413 [Hard] + +This problem was asked by Amazon. + +There exists a staircase with N steps, and you can climb up either 1 or 2 steps at a time. Given N, write a function that returns the number of unique ways you can climb the staircase. The order of the steps matters. + +For example, if N is 4, then there are 5 unique ways: + +1, 1, 1, 1 +2, 1, 1 +1, 2, 1 +1, 1, 2 +2, 2 +What if, instead of being able to climb 1 or 2 steps at a time, you could climb any number from a set of positive integers X? For example, if X = {1, 3, 5}, you could climb 1, 3, or 5 steps at a time. diff --git a/Daily Coding Problem/00414/README.md b/Daily Coding Problem/00414/README.md new file mode 100644 index 00000000..ef8f14e8 --- /dev/null +++ b/Daily Coding Problem/00414/README.md @@ -0,0 +1,5 @@ +# Problem #414 [Hard] + +This problem was asked by Microsoft. + +You have an N by N board. Write a function that, given N, returns the number of possible arrangements of the board where N queens can be placed on the board without threatening each other, i.e. no two queens share the same row, column, or diagonal. diff --git a/Daily Coding Problem/00415/README.md b/Daily Coding Problem/00415/README.md new file mode 100644 index 00000000..77fb7441 --- /dev/null +++ b/Daily Coding Problem/00415/README.md @@ -0,0 +1,9 @@ +# Problem #415 [Hard] + +This problem was asked by Affirm. + +Given a array of numbers representing the stock prices of a company in chronological order, write a function that calculates the maximum profit you could have made from buying and selling that stock. You're also given a number fee that represents a transaction fee for each buy and sell transaction. + +You must buy before you can sell the stock, but you can make as many transactions as you like. + +For example, given [1, 3, 2, 8, 4, 10] and fee = 2, you should return 9, since you could buy the stock at 1 dollar, and sell at 8 dollars, and then buy it at 4 dollars and sell it at 10 dollars. Since we did two transactions, there is a 4 dollar fee, so we have 7 + 6 = 13 profit minus 4 dollars of fees. diff --git a/Daily Coding Problem/00416/README.md b/Daily Coding Problem/00416/README.md new file mode 100644 index 00000000..9ae4a482 --- /dev/null +++ b/Daily Coding Problem/00416/README.md @@ -0,0 +1,28 @@ +# Problem #416 [Easy] + +This problem was asked by Google. + +You are in an infinite 2D grid where you can move in any of the 8 directions: + +``` + (x,y) to + (x+1, y), + (x - 1, y), + (x, y+1), + (x, y-1), + (x-1, y-1), + (x+1,y+1), + (x-1,y+1), + (x+1,y-1) +``` + +You are given a sequence of points and the order in which you need to cover the points. Give the minimum number of steps in which you can achieve it. You start from the first point. + +Example: + +``` +Input: [(0, 0), (1, 1), (1, 2)] +Output: 2 +``` + +It takes 1 step to move from (0, 0) to (1, 1). It takes one more step to move from (1, 1) to (1, 2). diff --git a/Daily Coding Problem/00417/README.md b/Daily Coding Problem/00417/README.md new file mode 100644 index 00000000..90cd32fb --- /dev/null +++ b/Daily Coding Problem/00417/README.md @@ -0,0 +1,7 @@ +# Problem #417 [Easy] + +This problem was asked by Amazon. + +Given a linked list, remove all consecutive nodes that sum to zero. Print out the remaining nodes. + +For example, suppose you are given the input 3 -> 4 -> -7 -> 5 -> -6 -> 6. In this case, you should first remove 3 -> 4 -> -7, then -6 -> 6, leaving only 5. diff --git a/Daily Coding Problem/00418/README.md b/Daily Coding Problem/00418/README.md new file mode 100644 index 00000000..ff19835d --- /dev/null +++ b/Daily Coding Problem/00418/README.md @@ -0,0 +1,9 @@ +# Problem #418 [Easy] + +This problem was asked by Atlassian. + +MegaCorp wants to give bonuses to its employees based on how many lines of codes they have written. They would like to give the smallest positive amount to each worker consistent with the constraint that if a developer has written more lines of code than their neighbor, they should receive more money. + +Given an array representing a line of seats of employees at MegaCorp, determine how much each one should get paid. + +For example, given [10, 40, 200, 1000, 60, 30], you should return [1, 2, 3, 4, 2, 1]. diff --git a/Daily Coding Problem/00419/README.md b/Daily Coding Problem/00419/README.md new file mode 100644 index 00000000..b41dc0f5 --- /dev/null +++ b/Daily Coding Problem/00419/README.md @@ -0,0 +1,12 @@ +# Problem #419 [Easy] + +This problem was asked by PagerDuty. + +Given a positive integer N, find the smallest number of steps it will take to reach 1. + +There are two kinds of permitted steps: + +- You may decrement N to N - 1. +- If a \* b = N, you may decrement N to the larger of a and b. + +For example, given 100, you can reach 1 in five steps with the following route: 100 -> 10 -> 9 -> 3 -> 2 -> 1. diff --git a/Daily Coding Problem/00420/README.md b/Daily Coding Problem/00420/README.md new file mode 100644 index 00000000..7141535f --- /dev/null +++ b/Daily Coding Problem/00420/README.md @@ -0,0 +1,9 @@ +# Problem #420 [Easy] + +This problem was asked by Microsoft. + +A number is considered perfect if its digits sum up to exactly 10. + +Given a positive integer n, return the n-th perfect number. + +For example, given 1, you should return 19. Given 2, you should return 28. diff --git a/Daily Coding Problem/00421/README.md b/Daily Coding Problem/00421/README.md new file mode 100644 index 00000000..bdb92520 --- /dev/null +++ b/Daily Coding Problem/00421/README.md @@ -0,0 +1,5 @@ +# Problem #421 [Medium] + +This problem was asked by Amazon. + +Given an array of a million integers between zero and a billion, out of order, how can you efficiently sort it? Assume that you cannot store an array of a billion elements in memory. diff --git a/Daily Coding Problem/00422/README.md b/Daily Coding Problem/00422/README.md new file mode 100644 index 00000000..60946458 --- /dev/null +++ b/Daily Coding Problem/00422/README.md @@ -0,0 +1,7 @@ +# Problem #422 [Easy] + +This problem was asked by Salesforce. + +Write a program to merge two binary trees. Each node in the new tree should hold a value equal to the sum of the values of the corresponding nodes of the input trees. + +If only one input tree has a node in a given position, the corresponding node in the new tree should match that input node. diff --git a/Daily Coding Problem/00423/README.md b/Daily Coding Problem/00423/README.md new file mode 100644 index 00000000..31ad5260 --- /dev/null +++ b/Daily Coding Problem/00423/README.md @@ -0,0 +1,27 @@ +# Problem #423 [Easy] + +This problem was asked by Microsoft. + +The transitive closure of a graph is a measure of which vertices are reachable from other vertices. It can be represented as a matrix M, where M[i][j] == 1 if there is a path between vertices i and j, and otherwise 0. + +For example, suppose we are given the following graph in adjacency list form: + +``` +graph = [ + [0, 1, 3], + [1, 2], + [2], + [3] +] +``` + +The transitive closure of this graph would be: + +``` +[1, 1, 1, 1] +[0, 1, 1, 0] +[0, 0, 1, 0] +[0, 0, 0, 1] +``` + +Given a graph, find its transitive closure. diff --git a/Daily Coding Problem/00424/README.md b/Daily Coding Problem/00424/README.md new file mode 100644 index 00000000..5884ca36 --- /dev/null +++ b/Daily Coding Problem/00424/README.md @@ -0,0 +1,9 @@ +# Problem #424 [Medium] + +This problem was asked by Facebook. + +Given an array of integers in which two elements appear exactly once and all other elements appear exactly twice, find the two elements that appear only once. + +For example, given the array [2, 4, 6, 8, 10, 2, 6, 10], return 4 and 8. The order does not matter. + +Follow-up: Can you do this in linear time and constant space? diff --git a/Daily Coding Problem/00425/README.md b/Daily Coding Problem/00425/README.md new file mode 100644 index 00000000..fd09ae2a --- /dev/null +++ b/Daily Coding Problem/00425/README.md @@ -0,0 +1,22 @@ +# Problem #425 [Hard] + +This problem was asked by Oracle. + +You are presented with an 8 by 8 matrix representing the positions of pieces on a chess board. The only pieces on the board are the black king and various white pieces. Given this matrix, determine whether the king is in check. + +For details on how each piece moves, see here. + +For example, given the following matrix: + +``` +...K.... +........ +.B...... +......P. +.......R +..N..... +........ +.....Q.. +``` + +You should return True, since the bishop is attacking the king diagonally. diff --git a/Daily Coding Problem/00426/README.md b/Daily Coding Problem/00426/README.md new file mode 100644 index 00000000..2c6acc52 --- /dev/null +++ b/Daily Coding Problem/00426/README.md @@ -0,0 +1,5 @@ +# Problem #426 [Easy] + +This problem was asked by Facebook. + +Given a binary tree, return the level of the tree with minimum sum. diff --git a/Daily Coding Problem/00427/README.md b/Daily Coding Problem/00427/README.md new file mode 100644 index 00000000..be18db0f --- /dev/null +++ b/Daily Coding Problem/00427/README.md @@ -0,0 +1,25 @@ +# Problem #427 [Medium] + +This problem was asked by Square. + +A competitive runner would like to create a route that starts and ends at his house, with the condition that the route goes entirely uphill at first, and then entirely downhill. + +Given a dictionary of places of the form {location: elevation}, and a dictionary mapping paths between some of these locations to their corresponding distances, find the length of the shortest route satisfying the condition above. Assume the runner's home is location 0. + +For example, suppose you are given the following input: + +``` +elevations = {0: 5, 1: 25, 2: 15, 3: 20, 4: 10} +paths = { + (0, 1): 10, + (0, 2): 8, + (0, 3): 15, + (1, 3): 12, + (2, 4): 10, + (3, 4): 5, + (3, 0): 17, + (4, 0): 10 +} +``` + +In this case, the shortest valid path would be 0 -> 2 -> 4 -> 0, with a distance of 28. diff --git a/Daily Coding Problem/00428/README.md b/Daily Coding Problem/00428/README.md new file mode 100644 index 00000000..fb77c9ff --- /dev/null +++ b/Daily Coding Problem/00428/README.md @@ -0,0 +1,9 @@ +# Problem #428 [Hard] + +This problem was asked by Uber. + +You have N stones in a row, and would like to create from them a pyramid. This pyramid should be constructed such that the height of each stone increases by one until reaching the tallest stone, after which the heights decrease by one. In addition, the start and end stones of the pyramid should each be one stone high. + +You can change the height of any stone by paying a cost of 1 unit to lower its height by 1, as many times as necessary. Given this information, determine the lowest cost method to produce this pyramid. + +For example, given the stones [1, 1, 3, 3, 2, 1], the optimal solution is to pay 2 to create [0, 1, 2, 3, 2, 1]. diff --git a/Daily Coding Problem/00429/README.md b/Daily Coding Problem/00429/README.md new file mode 100644 index 00000000..327a940c --- /dev/null +++ b/Daily Coding Problem/00429/README.md @@ -0,0 +1,21 @@ +# Problem #429 [Medium] + +This problem was asked by Stitch Fix. + +Pascal's triangle is a triangular array of integers constructed with the following formula: + +The first row consists of the number 1. +For each subsequent row, each element is the sum of the numbers directly above it, on either side. +For example, here are the first few rows: + +``` + 1 + 1 1 + 1 2 1 + 1 3 3 1 +1 4 6 4 1 +``` + +Given an input k, return the kth row of Pascal's triangle. + +Bonus: Can you do this using only O(k) space? diff --git a/Daily Coding Problem/00430/README.md b/Daily Coding Problem/00430/README.md new file mode 100644 index 00000000..9cb0b777 --- /dev/null +++ b/Daily Coding Problem/00430/README.md @@ -0,0 +1,7 @@ +# Problem #430 [Hard] + +This problem was asked by Facebook. + +Given a string of parentheses, find the balanced string that can be produced from it using the minimum number of insertions and deletions. If there are multiple solutions, return any of them. + +For example, given "(()", you could return "(())". Given "))()(", you could return "()()()()". diff --git a/Daily Coding Problem/00431/README.md b/Daily Coding Problem/00431/README.md new file mode 100644 index 00000000..538f0fae --- /dev/null +++ b/Daily Coding Problem/00431/README.md @@ -0,0 +1,12 @@ +# Problem #431 [Medium] + +This problem was asked by Nest. + +Create a basic sentence checker that takes in a stream of characters and determines whether they form valid sentences. If a sentence is valid, the program should print it out. + +We can consider a sentence valid if it conforms to the following rules: + +1. The sentence must start with a capital letter, followed by a lowercase letter or a space. +2. All other characters must be lowercase letters, separators (,,;,:) or terminal marks (.,?,!,‽). +3. There must be a single space between each word. +4. The sentence must end with a terminal mark immediately following a word. diff --git a/Daily Coding Problem/00432/README.md b/Daily Coding Problem/00432/README.md new file mode 100644 index 00000000..3e2d1a4a --- /dev/null +++ b/Daily Coding Problem/00432/README.md @@ -0,0 +1,14 @@ +# Problem #432 [Hard] + +This problem was asked by Google. + +Design a system to crawl and copy all of Wikipedia using a distributed network of machines. + +More specifically, suppose your server has access to a set of client machines. Your client machines can execute code you have written to access Wikipedia pages, download and parse their data, and write the results to a database. + +Some questions you may want to consider as part of your solution are: + +- How will you reach as many pages as possible? +- How can you keep track of pages that have already been visited? +- How will you deal with your client machines being blacklisted? +- How can you update your database when Wikipedia pages are added or updated? diff --git a/Daily Coding Problem/00433/README.md b/Daily Coding Problem/00433/README.md new file mode 100644 index 00000000..d44852bf --- /dev/null +++ b/Daily Coding Problem/00433/README.md @@ -0,0 +1,5 @@ +# Problem #433 [Medium] + +This problem was asked by Facebook. + +Given an integer n, find the next biggest integer with the same number of 1-bits on. For example, given the number 6 (0110 in binary), return 9 (1001). diff --git a/Daily Coding Problem/00434/README.md b/Daily Coding Problem/00434/README.md new file mode 100644 index 00000000..5c6423d3 --- /dev/null +++ b/Daily Coding Problem/00434/README.md @@ -0,0 +1,7 @@ +# Problem #434 [Easy] + +This problem was asked by Oracle. + +Given a binary search tree, find the floor and ceiling of a given integer. The floor is the highest element in the tree less than or equal to an integer, while the ceiling is the lowest element in the tree greater than or equal to an integer. + +If either value does not exist, return None. diff --git a/Daily Coding Problem/00435/README.md b/Daily Coding Problem/00435/README.md new file mode 100644 index 00000000..c15b58b6 --- /dev/null +++ b/Daily Coding Problem/00435/README.md @@ -0,0 +1,23 @@ +# Problem #435 [Medium] + +This problem was asked by Google. + +Given pre-order and in-order traversals of a binary tree, write a function to reconstruct the tree. + +For example, given the following preorder traversal: + +[a, b, d, e, c, f, g] + +And the following inorder traversal: + +[d, b, e, a, f, c, g] + +You should return the following tree: + +``` + a + / \ + b c + / \ / \ +d e f g +``` diff --git a/Daily Coding Problem/00436/README.md b/Daily Coding Problem/00436/README.md new file mode 100644 index 00000000..507bfa64 --- /dev/null +++ b/Daily Coding Problem/00436/README.md @@ -0,0 +1,17 @@ +# Problem #436 [Hard] + +This problem was asked by Microsoft. + +Implement 3 stacks using a single list: + +``` +class Stack: + def __init__(self): + self.list = [] + + def pop(self, stack_number): + pass + + def push(self, item, stack_number): + pass +``` diff --git a/Daily Coding Problem/00437/README.md b/Daily Coding Problem/00437/README.md new file mode 100644 index 00000000..c27b403f --- /dev/null +++ b/Daily Coding Problem/00437/README.md @@ -0,0 +1,9 @@ +# Problem #437 [Medium] + +This problem was asked by Square. + +Given a string and a set of characters, return the shortest substring containing all the characters in the set. + +For example, given the string "figehaeci" and the set of characters {a, e, i}, you should return "aeci". + +If there is no substring containing all the characters in the set, return null. diff --git a/Daily Coding Problem/00438/README.md b/Daily Coding Problem/00438/README.md new file mode 100644 index 00000000..5a2ff895 --- /dev/null +++ b/Daily Coding Problem/00438/README.md @@ -0,0 +1,13 @@ +# Problem #438 [Easy] + +This problem was asked by Amazon. + +Implement a stack API using only a heap. A stack implements the following methods: + +- push(item), which adds an element to the stack +- pop(), which removes and returns the most recently added element (or throws an error if there is nothing on the stack) + +Recall that a heap has the following operations: + +- push(item), which adds a new key to the heap +- pop(), which removes and returns the max value of the heap diff --git a/Daily Coding Problem/00439/README.md b/Daily Coding Problem/00439/README.md new file mode 100644 index 00000000..4418ba16 --- /dev/null +++ b/Daily Coding Problem/00439/README.md @@ -0,0 +1,11 @@ +# Problem #439 [Medium] + +This problem was asked by Facebook. + +Given an unordered list of flights taken by someone, each represented as (origin, destination) pairs, and a starting airport, compute the person's itinerary. If no such itinerary exists, return null. If there are multiple possible itineraries, return the lexicographically smallest one. All flights must be used in the itinerary. + +For example, given the list of flights [('SFO', 'HKO'), ('YYZ', 'SFO'), ('YUL', 'YYZ'), ('HKO', 'ORD')] and starting airport 'YUL', you should return the list ['YUL', 'YYZ', 'SFO', 'HKO', 'ORD']. + +Given the list of flights [('SFO', 'COM'), ('COM', 'YYZ')] and starting airport 'COM', you should return null. + +Given the list of flights [('A', 'B'), ('A', 'C'), ('B', 'C'), ('C', 'A')] and starting airport 'A', you should return the list ['A', 'B', 'C', 'A', 'C'] even though ['A', 'C', 'A', 'B', 'C'] is also a valid itinerary. However, the first one is lexicographically smaller. diff --git a/Daily Coding Problem/00440/README.md b/Daily Coding Problem/00440/README.md new file mode 100644 index 00000000..ed200832 --- /dev/null +++ b/Daily Coding Problem/00440/README.md @@ -0,0 +1,9 @@ +# Problem #440 [Medium] + +This problem was asked by Microsoft. + +Describe and give an example of each of the following types of polymorphism: + +- Ad-hoc polymorphism +- Parametric polymorphism +- Subtype polymorphism diff --git a/Daily Coding Problem/00441/README.md b/Daily Coding Problem/00441/README.md new file mode 100644 index 00000000..392c628a --- /dev/null +++ b/Daily Coding Problem/00441/README.md @@ -0,0 +1,13 @@ +# Problem #441 [Medium] + +This problem was asked by Amazon. + +Given a pivot x, and a list lst, partition the list into three parts. + +- The first part contains all elements in lst that are less than x +- The second part contains all elements in lst that are equal to x +- The third part contains all elements in lst that are larger than x + +Ordering within a part can be arbitrary. + +For example, given x = 10 and lst = [9, 12, 3, 5, 14, 10, 10], one partition may be [9, 3, 5, 10, 10, 12, 14]. diff --git a/Daily Coding Problem/00442/README.md b/Daily Coding Problem/00442/README.md new file mode 100644 index 00000000..924f29cc --- /dev/null +++ b/Daily Coding Problem/00442/README.md @@ -0,0 +1,20 @@ +# Problem #442 [Hard] + +This problem was asked by Netflix. + +A Cartesian tree with sequence S is a binary tree defined by the following two properties: + +- It is heap-ordered, so that each parent value is strictly less than that of its children. +- An in-order traversal of the tree produces nodes with values that correspond exactly to S. + +For example, given the sequence [3, 2, 6, 1, 9], the resulting Cartesian tree would be: + +``` + 1 + / \ + 2 9 + / \ +3 6 +``` + +Given a sequence S, construct the corresponding Cartesian tree. diff --git a/Daily Coding Problem/00443/README.md b/Daily Coding Problem/00443/README.md new file mode 100644 index 00000000..eeb1c6fb --- /dev/null +++ b/Daily Coding Problem/00443/README.md @@ -0,0 +1,5 @@ +# Problem #443 [Medium] + +This problem was asked by Apple. + +Implement a queue using two stacks. Recall that a queue is a FIFO (first-in, first-out) data structure with the following methods: enqueue, which inserts an element into the queue, and dequeue, which removes it. diff --git a/Daily Coding Problem/00444/README.md b/Daily Coding Problem/00444/README.md new file mode 100644 index 00000000..0dc0e31f --- /dev/null +++ b/Daily Coding Problem/00444/README.md @@ -0,0 +1,9 @@ +# Problem #444 [Hard] + +This problem was asked by Dropbox. + +Implement an efficient string matching algorithm. + +That is, given a string of length N and a pattern of length k, write a program that searches for the pattern in the string with less than O(N \* k) worst-case time complexity. + +If the pattern is found, return the start index of its location. If not, return False. diff --git a/Daily Coding Problem/00445/README.md b/Daily Coding Problem/00445/README.md new file mode 100644 index 00000000..89d57bab --- /dev/null +++ b/Daily Coding Problem/00445/README.md @@ -0,0 +1,29 @@ +# Problem #445 [Medium] + +This question was asked by BufferBox. + +Given a binary tree where all nodes are either 0 or 1, prune the tree so that subtrees containing all 0s are removed. + +For example, given the following tree: + +``` + 0 + / \ + 1 0 + / \ + 1 0 + / \ + 0 0 +``` + +should be pruned to: + +``` + 0 + / \ + 1 0 + / + 1 +``` + +We do not remove the tree at the root or its left child because it still has a 1 as a descendant. diff --git a/Daily Coding Problem/00446/README.md b/Daily Coding Problem/00446/README.md new file mode 100644 index 00000000..6f16f894 --- /dev/null +++ b/Daily Coding Problem/00446/README.md @@ -0,0 +1,5 @@ +# Problem #446 [Medium] + +This problem was asked by Indeed. + +Given a 32-bit positive integer N, determine whether it is a power of four in faster than O(log N) time. diff --git a/Daily Coding Problem/00447/README.md b/Daily Coding Problem/00447/README.md new file mode 100644 index 00000000..2a7ad0c7 --- /dev/null +++ b/Daily Coding Problem/00447/README.md @@ -0,0 +1,9 @@ +# Problem #447 [Medium] + +This problem was asked by Google. + +Implement integer exponentiation. That is, implement the pow(x, y) function, where x and y are integers and returns x^y. + +Do this faster than the naive method of repeated multiplication. + +For example, pow(2, 10) should return 1024. diff --git a/Daily Coding Problem/00448/README.md b/Daily Coding Problem/00448/README.md new file mode 100644 index 00000000..acf752b3 --- /dev/null +++ b/Daily Coding Problem/00448/README.md @@ -0,0 +1,9 @@ +# Problem #448 [Hard] + +This problem was asked by Google. + +Given an array of strictly the characters 'R', 'G', and 'B', segregate the values of the array so that all the Rs come first, the Gs come second, and the Bs come last. You can only swap elements of the array. + +Do this in linear time and in-place. + +For example, given the array ['G', 'B', 'R', 'R', 'B', 'R', 'G'], it should become ['R', 'R', 'R', 'G', 'G', 'B', 'B']. diff --git a/Daily Coding Problem/00449/README.md b/Daily Coding Problem/00449/README.md new file mode 100644 index 00000000..53d930df --- /dev/null +++ b/Daily Coding Problem/00449/README.md @@ -0,0 +1,24 @@ +# Problem #449 [Easy] + +This problem was asked by Alibaba. + +Given an even number (greater than 2), return two prime numbers whose sum will be equal to the given number. + +A solution will always exist. See Goldbach’s conjecture. + +Example: + +``` +Input: 4 +Output: 2 + 2 = 4 +``` + +If there are more than one solution possible, return the lexicographically smaller solution. + +If [a, b] is one solution with a <= b, and [c, d] is another solution with c <= d, then + +``` +[a, b] < [c, d] +``` + +If a < c OR a==c AND b < d. diff --git a/Daily Coding Problem/00450/README.md b/Daily Coding Problem/00450/README.md new file mode 100644 index 00000000..84313b65 --- /dev/null +++ b/Daily Coding Problem/00450/README.md @@ -0,0 +1,7 @@ +# Problem #450 [Hard] + +This problem was asked by Google. + +You're given a string consisting solely of (, ), and _. _ can represent either a (, ), or an empty string. Determine whether the parentheses are balanced. + +For example, (()_ and (_) are balanced. )\*( is not balanced. diff --git a/Daily Coding Problem/00451/README.md b/Daily Coding Problem/00451/README.md new file mode 100644 index 00000000..a94ae8e4 --- /dev/null +++ b/Daily Coding Problem/00451/README.md @@ -0,0 +1,5 @@ +# Problem #451 [Easy] + +This problem was asked by Apple. + +Implement the function fib(n), which returns the nth number in the Fibonacci sequence, using only O(1) space. diff --git a/Daily Coding Problem/00452/README.md b/Daily Coding Problem/00452/README.md new file mode 100644 index 00000000..dfce6a28 --- /dev/null +++ b/Daily Coding Problem/00452/README.md @@ -0,0 +1,28 @@ +# Problem #452 [Easy] + +This problem was asked by Microsoft. + +Let's represent an integer in a linked list format by having each node represent a digit in the number. The nodes make up the number in reversed order. + +For example, the following linked list: + +``` +1 -> 2 -> 3 -> 4 -> 5 +``` + +is the number 54321. + +Given two linked lists in this format, return their sum in the same linked list format. + +For example, given + +``` +9 -> 9 +5 -> 2 +``` + +return 124 (99 + 25) as: + +``` +4 -> 2 -> 1 +``` diff --git a/Daily Coding Problem/00453/README.md b/Daily Coding Problem/00453/README.md new file mode 100644 index 00000000..5d78e093 --- /dev/null +++ b/Daily Coding Problem/00453/README.md @@ -0,0 +1,17 @@ +# Problem #453 [Easy] + +This problem was asked by Google. + +Given the root of a binary search tree, and a target K, return two nodes in the tree whose sum equals K. + +For example, given the following tree and K of 20 + +``` + 10 + / \ + 5 15 + / \ + 11 15 +``` + +Return the nodes 5 and 15. diff --git a/Daily Coding Problem/00454/README.md b/Daily Coding Problem/00454/README.md new file mode 100644 index 00000000..be80e1ff --- /dev/null +++ b/Daily Coding Problem/00454/README.md @@ -0,0 +1,5 @@ +# Problem #454 [Medium] + +This problem was asked by Facebook. + +Describe an algorithm to compute the longest increasing subsequence of an array of numbers in O(n log n) time. diff --git a/Daily Coding Problem/00455/README.md b/Daily Coding Problem/00455/README.md new file mode 100644 index 00000000..2d49b79c --- /dev/null +++ b/Daily Coding Problem/00455/README.md @@ -0,0 +1,15 @@ +# Problem #455 [Medium] + +This problem was asked by Dropbox. + +Conway's Game of Life takes place on an infinite two-dimensional board of square cells. Each cell is either dead or alive, and at each tick, the following rules apply: + +Any live cell with less than two live neighbours dies. +Any live cell with two or three live neighbours remains living. +Any live cell with more than three live neighbours dies. +Any dead cell with exactly three live neighbours becomes a live cell. +A cell neighbours another cell if it is horizontally, vertically, or diagonally adjacent. + +Implement Conway's Game of Life. It should be able to be initialized with a starting list of live cell coordinates and the number of steps it should run for. Once initialized, it should print out the board state at each step. Since it's an infinite board, print out only the relevant coordinates, i.e. from the top-leftmost live cell to bottom-rightmost live cell. + +You can represent a live cell with an asterisk (\*) and a dead cell with a dot (.). diff --git a/Daily Coding Problem/00456/README.md b/Daily Coding Problem/00456/README.md new file mode 100644 index 00000000..3e1d8a26 --- /dev/null +++ b/Daily Coding Problem/00456/README.md @@ -0,0 +1,19 @@ +# Problem #456 [Easy] + +This problem was asked by Amazon. + +You are given a list of data entries that represent entries and exits of groups of people into a building. An entry looks like this: + +``` +{"timestamp": 1526579928, count: 3, "type": "enter"} +``` + +This means 3 people entered the building. An exit looks like this: + +``` +{"timestamp": 1526580382, count: 2, "type": "exit"} +``` + +This means that 2 people exited the building. timestamp is in Unix time. + +Find the busiest period in the building, that is, the time with the most people in the building. Return it as a pair of (start, end) timestamps. You can assume the building always starts off and ends up empty, i.e. with 0 people inside. diff --git a/Daily Coding Problem/00457/README.md b/Daily Coding Problem/00457/README.md new file mode 100644 index 00000000..754f44c9 --- /dev/null +++ b/Daily Coding Problem/00457/README.md @@ -0,0 +1,7 @@ +# Problem #457 [Hard] + +This problem was asked by Google. + +Given a word W and a string S, find all starting indices in S which are anagrams of W. + +For example, given that W is "ab", and S is "abxaba", return 0, 3, and 4. diff --git a/Daily Coding Problem/00458/README.md b/Daily Coding Problem/00458/README.md new file mode 100644 index 00000000..bceea50c --- /dev/null +++ b/Daily Coding Problem/00458/README.md @@ -0,0 +1,34 @@ +# Problem #458 [Hard] + +This problem was asked by Uber. + +A rule looks like this: + +``` +A NE B +``` + +This means this means point A is located northeast of point B. + +``` +A SW C +``` + +means that point A is southwest of C. + +Given a list of rules, check if the sum of the rules validate. For example: + +``` +A N B +B NE C +C N A +``` + +does not validate, since A cannot be both north and south of C. + +``` +A NW B +A N B +``` + +is considered valid. diff --git a/Daily Coding Problem/00459/README.md b/Daily Coding Problem/00459/README.md new file mode 100644 index 00000000..066ba586 --- /dev/null +++ b/Daily Coding Problem/00459/README.md @@ -0,0 +1,11 @@ +# Problem #459 [Medium] + +This problem was asked by Uber. + +Write a program that determines the smallest number of perfect squares that sum up to N. + +Here are a few examples: + +- Given N = 4, return 1 (4) +- Given N = 17, return 2 (16 + 1) +- Given N = 18, return 2 (9 + 9) diff --git a/Daily Coding Problem/00460/README.md b/Daily Coding Problem/00460/README.md new file mode 100644 index 00000000..bda71d4a --- /dev/null +++ b/Daily Coding Problem/00460/README.md @@ -0,0 +1,7 @@ +# Problem #460 [Medium] + +This problem was asked by LinkedIn. + +You are given a string consisting of the letters x and y, such as xyxxxyxyy. In addition, you have an operation called flip, which changes a single x to y or vice versa. + +Determine how many times you would need to apply this operation to ensure that all x's come before all y's. In the preceding example, it suffices to flip the second and sixth characters, so you should return 2. diff --git a/Daily Coding Problem/00461/README.md b/Daily Coding Problem/00461/README.md new file mode 100644 index 00000000..edc398fd --- /dev/null +++ b/Daily Coding Problem/00461/README.md @@ -0,0 +1,12 @@ +# Problem #461 [Medium] + +This problem was asked by Facebook. + +There is an N by M matrix of zeroes. Given N and M, write a function to count the number of ways of starting at the top-left corner and getting to the bottom-right corner. You can only move right or down. + +For example, given a 2 by 2 matrix, you should return 2, since there are two ways to get to the bottom-right: + +- Right, then down +- Down, then right + +Given a 5 by 5 matrix, there are 70 ways to get to the bottom-right. diff --git a/Daily Coding Problem/00462/README.md b/Daily Coding Problem/00462/README.md new file mode 100644 index 00000000..289d2e34 --- /dev/null +++ b/Daily Coding Problem/00462/README.md @@ -0,0 +1,7 @@ +# Problem #462 [Hard] + +This problem was asked by Oracle. + +We say a number is sparse if there are no adjacent ones in its binary representation. For example, 21 (10101) is sparse, but 22 (10110) is not. For a given input N, find the smallest sparse number greater than or equal to N. + +Do this in faster than O(N log N) time. diff --git a/Daily Coding Problem/00463/README.md b/Daily Coding Problem/00463/README.md new file mode 100644 index 00000000..b8e9fa5a --- /dev/null +++ b/Daily Coding Problem/00463/README.md @@ -0,0 +1,19 @@ +# Problem #463 [Easy] + +This problem was asked by Facebook. + +On a mysterious island there are creatures known as Quxes which come in three colors: red, green, and blue. One power of the Qux is that if two of them are standing next to each other, they can transform into a single creature of the third color. + +Given N Quxes standing in a line, determine the smallest number of them remaining after any possible sequence of such transformations. + +For example, given the input ['R', 'G', 'B', 'G', 'B'], it is possible to end up with a single Qux through the following steps: + +``` + Arrangement | Change +---------------------------------------- +['R', 'G', 'B', 'G', 'B'] | (R, G) -> B +['B', 'B', 'G', 'B'] | (B, G) -> R +['B', 'R', 'B'] | (R, B) -> G +['B', 'G'] | (B, G) -> R +['R'] | +``` diff --git a/Daily Coding Problem/00464/README.md b/Daily Coding Problem/00464/README.md new file mode 100644 index 00000000..86d2967c --- /dev/null +++ b/Daily Coding Problem/00464/README.md @@ -0,0 +1,7 @@ +# Problem #464 [Medium] + +This problem was asked by Google. + +Given a set of distinct positive integers, find the largest subset such that every pair of elements in the subset (i, j) satisfies either i % j = 0 or j % i = 0. + +For example, given the set [3, 5, 10, 20, 21], you should return [5, 10, 20]. Given [1, 3, 6, 24], return [1, 3, 6, 24]. diff --git a/Daily Coding Problem/00465/README.md b/Daily Coding Problem/00465/README.md new file mode 100644 index 00000000..08f011de --- /dev/null +++ b/Daily Coding Problem/00465/README.md @@ -0,0 +1,5 @@ +# Problem #465 [Easy] + +This problem was asked by Google. + +Given the head of a singly linked list, reverse it in-place. diff --git a/Daily Coding Problem/00466/README.md b/Daily Coding Problem/00466/README.md new file mode 100644 index 00000000..757a42bb --- /dev/null +++ b/Daily Coding Problem/00466/README.md @@ -0,0 +1,15 @@ +# Problem #466 [Easy] + +This problem was asked by Amazon. + +A tree is symmetric if its data and shape remain unchanged when it is reflected about the root node. The following tree is an example: + +``` + 4 + / | \ + 3 5 3 + / \ +9 9 +``` + +Given a k-ary tree, determine whether it is symmetric. diff --git a/Daily Coding Problem/00467/README.md b/Daily Coding Problem/00467/README.md new file mode 100644 index 00000000..9cb0ae47 --- /dev/null +++ b/Daily Coding Problem/00467/README.md @@ -0,0 +1,3 @@ +# Problem #467 [Medium] + +Given a real number n, find the square root of n. For example, given n = 9, return 3. diff --git a/Daily Coding Problem/00468/README.md b/Daily Coding Problem/00468/README.md new file mode 100644 index 00000000..e0bdbf0c --- /dev/null +++ b/Daily Coding Problem/00468/README.md @@ -0,0 +1,23 @@ +# Problem #468 [Medium] + +This problem was asked by Facebook. + +Given an N by N matrix, rotate it by 90 degrees clockwise. + +For example, given the following matrix: + +``` +[[1, 2, 3], + [4, 5, 6], + [7, 8, 9]] +``` + +you should return: + +``` +[[7, 4, 1], + [8, 5, 2], + [9, 6, 3]] +``` + +Follow-up: What if you couldn't use any extra space? diff --git a/Daily Coding Problem/00469/README.md b/Daily Coding Problem/00469/README.md new file mode 100644 index 00000000..c56197e8 --- /dev/null +++ b/Daily Coding Problem/00469/README.md @@ -0,0 +1,17 @@ +# Problem #469 [Medium] + +This problem was asked by Facebook. + +Mastermind is a two-player game in which the first player attempts to guess the secret code of the second. In this version, the code may be any six-digit number with all distinct digits. + +Each turn the first player guesses some number, and the second player responds by saying how many digits in this number correctly matched their location in the secret code. For example, if the secret code were 123456, then a guess of 175286 would score two, since 1 and 6 were correctly placed. + +Write an algorithm which, given a sequence of guesses and their scores, determines whether there exists some secret code that could have produced them. + +For example, for the following scores you should return True, since they correspond to the secret code 123456: + +{175286: 2, 293416: 3, 654321: 0} + +However, it is impossible for any key to result in the following scores, so in this case you should return False: + +{123456: 4, 345678: 4, 567890: 4} diff --git a/Daily Coding Problem/00470/README.md b/Daily Coding Problem/00470/README.md new file mode 100644 index 00000000..9ed02224 --- /dev/null +++ b/Daily Coding Problem/00470/README.md @@ -0,0 +1,11 @@ +# Problem #470 [Medium] + +This problem was asked by Google. + +Given an array of numbers and an index i, return the index of the nearest larger number of the number at index i, where distance is measured in array indices. + +For example, given [4, 1, 3, 5, 6] and index 0, you should return 3. + +If two distances to larger numbers are the equal, then return any one of them. If the array at i doesn't have a nearest larger integer, then return null. + +Follow-up: If you can preprocess the array, can you do this in constant time? diff --git a/Daily Coding Problem/00471/README.md b/Daily Coding Problem/00471/README.md new file mode 100644 index 00000000..2b6c4313 --- /dev/null +++ b/Daily Coding Problem/00471/README.md @@ -0,0 +1,5 @@ +# Problem #471 [Easy] + +This problem was asked by Amazon. + +Given an integer N, construct all possible binary search trees with N nodes. diff --git a/Daily Coding Problem/00472/README.md b/Daily Coding Problem/00472/README.md new file mode 100644 index 00000000..533337dc --- /dev/null +++ b/Daily Coding Problem/00472/README.md @@ -0,0 +1,9 @@ +# Problem #472 [Medium] + +This problem was asked by Facebook. + +Given the mapping a = 1, b = 2, ... z = 26, and an encoded message, count the number of ways it can be decoded. + +For example, the message '111' would give 3, since it could be decoded as 'aaa', 'ka', and 'ak'. + +You can assume that the messages are decodable. For example, '001' is not allowed. diff --git a/Daily Coding Problem/00473/README.md b/Daily Coding Problem/00473/README.md new file mode 100644 index 00000000..e1a34a75 --- /dev/null +++ b/Daily Coding Problem/00473/README.md @@ -0,0 +1,5 @@ +# Problem #473 [Medium] + +This problem was asked by Yahoo. + +Write an algorithm that computes the reversal of a directed graph. For example, if a graph consists of A -> B -> C, it should become A <- B <- C. diff --git a/Daily Coding Problem/00474/README.md b/Daily Coding Problem/00474/README.md new file mode 100644 index 00000000..9731acad --- /dev/null +++ b/Daily Coding Problem/00474/README.md @@ -0,0 +1,9 @@ +# Problem #474 [Hard] + +This problem was asked by Google. + +Find the minimum number of coins required to make n cents. + +You can use standard American denominations, that is, 1¢, 5¢, 10¢, and 25¢. + +For example, given n = 16, return 3 since we can make it with a 10¢, a 5¢, and a 1¢. diff --git a/Daily Coding Problem/00475/README.md b/Daily Coding Problem/00475/README.md new file mode 100644 index 00000000..87b901c0 --- /dev/null +++ b/Daily Coding Problem/00475/README.md @@ -0,0 +1,13 @@ +# Problem #475 [Medium] + +This problem was asked by Google. + +Implement locking in a binary tree. A binary tree node can be locked or unlocked only if all of its descendants or ancestors are not locked. + +Design a binary tree node class with the following methods: + +- is_locked, which returns whether the node is locked +- lock, which attempts to lock the node. If it cannot be locked, then it should return false. Otherwise, it should lock it and return true. +- unlock, which unlocks the node. If it cannot be unlocked, then it should return false. Otherwise, it should unlock it and return true. + +You may augment the node to add parent pointers or any other property you would like. You may assume the class is used in a single-threaded program, so there is no need for actual locks or mutexes. Each method should run in O(h), where h is the height of the tree. diff --git a/Daily Coding Problem/00476/README.md b/Daily Coding Problem/00476/README.md new file mode 100644 index 00000000..98839a1e --- /dev/null +++ b/Daily Coding Problem/00476/README.md @@ -0,0 +1,5 @@ +# Problem #476 [Medium] + +This problem was asked by Google. + +You are given an array of length n + 1 whose elements belong to the set {1, 2, ..., n}. By the pigeonhole principle, there must be a duplicate. Find it in linear time and space. diff --git a/Daily Coding Problem/00477/README.md b/Daily Coding Problem/00477/README.md new file mode 100644 index 00000000..8caa5f76 --- /dev/null +++ b/Daily Coding Problem/00477/README.md @@ -0,0 +1,14 @@ +# Problem #477 [Easy] + +This problem was asked by Dropbox. + +What does the below code snippet print out? How can we fix the anonymous functions to behave as we'd expect? + +``` +functions = [] +for i in range(10): + functions.append(lambda : i) + +for f in functions: + print(f()) +``` diff --git a/Daily Coding Problem/00478/README.md b/Daily Coding Problem/00478/README.md new file mode 100644 index 00000000..937be7df --- /dev/null +++ b/Daily Coding Problem/00478/README.md @@ -0,0 +1,5 @@ +# Problem #478 [Hard] + +This problem was asked by Google. + +Implement a file syncing algorithm for two computers over a low-bandwidth network. What if we know the files in the two computers are mostly the same? diff --git a/Daily Coding Problem/00479/README.md b/Daily Coding Problem/00479/README.md new file mode 100644 index 00000000..974d5132 --- /dev/null +++ b/Daily Coding Problem/00479/README.md @@ -0,0 +1,7 @@ +# Problem #479 [Easy] + +This problem was asked by Microsoft. + +Given a number in the form of a list of digits, return all possible permutations. + +For example, given [1,2,3], return [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]. diff --git a/Daily Coding Problem/00480/README.md b/Daily Coding Problem/00480/README.md new file mode 100644 index 00000000..9a40cdfa --- /dev/null +++ b/Daily Coding Problem/00480/README.md @@ -0,0 +1,9 @@ +# Problem #480 [Medium] + +This problem was asked by Microsoft. + +Given a dictionary of words and a string made up of those words (no spaces), return the original sentence in a list. If there is more than one possible reconstruction, return any of them. If there is no possible reconstruction, then return null. + +For example, given the set of words 'quick', 'brown', 'the', 'fox', and the string "thequickbrownfox", you should return ['the', 'quick', 'brown', 'fox']. + +Given the set of words 'bed', 'bath', 'bedbath', 'and', 'beyond', and the string "bedbathandbeyond", return either ['bed', 'bath', 'and', 'beyond] or ['bedbath', 'and', 'beyond']. diff --git a/Daily Coding Problem/00481/README.md b/Daily Coding Problem/00481/README.md new file mode 100644 index 00000000..aab93c80 --- /dev/null +++ b/Daily Coding Problem/00481/README.md @@ -0,0 +1,11 @@ +# Problem #481 [Hard] + +This problem was asked by Jane Street. + +Given an arithmetic expression in Reverse Polish Notation, write a program to evaluate it. + +The expression is given as a list of numbers and operands. For example: [5, 3, '+'] should return 5 + 3 = 8. + +For example, [15, 7, 1, 1, '+', '-', '/', 3, '*', 2, 1, 1, '+', '+', '-'] should return 5, since it is equivalent to ((15 / (7 - (1 + 1))) \* 3) - (2 + (1 + 1)) = 5. + +You can assume the given expression is always valid. diff --git a/Daily Coding Problem/00482/README.md b/Daily Coding Problem/00482/README.md new file mode 100644 index 00000000..47ec8989 --- /dev/null +++ b/Daily Coding Problem/00482/README.md @@ -0,0 +1,17 @@ +# Problem #482 [Medium] + +This problem was asked by Google. + +Given a binary search tree and a range [a, b] (inclusive), return the sum of the elements of the binary search tree within the range. + +For example, given the following tree: + +``` + 5 + / \ + 3 8 + / \ / \ +2 4 6 10 +``` + +and the range [4, 9], return 23 (5 + 4 + 6 + 8). diff --git a/Daily Coding Problem/00483/README.md b/Daily Coding Problem/00483/README.md new file mode 100644 index 00000000..b8708b35 --- /dev/null +++ b/Daily Coding Problem/00483/README.md @@ -0,0 +1,11 @@ +# Problem #483 [Easy] + +This problem was asked by Bloomberg. + +There are N prisoners standing in a circle, waiting to be executed. The executions are carried out starting with the kth person, and removing every successive kth person going clockwise until there is no one left. + +Given N and k, write an algorithm to determine where a prisoner should stand in order to be the last survivor. + +For example, if N = 5 and k = 2, the order of executions would be [2, 4, 1, 5, 3], so you should return 3. + +Bonus: Find an O(log N) solution if k = 2. diff --git a/Daily Coding Problem/00484/README.md b/Daily Coding Problem/00484/README.md new file mode 100644 index 00000000..b2764de5 --- /dev/null +++ b/Daily Coding Problem/00484/README.md @@ -0,0 +1,5 @@ +# Problem #484 [Medium] + +This problem was asked by Dropbox. + +Given the root to a binary search tree, find the second largest node in the tree. diff --git a/Daily Coding Problem/00485/README.md b/Daily Coding Problem/00485/README.md new file mode 100644 index 00000000..1e05483a --- /dev/null +++ b/Daily Coding Problem/00485/README.md @@ -0,0 +1,7 @@ +# Problem #485 [Hard] + +This problem was asked by Amazon. + +Given an integer k and a string s, find the length of the longest substring that contains at most k distinct characters. + +For example, given s = "abcba" and k = 2, the longest substring with k distinct characters is "bcb". diff --git a/Daily Coding Problem/00486/README.md b/Daily Coding Problem/00486/README.md new file mode 100644 index 00000000..6e501241 --- /dev/null +++ b/Daily Coding Problem/00486/README.md @@ -0,0 +1,7 @@ +# Problem #486 [Medium] + +This problem was asked by Pinterest. + +At a party, there is a single person who everyone knows, but who does not know anyone in return (the "celebrity"). To help figure out who this is, you have access to an O(1) method called knows(a, b), which returns True if person a knows person b, else False. + +Given a list of N people and the above operation, find a way to identify the celebrity in O(N) time. diff --git a/Daily Coding Problem/00487/README.md b/Daily Coding Problem/00487/README.md new file mode 100644 index 00000000..c3384f17 --- /dev/null +++ b/Daily Coding Problem/00487/README.md @@ -0,0 +1,15 @@ +# Problem #487 [Medium] + +This problem was asked by Yext. + +Two nodes in a binary tree can be called cousins if they are on the same level of the tree but have different parents. For example, in the following diagram 4 and 6 are cousins. + +``` + 1 + / \ + 2 3 + / \ \ +4 5 6 +``` + +Given a binary tree and a particular node, find all cousins of that node. diff --git a/Daily Coding Problem/00488/README.md b/Daily Coding Problem/00488/README.md new file mode 100644 index 00000000..d42bdaac --- /dev/null +++ b/Daily Coding Problem/00488/README.md @@ -0,0 +1,7 @@ +# Problem #488 [Hard] + +This problem was asked by Netflix. + +Implement a queue using a set of fixed-length arrays. + +The queue should support enqueue, dequeue, and get_size operations. diff --git a/Daily Coding Problem/00489/README.md b/Daily Coding Problem/00489/README.md new file mode 100644 index 00000000..9a88632e --- /dev/null +++ b/Daily Coding Problem/00489/README.md @@ -0,0 +1,7 @@ +# Problem #489 [Easy] + +This problem was asked by Google. + +Given an array of elements, return the length of the longest subarray where all its elements are distinct. + +For example, given the array [5, 1, 3, 5, 2, 3, 4, 1], return 5 as the longest subarray of distinct elements is [5, 2, 3, 4, 1]. diff --git a/Daily Coding Problem/00490/README.md b/Daily Coding Problem/00490/README.md new file mode 100644 index 00000000..9cf0d138 --- /dev/null +++ b/Daily Coding Problem/00490/README.md @@ -0,0 +1,29 @@ +# Problem #490 [Medium] + +This problem was asked by Yelp. + +The horizontal distance of a binary tree node describes how far left or right the node will be when the tree is printed out. + +More rigorously, we can define it as follows: + +- The horizontal distance of the root is 0. +- The horizontal distance of a left child is hd(parent) - 1. +- The horizontal distance of a right child is hd(parent) + 1. + +For example, for the following tree, hd(1) = -2, and hd(6) = 0. + +``` + 5 + / \ + 3 7 + / \ / \ + 1 4 6 9 + / / + 0 8 +``` + +The bottom view of a tree, then, consists of the lowest node at each horizontal distance. If there are two nodes at the same depth and horizontal distance, either is acceptable. + +For this tree, for example, the bottom view could be [0, 1, 3, 6, 8, 9]. + +Given the root to a binary tree, return its bottom view. diff --git a/Daily Coding Problem/00491/README.md b/Daily Coding Problem/00491/README.md new file mode 100644 index 00000000..9e6a1308 --- /dev/null +++ b/Daily Coding Problem/00491/README.md @@ -0,0 +1,5 @@ +# Problem #491 [Easy] + +This problem was asked by Palantir. + +Write a program that checks whether an integer is a palindrome. For example, 121 is a palindrome, as well as 888. 678 is not a palindrome. Do not convert the integer into a string. diff --git a/Daily Coding Problem/00492/README.md b/Daily Coding Problem/00492/README.md new file mode 100644 index 00000000..2994b4eb --- /dev/null +++ b/Daily Coding Problem/00492/README.md @@ -0,0 +1,5 @@ +# Problem #492 [Medium] + +This problem was asked by Google. + +Given an undirected graph represented as an adjacency matrix and an integer k, write a function to determine whether each vertex in the graph can be colored such that no two adjacent vertices share the same color using at most k colors. diff --git a/Daily Coding Problem/00493/README.md b/Daily Coding Problem/00493/README.md new file mode 100644 index 00000000..4655ed75 --- /dev/null +++ b/Daily Coding Problem/00493/README.md @@ -0,0 +1,9 @@ +# Problem #493 [Medium] + +This problem was asked by Triplebyte. + +You are given n numbers as well as n probabilities that sum up to 1. Write a function to generate one of the numbers with its corresponding probability. + +For example, given the numbers [1, 2, 3, 4] and probabilities [0.1, 0.5, 0.2, 0.2], your function should return 1 10% of the time, 2 50% of the time, and 3 and 4 20% of the time. + +You can generate random numbers between 0 and 1 uniformly. diff --git a/Daily Coding Problem/00494/README.md b/Daily Coding Problem/00494/README.md new file mode 100644 index 00000000..2b5c113f --- /dev/null +++ b/Daily Coding Problem/00494/README.md @@ -0,0 +1,9 @@ +# Problem #494 [Medium] + +This problem was asked by Facebook. + +Given a circular array, compute its maximum subarray sum in O(n) time. A subarray can be empty, and in this case the sum is 0. + +For example, given [8, -1, 3, 4], return 15 as we choose the numbers 3, 4, and 8 where the 8 is obtained from wrapping around. + +Given [-4, 5, 1, 0], return 6 as we choose the numbers 5 and 1. diff --git a/Daily Coding Problem/00495/README.md b/Daily Coding Problem/00495/README.md new file mode 100644 index 00000000..09922d15 --- /dev/null +++ b/Daily Coding Problem/00495/README.md @@ -0,0 +1,5 @@ +# Problem #495 [Medium] + +This problem was asked by Facebook. + +Given a stream of elements too large to store in memory, pick a random element from the stream with uniform probability. diff --git a/Daily Coding Problem/00496/README.md b/Daily Coding Problem/00496/README.md new file mode 100644 index 00000000..791f00c6 --- /dev/null +++ b/Daily Coding Problem/00496/README.md @@ -0,0 +1,5 @@ +# Problem #496 [Easy] + +This problem was asked by Pivotal. + +Write an algorithm that finds the total number of set bits in all integers between 1 and N. diff --git a/Daily Coding Problem/00497/README.md b/Daily Coding Problem/00497/README.md new file mode 100644 index 00000000..553ff31f --- /dev/null +++ b/Daily Coding Problem/00497/README.md @@ -0,0 +1,27 @@ +# Problem #497 [Medium] + +This problem was asked by Yahoo. + +Recall that a full binary tree is one in which each node is either a leaf node, or has two children. Given a binary tree, convert it to a full one by removing nodes with only one child. + +For example, given the following tree: + +``` + 0 + / \ + 1 2 + / \ +3 4 + \ / \ + 5 6 7 +``` + +You should convert it to: + +``` + 0 + / \ +5 4 + / \ + 6 7 +``` diff --git a/Daily Coding Problem/00498/README.md b/Daily Coding Problem/00498/README.md new file mode 100644 index 00000000..30ceda57 --- /dev/null +++ b/Daily Coding Problem/00498/README.md @@ -0,0 +1,5 @@ +# Problem #498 [Easy] + +This problem was asked by WhatsApp. + +Given an array of integers out of order, determine the bounds of the smallest window that must be sorted in order for the entire array to be sorted. For example, given [3, 7, 5, 6, 9], you should return (1, 3). diff --git a/Daily Coding Problem/00499/README.md b/Daily Coding Problem/00499/README.md new file mode 100644 index 00000000..c79199f8 --- /dev/null +++ b/Daily Coding Problem/00499/README.md @@ -0,0 +1,12 @@ +# Problem #499 [Easy] + +This problem was asked by Palantir. + +A typical American-style crossword puzzle grid is an N x N matrix with black and white squares, which obeys the following rules: + +- Every white square must be part of an "across" word and a "down" word. +- No word can be fewer than three letters long. +- Every white square must be reachable from every other white square. +- The grid is rotationally symmetric (for example, the colors of the top left and bottom right squares must match). + +Write a program to determine whether a given matrix qualifies as a crossword grid. diff --git a/Daily Coding Problem/00500/README.md b/Daily Coding Problem/00500/README.md new file mode 100644 index 00000000..bc23e2d5 --- /dev/null +++ b/Daily Coding Problem/00500/README.md @@ -0,0 +1,18 @@ +# Problem #500 [Easy] + +This problem was asked by Google. + +You are given an M by N matrix consisting of booleans that represents a board. Each True boolean represents a wall. Each False boolean represents a tile you can walk on. + +Given this matrix, a start coordinate, and an end coordinate, return the minimum number of steps required to reach the end coordinate from the start. If there is no possible path, then return null. You can move up, left, down, and right. You cannot move through walls. You cannot wrap around the edges of the board. + +For example, given the following board: + +``` +[[f, f, f, f], +[t, t, f, t], +[f, f, f, f], +[f, f, f, f]] +``` + +and start = (3, 0) (bottom left) and end = (0, 0) (top left), the minimum number of steps required to reach the end is 7, since we would need to go through (1, 2) because there is a wall everywhere else on the second row. diff --git a/Daily Coding Problem/00501/README.md b/Daily Coding Problem/00501/README.md new file mode 100644 index 00000000..372340f3 --- /dev/null +++ b/Daily Coding Problem/00501/README.md @@ -0,0 +1,9 @@ +# Problem #501 [Medium] + +This problem was asked by Facebook. + +Given a function that generates perfectly random numbers between 1 and k (inclusive), where k is an input, write a function that shuffles a deck of cards represented as an array using only swaps. + +It should run in O(N) time. + +Hint: Make sure each one of the 52! permutations of the deck is equally likely. diff --git a/Daily Coding Problem/00502/README.md b/Daily Coding Problem/00502/README.md new file mode 100644 index 00000000..021cd461 --- /dev/null +++ b/Daily Coding Problem/00502/README.md @@ -0,0 +1,5 @@ +# Problem #502 [Easy] + +This problem was asked by PayPal. + +Given a binary tree, determine whether or not it is height-balanced. A height-balanced binary tree can be defined as one in which the heights of the two subtrees of any node never differ by more than one. diff --git a/Daily Coding Problem/00503/README.md b/Daily Coding Problem/00503/README.md new file mode 100644 index 00000000..82cca15b --- /dev/null +++ b/Daily Coding Problem/00503/README.md @@ -0,0 +1,12 @@ +# Problem 253 + +This problem was asked by PayPal. + +Given a string and a number of lines k, print the string in zigzag form. In zigzag, characters are printed out diagonally from top left to bottom right until reaching the kth line, then back up to top right, and so on. + +For example, given the sentence "thisisazigzag" and k = 4, you should print: + +t a g +h s z a +i i i z +s g diff --git a/Daily Coding Problem/00504/README.md b/Daily Coding Problem/00504/README.md new file mode 100644 index 00000000..5916f4c3 --- /dev/null +++ b/Daily Coding Problem/00504/README.md @@ -0,0 +1,7 @@ +# Problem #503 [Medium] + +This problem was asked by Google. + +Given a linked list, sort it in O(n log n) time and constant space. + +For example, the linked list 4 -> 1 -> -3 -> 99 should become -3 -> 1 -> 4 -> 99. diff --git a/Daily Coding Problem/00505/README.md b/Daily Coding Problem/00505/README.md new file mode 100644 index 00000000..932cea31 --- /dev/null +++ b/Daily Coding Problem/00505/README.md @@ -0,0 +1,5 @@ +# Problem #505 [Easy] + +This problem was asked by Amazon. + +Given an array and a number k that's smaller than the length of the array, rotate the array to the right k elements in-place. diff --git a/Daily Coding Problem/00506/README.md b/Daily Coding Problem/00506/README.md new file mode 100644 index 00000000..9df64b0c --- /dev/null +++ b/Daily Coding Problem/00506/README.md @@ -0,0 +1,5 @@ +# Problem #506 [Medium] + +This problem was asked by Fitbit. + +Given a linked list, rearrange the node values such that they appear in alternating low -> high -> low -> high ... form. For example, given 1 -> 2 -> 3 -> 4 -> 5, you should return 1 -> 3 -> 2 -> 5 -> 4. diff --git a/Daily Coding Problem/00507/README.md b/Daily Coding Problem/00507/README.md new file mode 100644 index 00000000..a8a82374 --- /dev/null +++ b/Daily Coding Problem/00507/README.md @@ -0,0 +1,5 @@ +# Problem #507 [Easy] + +This problem was asked by Uber. + +On election day, a voting machine writes data in the form (voter_id, candidate_id) to a text file. Write a program that reads this file as a stream and returns the top 3 candidates at any given time. If you find a voter voting more than once, report this as fraud. diff --git a/Daily Coding Problem/00508/README.md b/Daily Coding Problem/00508/README.md new file mode 100644 index 00000000..ceace529 --- /dev/null +++ b/Daily Coding Problem/00508/README.md @@ -0,0 +1,7 @@ +# Problem #508 [Medium] + +This problem was asked by Dropbox. + +Create an algorithm to efficiently compute the approximate median of a list of numbers. + +More precisely, given an unordered list of N numbers, find an element whose rank is between N / 4 and 3 \* N / 4, with a high level of certainty, in less than O(N) time. diff --git a/Daily Coding Problem/00509/README.md b/Daily Coding Problem/00509/README.md new file mode 100644 index 00000000..811bc735 --- /dev/null +++ b/Daily Coding Problem/00509/README.md @@ -0,0 +1,9 @@ +# Problem #509 [Medium] + +This problem was asked by Quora. + +Given a string, find the palindrome that can be made by inserting the fewest number of characters as possible anywhere in the word. If there is more than one palindrome of minimum length that can be made, return the lexicographically earliest one (the first one alphabetically). + +For example, given the string "race", you should return "ecarace", since we can add three letters to it (which is the smallest amount to make a palindrome). There are seven other palindromes that can be made from "race" by adding three letters, but "ecarace" comes first alphabetically. + +As another example, given the string "google", you should return "elgoogle". diff --git a/Daily Coding Problem/00510/README.md b/Daily Coding Problem/00510/README.md new file mode 100644 index 00000000..8c59ada4 --- /dev/null +++ b/Daily Coding Problem/00510/README.md @@ -0,0 +1,7 @@ +# Problem #510 [Hard] + +This problem was asked by Airbnb. + +Given a list of words, find all pairs of unique indices such that the concatenation of the two words is a palindrome. + +For example, given the list ["code", "edoc", "da", "d"], return [(0, 1), (1, 0), (2, 3)]. diff --git a/Daily Coding Problem/00511/README.md b/Daily Coding Problem/00511/README.md new file mode 100644 index 00000000..764bdc75 --- /dev/null +++ b/Daily Coding Problem/00511/README.md @@ -0,0 +1,7 @@ +# Problem #511 [Medium] + +This problem was asked by Yelp. + +You are given an array of integers, where each element represents the maximum number of steps that can be jumped going forward from that element. Write a function to return the minimum number of jumps you must take in order to get from the start to the end of the array. + +For example, given [6, 2, 4, 0, 5, 1, 1, 4, 2, 9], you should return 2, as the optimal solution involves jumping from 6 to 5, and then from 5 to 9. diff --git a/Daily Coding Problem/00512/README.md b/Daily Coding Problem/00512/README.md new file mode 100644 index 00000000..4804dd2d --- /dev/null +++ b/Daily Coding Problem/00512/README.md @@ -0,0 +1,9 @@ +# Problem #512 [Medium] + +This problem was asked by Google. + +You are given an array of nonnegative integers. Let's say you start at the beginning of the array and are trying to advance to the end. You can advance at most, the number of steps that you're currently on. Determine whether you can get to the end of the array. + +For example, given the array [1, 3, 1, 2, 0, 1], we can go from indices 0 -> 1 -> 3 -> 5, so return true. + +Given the array [1, 2, 1, 0, 0], we can't reach the end, so return false. diff --git a/Daily Coding Problem/00513/README.md b/Daily Coding Problem/00513/README.md new file mode 100644 index 00000000..37cf28ce --- /dev/null +++ b/Daily Coding Problem/00513/README.md @@ -0,0 +1,7 @@ +# Problem #513 [Medium] + +This problem was asked by Lyft. + +Given a list of integers and a number K, return which contiguous elements of the list sum to K. + +For example, if the list is [1, 2, 3, 4, 5] and K is 9, then it should return [2, 3, 4], since 2 + 3 + 4 = 9. diff --git a/Daily Coding Problem/00514/README.md b/Daily Coding Problem/00514/README.md new file mode 100644 index 00000000..61259766 --- /dev/null +++ b/Daily Coding Problem/00514/README.md @@ -0,0 +1,9 @@ +# Problem #514 [Medium] + +This problem was asked by Microsoft. + +Given an unsorted array of integers, find the length of the longest consecutive elements sequence. + +For example, given [100, 4, 200, 1, 3, 2], the longest consecutive element sequence is [1, 2, 3, 4]. Return its length: 4. + +Your algorithm should run in O(n) complexity. diff --git a/Daily Coding Problem/00515/README.md b/Daily Coding Problem/00515/README.md new file mode 100644 index 00000000..9fb63a82 --- /dev/null +++ b/Daily Coding Problem/00515/README.md @@ -0,0 +1,7 @@ +# Problem #515 [Medium] + +This problem was asked by LinkedIn. + +Given a linked list of numbers and a pivot k, partition the linked list so that all nodes less than k come before nodes greater than or equal to k. + +For example, given the linked list 5 -> 1 -> 8 -> 0 -> 3 and k = 3, the solution could be 1 -> 0 -> 5 -> 8 -> 3. diff --git a/Daily Coding Problem/00516/README.md b/Daily Coding Problem/00516/README.md new file mode 100644 index 00000000..67d6d876 --- /dev/null +++ b/Daily Coding Problem/00516/README.md @@ -0,0 +1,5 @@ +# Problem #516 [Easy] + +This problem was asked by Zillow. + +Let's define a "sevenish" number to be one which is either a power of 7, or the sum of unique powers of 7. The first few sevenish numbers are 1, 7, 8, 49, and so on. Create an algorithm to find the nth sevenish number. diff --git a/Daily Coding Problem/00517/README.md b/Daily Coding Problem/00517/README.md new file mode 100644 index 00000000..87663f74 --- /dev/null +++ b/Daily Coding Problem/00517/README.md @@ -0,0 +1,11 @@ +# Problem #517 [Easy] + +This problem was asked by Google. + +Given two singly linked lists that intersect at some point, find the intersecting node. The lists are non-cyclical. + +For example, given A = 3 -> 7 -> 8 -> 10 and B = 99 -> 1 -> 8 -> 10, return the node with value 8. + +In this example, assume nodes with the same value are the exact same node objects. + +Do this in O(M + N) time (where M and N are the lengths of the lists) and constant space. diff --git a/Daily Coding Problem/00518/README.md b/Daily Coding Problem/00518/README.md new file mode 100644 index 00000000..bd08aee3 --- /dev/null +++ b/Daily Coding Problem/00518/README.md @@ -0,0 +1,5 @@ +# Problem #518 [Easy] + +This problem was asked by Microsoft. + +Given an array of numbers and a number k, determine if there are three entries in the array which add up to the specified number k. For example, given [20, 303, 3, 4, 25] and k = 49, return true as 20 + 4 + 25 = 49. diff --git a/Daily Coding Problem/00519/README.md b/Daily Coding Problem/00519/README.md new file mode 100644 index 00000000..8ac92b8b --- /dev/null +++ b/Daily Coding Problem/00519/README.md @@ -0,0 +1,5 @@ +# Problem #519 [Medium] + +This problem was asked by Facebook. + +Given three 32-bit integers x, y, and b, return x if b is 1 and y if b is 0, using only mathematical or bit operations. You can assume b can only be 1 or 0. diff --git a/Daily Coding Problem/00520/README.md b/Daily Coding Problem/00520/README.md new file mode 100644 index 00000000..e1494999 --- /dev/null +++ b/Daily Coding Problem/00520/README.md @@ -0,0 +1,15 @@ +# Problem #520 [Hard] + +This problem was asked by LinkedIn. + +You are given a binary tree in a peculiar string representation. Each node is written in the form (lr), where l corresponds to the left child and r corresponds to the right child. + +If either l or r is null, it will be represented as a zero. Otherwise, it will be represented by a new (lr) pair. + +Here are a few examples: + +- A root node with no children: (00) +- A root node with two children: ((00)(00)) +- An unbalanced tree with three consecutive left children: ((((00)0)0)0) + +Given this representation, determine the depth of the tree. diff --git a/Practice/Daily Coding Problem/00253/README.md b/Daily Coding Problem/00521/README.md similarity index 89% rename from Practice/Daily Coding Problem/00253/README.md rename to Daily Coding Problem/00521/README.md index cfc7f45d..cd5e261e 100644 --- a/Practice/Daily Coding Problem/00253/README.md +++ b/Daily Coding Problem/00521/README.md @@ -1,10 +1,14 @@ +# Problem #521 [Medium] + This problem was asked by PayPal. Given a string and a number of lines k, print the string in zigzag form. In zigzag, characters are printed out diagonally from top left to bottom right until reaching the kth line, then back up to top right, and so on. For example, given the sentence "thisisazigzag" and k = 4, you should print: +``` t a g h s z a i i i z - s g \ No newline at end of file + s g +``` diff --git a/Daily Coding Problem/00522/README.md b/Daily Coding Problem/00522/README.md new file mode 100644 index 00000000..ac598090 --- /dev/null +++ b/Daily Coding Problem/00522/README.md @@ -0,0 +1,5 @@ +# Problem #522 [Medium] + +This problem was asked by Microsoft. + +Given a string and a pattern, find the starting indices of all occurrences of the pattern in the string. For example, given the string "abracadabra" and the pattern "abr", you should return [0, 7]. diff --git a/Daily Coding Problem/00523/README.md b/Daily Coding Problem/00523/README.md new file mode 100644 index 00000000..0cbb9ccf --- /dev/null +++ b/Daily Coding Problem/00523/README.md @@ -0,0 +1,8 @@ +# Problem #523 [Easy] + +This problem was asked by Jane Street. + +Given integers M and N, write a program that counts how many positive integer pairs (a, b) satisfy the following conditions: + +- `a + b = M` +- `a XOR b = N` diff --git a/Daily Coding Problem/00524/README.md b/Daily Coding Problem/00524/README.md new file mode 100644 index 00000000..a7165a15 --- /dev/null +++ b/Daily Coding Problem/00524/README.md @@ -0,0 +1,11 @@ +# Problem #524 [Medium] + +This problem was asked by Amazon. + +Given an array of numbers, find the maximum sum of any contiguous subarray of the array. + +For example, given the array [34, -50, 42, 14, -5, 86], the maximum sum would be 137, since we would take elements 42, 14, -5, and 86. + +Given the array [-5, -1, -8, -9], the maximum sum would be 0, since we would not take any elements. + +Do this in O(N) time. diff --git a/Daily Coding Problem/00525/README.md b/Daily Coding Problem/00525/README.md new file mode 100644 index 00000000..685be6db --- /dev/null +++ b/Daily Coding Problem/00525/README.md @@ -0,0 +1,39 @@ +# Problem #525 [Easy] + +This problem was asked by Amazon. + +Given a N by M matrix of numbers, print out the matrix in a clockwise spiral. + +For example, given the following matrix: + +``` +[[1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20]] +``` + +You should print out the following: + +``` +1 +2 +3 +4 +5 +10 +15 +20 +19 +18 +17 +16 +11 +6 +7 +8 +9 +14 +13 +12 +``` diff --git a/Daily Coding Problem/00526/Readme.md b/Daily Coding Problem/00526/Readme.md new file mode 100644 index 00000000..963bf65a --- /dev/null +++ b/Daily Coding Problem/00526/Readme.md @@ -0,0 +1,31 @@ +# Policemen catch thieves + +Given an array of size n that has the following specifications: + +Each element in the array contains either a policeman or a thief. +Each policeman can catch only one thief. +A policeman cannot catch a thief who is more than K units away from the policeman. +We need to find the maximum number of thieves that can be caught. +Examples: + +```bash +Input : arr[] = {'P', 'T', 'T', 'P', 'T'}, + k = 1. +Output : 2. +``` + +Here maximum 2 thieves can be caught, first +policeman catches first thief and second police- +man can catch either second or third thief. + +``` +Input : arr[] = {'T', 'T', 'P', 'P', 'T', 'P'}, + k = 2. +Output : 3. +``` + +``` +Input : arr[] = {'P', 'T', 'P', 'T', 'T', 'P'}, + k = 3. +Output : 3. +``` diff --git a/Daily Coding Problem/00526/Solution.py b/Daily Coding Problem/00526/Solution.py new file mode 100644 index 00000000..1c7cef46 --- /dev/null +++ b/Daily Coding Problem/00526/Solution.py @@ -0,0 +1,58 @@ +# Python3 program to find maximum +# number of thieves caught + +# Returns maximum number of thieves +# that can be caught. +def policeThief(arr, n, k): + i = 0 + l = 0 + r = 0 + res = 0 + thi = [] + pol = [] + + # store indices in list + while i < n: + if arr[i] == 'P': + pol.append(i) + elif arr[i] == 'T': + thi.append(i) + i += 1 + + # track lowest current indices of + # thief: thi[l], police: pol[r] + while l < len(thi) and r < len(pol): + + # can be caught + if (abs( thi[l] - pol[r] ) <= k): + res += 1 + l += 1 + r += 1 + + # increment the minimum index + elif thi[l] < pol[r]: + l += 1 + else: + r += 1 + + return res + +# Driver program +if __name__=='__main__': + arr1 = ['P', 'T', 'T', 'P', 'T'] + k = 2 + n = len(arr1) + print(("Maximum thieves caught: {}". + format(policeThief(arr1, n, k)))) + + arr2 = ['T', 'T', 'P', 'P', 'T', 'P'] + k = 2 + n = len(arr2) + print(("Maximum thieves caught: {}". + format(policeThief(arr2, n, k)))) + + arr3 = ['P', 'T', 'P', 'T', 'T', 'P'] + k = 3 + n = len(arr3) + print(("Maximum thieves caught: {}". + format(policeThief(arr3, n, k)))) diff --git a/Data Structures/03 Stack/Stack.cpp b/Data Structures/03 Stack/Stack.cpp new file mode 100644 index 00000000..cd5d8436 --- /dev/null +++ b/Data Structures/03 Stack/Stack.cpp @@ -0,0 +1,125 @@ +#include +#include +using namespace std; + +// define size capacity of the stack +#define SIZE 10 + +// Class for stack +class stack +{ + int *arr; + int top; + int capacity; + +public: + // constructor + stack(int size = SIZE); + // destructor + ~stack(); + + void push(int); + int pop(); + int peek(); + + int size(); + bool isEmpty(); + bool isFull(); +}; + +// Constructor to initialize stack +stack::stack(int size) +{ + arr = new int[size]; + capacity = size; + top = -1; +} + +// Destructor to free memory allocated to the stack +stack::~stack() +{ + delete arr; +} + +//Function to add an element x in the stack +void stack::push(int x) +{ + if (isFull()) + { + cout << "OverFlow\nProgram Terminated\n"; + exit(EXIT_FAILURE); + } + + cout << "Inserting " << x << endl; + arr[++top] = x; +} + +//Function to pop top element from the stack +int stack::pop() +{ + // check for stack underflow + if (isEmpty()) + { + cout << "UnderFlow\nProgram Terminated\n"; + exit(EXIT_FAILURE); + } + + cout << "Removing " << peek() << endl; + + // decrease stack size by 1 and return the popped element if required + return arr[top--]; +} + +//Function to return top element in a stack +int stack::peek() +{ + if (!isEmpty()) + return arr[top]; + else + exit(EXIT_FAILURE); +} + +//Function to return the size of the stack +int stack::size() +{ + return top + 1; +} + +//Function to check if the stack is empty or not +bool stack::isEmpty() +{ + return top == -1; // or return size() == 0; +} + +//Function to check if the stack is full or not +bool stack::isFull() +{ + return top == capacity - 1; // or return size() == capacity; +} + +// Driver unction +int main() +{ + stack pt(3); + + pt.push(1); + pt.push(2); + + pt.pop(); + pt.pop(); + + pt.push(3); + + cout << "Top element is: " << pt.peek() << endl; + + cout << "Stack size is " << pt.size() << endl; + + pt.pop(); + + if (pt.isEmpty()) + cout << "Stack Is Empty\n"; + else + cout << "Stack Is Not Empty\n"; + + return 0; +} \ No newline at end of file diff --git a/Data Structures/04 Linked List/README.md b/Data Structures/04 Linked List/README.md index 24adeab0..2f14ea7a 100644 --- a/Data Structures/04 Linked List/README.md +++ b/Data Structures/04 Linked List/README.md @@ -1,9 +1,9 @@ # Introduction -- A linkedlist is a collection of nodes that forms a linear sequence. -- Each Node has 2 parts: Data and reference to next node. -- Time Complexity: - - Insert: `O(n)` - - Delete: `O(n)` - - Access: `O(n)` - - Search: `O(n)` +- A linkedlist is a collection of nodes that forms a linear sequence. +- Each Node has 2 parts: Data and reference to next node. +- Time Complexity: + - Insert: `O(n)` + - Delete: `O(n)` + - Access: `O(n)` + - Search: `O(n)` diff --git a/Data Structures/04 Linked List/reverseSLL.cpp b/Data Structures/04 Linked List/reverseSLL.cpp new file mode 100644 index 00000000..5edcb2b3 --- /dev/null +++ b/Data Structures/04 Linked List/reverseSLL.cpp @@ -0,0 +1,78 @@ +// Iterative C++ program to reverse +// a linked list +#include +using namespace std; + +/* Link list node */ +struct Node { + int data; + struct Node* next; + Node(int data) + { + this->data = data; + next = NULL; + } +}; + +struct LinkedList { + Node* head; + LinkedList() { head = NULL; } + + /* Function to reverse the linked list */ + void reverse() + { + // Initialize current, previous and + // next pointers + Node* current = head; + Node *prev = NULL, *next = NULL; + + while (current != NULL) { + // Store next + next = current->next; + + // Reverse current node's pointer + current->next = prev; + + // Move pointers one position ahead. + prev = current; + current = next; + } + head = prev; + } + + /* Function to print linked list */ + void print() + { + struct Node* temp = head; + while (temp != NULL) { + cout << temp->data << " "; + temp = temp->next; + } + } + + void push(int data) + { + Node* temp = new Node(data); + temp->next = head; + head = temp; + } +}; + +int main() +{ + /* Start with the empty list */ + LinkedList ll; + ll.push(20); + ll.push(4); + ll.push(15); + ll.push(85); + + cout << "Given linked list\n"; + ll.print(); + + ll.reverse(); + + cout << "\nReversed Linked list \n"; + ll.print(); + return 0; +} diff --git a/Data Structures/06 Graph/README.md b/Data Structures/06 Graph/README.md index 8cc1e0ae..43062edb 100644 --- a/Data Structures/06 Graph/README.md +++ b/Data Structures/06 Graph/README.md @@ -1,33 +1,38 @@ # Introduction + A graph is a data structure that consists of 2 components. 1. A finite set of vertices called nodes. 2. A finite set of ordered pair(u, v) called edges. # Graph Representation + 1. Adjacency Matrix 2. Adjacency List ## Adjacency Matrix + It is a 2D array of size V x V (V = Number of vertices) -- M[i][j] = 1 if pair(i, j) exists -- M[i][j] = 0 otherwise -- Complexity: - - Space: `O(V ** 2)` - - Check Edge: `O(1)` +- M[i][j] = 1 if pair(i, j) exists +- M[i][j] = 0 otherwise +- Complexity: + - Space: `O(V ** 2)` + - Check Edge: `O(1)` ![](https://www.geeksforgeeks.org/wp-content/uploads/adjacency_matrix_representation.png) ## Adjacency List + It is the array of linked list (dictionary of list in python). -- Complexity: - - Space: `O(V + E)` +- Complexity: + - Space: `O(V + E)` ![](https://www.geeksforgeeks.org/wp-content/uploads/adjacency_list_representation.png) # Breadth First Traversal or BFS for a Graph + It is a traversing algorithm that is used to traverse the nodes layerwise. Queue is used in this algorithm. 1. Mark all connected nodes with the current node as visited. @@ -36,6 +41,7 @@ It is a traversing algorithm that is used to traverse the nodes layerwise. Queue ![](https://he-s3.s3.amazonaws.com/media/uploads/fdec3c2.jpg) # Depth First Traversal or DFS for a Graph + It is an algorithm for traversing that explores nodes as far as possible along each branch before backtracking. Stack is used in this algorithm. -![](https://he-s3.s3.amazonaws.com/media/uploads/9fa1119.jpg) \ No newline at end of file +![](https://he-s3.s3.amazonaws.com/media/uploads/9fa1119.jpg) diff --git a/Data Structures/07 Disjoint Set/DisjointSet.cpp b/Data Structures/07 Disjoint Set/DisjointSet.cpp new file mode 100644 index 00000000..609328c5 --- /dev/null +++ b/Data Structures/07 Disjoint Set/DisjointSet.cpp @@ -0,0 +1,77 @@ +#include +using namespace std; + +struct disjointSetNode { + int data; + int rank; + struct disjointSetNode* parent; + int frequency; +}; + +map disjointSet; + +void makeSet(int element) { + struct disjointSetNode* root = new disjointSetNode; + root->data = element; + root->rank = 0; + root->parent = root; + root->frequency = 1; + disjointSet[element] = root; +} + +struct disjointSetNode* findSet(struct disjointSetNode* root) { + struct disjointSetNode* parent = root->parent; + if(parent == root) { + return parent; + } + root->parent = findSet(root->parent); + return root->parent; +} + +void Union(int element1, int element2) { + struct disjointSetNode* parent1 = findSet(disjointSet[element1]); + struct disjointSetNode* parent2 = findSet(disjointSet[element2]); + + if(parent1->data == parent2->data) { + return; + } + + if(parent1->rank >= parent2->rank) { + parent1->rank = (parent1->rank = parent2->rank) ? parent1->rank + 1 : parent1->rank; + parent2->parent = parent1; + parent1->frequency += parent2->frequency; + } + else { + parent1->parent = parent2; + parent2->frequency += parent1->frequency; + } + return; +} + +int elementsInSet(int element) { + struct disjointSetNode* root = disjointSet[element]->parent; + while(root->parent != root) { + root = root->parent; + } + return root->frequency; +} + +int main() { + makeSet(1); + makeSet(2); + makeSet(3); + makeSet(4); + makeSet(5); + makeSet(6); + makeSet(7); + + Union(1,2); + Union(2,3); + Union(4,5); + Union(5,6); + Union(3,4); + + findSet(disjointSet[1]); + + cout << elementsInSet(1); +} diff --git a/Data Structures/08 Recursion/nQueen.java b/Data Structures/08 Recursion/nQueen.java new file mode 100644 index 00000000..3a37ae9e --- /dev/null +++ b/Data Structures/08 Recursion/nQueen.java @@ -0,0 +1,75 @@ +// Given a chess board of size NxN and N number of queens, print possible combinations +// of placing all the queens, such that no queen can kill another. +// A queen can move in all the eight possible directions. +// Input format : a number n +// Ouput format: safe configuration of queens +// Constraints : 1<=n<=10 +// >>==>> Sample Input: 4 +// >>==>> Sample Output: +// 0-1, 1-3, 2-0, 3-2, . +// 0-2, 1-0, 2-3, 3-1, . + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.IOException; + +public class nqueen { + // >>==>> I have taken input from the console using BufferedReader, + // you can skip this part, and directly provide arguments to the driver function + static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + public static void main(String[] args) throws IOException { + String[] line1 = br.readLine().trim().split("\\s+"); + + int n = Integer.parseInt(line1[0]); + int[][] board = new int[n][n]; + + driver(board, 0, 0, n, ""); + + } + // this function checks if a queen can be placed at the given position on the board + public static boolean isSafe(int[][] board, int r, int c) { + + if (r >= 0 && c >= 0 && r < board.length && c < board[0].length && board[r][c] != 1) { + + // >>==>> row check to make sure a queen is already not present on the board. + for (int i = c - 1; i >= 0; i--) { + if (board[r][i] == 1) + return false; + } + // >>==>> col check to make sure a queen is already not present on the board. + for (int i = r - 1; i >= 0; i--) { + if (board[i][c] == 1) + return false; + } + // >>==>> diagonal check to make sure a queen is already not present on the board. + for (int i = r - 1, j = c - 1; i >= 0 && j >= 0; i--, j--) { + if (board[i][j] == 1) + return false; + } + // >>==>> anti diagonal check to make sure a queen is already not present on the board. + for (int i = r - 1, j = c + 1; i >= 0 && j < board[0].length; i--, j++) { + if (board[i][j] == 1) + return false; + } + return true; + } + return false; + } + // qspf: queen placed so far + // tnq: totatl number of queens to be placed, which is n in our case + // ans: String in which we will display the output. + public static void driver(int[][] board, int row, int qpsf, int tnq, String ans) { + if (qpsf == tnq) { // when qpsf = tnq, it means all the queens have been placed correctly, and we should print the answer. + System.out.println(ans + "."); + return; + } + for (int j = 0 ; j < board[0].length;j++){ + if (isSafe(board,row,j)){ + board[row][j] = 1; // block the position on the board to signify a queen is placed + driver(board,row+1,qpsf+1,tnq,ans + row + "-" + j + ","); + board[row][j] = 0; // unblock the position that was marked earlier when backtracking + } + } + } +} \ No newline at end of file diff --git a/Data Structures/09 Hash Table/hashtable.c b/Data Structures/09 Hash Table/hashtable.c new file mode 100644 index 00000000..d0dc81d4 --- /dev/null +++ b/Data Structures/09 Hash Table/hashtable.c @@ -0,0 +1,262 @@ +// This code it's heavily inspired from here +// https://github.com/engineer-man/youtube/blob/master/077/hashtable.c/ + +// benjaSantana just made a few modifications, to make it more adept to the +// a project I was working on. Also added new hash function, called djb2 by Dan Bernstein. + + +#include +#include +#include +#include + +#define TABLE_SIZE 100000 + +typedef struct node{ + + char* key; + char* value; + struct node* next; + +}node; + +typedef struct HashTable{ + + node** rows; + +}HashTable; + +unsigned long hash(const char*); +void insert_HT(HashTable*, const char*,const char*); +HashTable *init_HT(void); +node *insertPair_HT(const char*, const char*); +void show_HT(HashTable*); +void delete_HT(HashTable*,const char*); +char *searchFor_HT(HashTable *, const char*); + + + +unsigned long hash(const char *str){ + unsigned long hash = 5381; + int c; + + while (c = *str++) + hash = hash * 33 + c; + + return hash%TABLE_SIZE; +} + +// Create the HashTable, and allocate memory +HashTable *init_HT(void) { + + // allocate table + HashTable *hashtable = malloc(sizeof(HashTable) * 1); + + // allocate table entries + hashtable->rows = malloc(sizeof( node* ) * TABLE_SIZE); + + // Set each row to null + int i = 0; + for (; i < TABLE_SIZE; ++i) { + hashtable->rows[i] = NULL; + } + + return hashtable; +} + +// *For use of other functions only* Insert a tuple of Key, Value into the HashTable +node *insertPair_HT(const char *key, const char *buffer){ + + node *temp = malloc(1*sizeof(node)); + temp->key = malloc(1+sizeof(key)); + temp->value = malloc(1+sizeof(buffer)); + + strcpy(temp->key, key); + strcpy(temp->value, buffer); + + temp->next = NULL; + + return temp; + +} + +// Insert a new element in the Table +void insert_HT(HashTable *hashtable, const char* key, const char* buffer){ + + unsigned int index = hash(key); + + node *nodey = hashtable->rows[index]; + + // Check if the row hasn't a value, if not we can just add the new one + // and return + if(nodey == NULL){ + + hashtable->rows[index] = insertPair_HT(key, buffer); + return; + } + + node *previous; + + // Check all the nodes in that row to see if any matches with the key given. + // If found, overwirite the value + while(nodey!=NULL){ + + //We're overwriting the value in a specific key + if(strcmp(nodey->key, key)==0){ + + free(nodey->value); + nodey->value = malloc(strlen(buffer)+1); + strcpy(nodey->value, buffer); + return; + + + } + + previous = nodey; + nodey = previous->next; + } + + // The key wasn't found, add a new column in the row + previous->next = insertPair_HT(key,buffer); +} + +// Search for a specific key in the table. +char *searchFor_HT(HashTable *hashtable, const char* key){ + + unsigned int index = hash(key); + + node *nodey = hashtable->rows[index]; + + //Check if there's a row with that hashed key, if not + // return + if(nodey == NULL){ + printf("There's no such key"); + return NULL; + } + + //Check each column in the row to see if we found one with + // the key we have and return the value. + while(nodey!=NULL){ + + if(strcmp(nodey->key, key)==0){ + + return nodey->value; + + } + + nodey->key; + + } + + return NULL; + +} + +// Delete element from the table (Left almost unchanged from the source code) +void delete_HT(HashTable *hashtable, const char *key) { + unsigned int bucket = hash(key); + + // try to find a valid bucket + node *nodey = hashtable->rows[bucket]; + + // no bucket means no entry + if (nodey == NULL) { + return; + } + + node *prev; + int idx = 0; + + // walk through each entry until either the end is reached or a matching key is found + while (nodey != NULL) { + // check key + if (strcmp(nodey->key, key) == 0) { + // first item and no next entry + if (nodey->next == NULL && idx == 0) { + hashtable->rows[bucket] = NULL; + } + + + // first item with a next entry + if (nodey->next != NULL && idx == 0) { + hashtable->rows[bucket] = nodey->next; + } + + // last item + if (nodey->next == NULL && idx != 0) { + prev->next = NULL; + } + + // middle item + if (nodey->next != NULL && idx != 0) { + prev->next = nodey->next; + } + + // free the deleted entry + free(nodey->key); + free(nodey->value); + free(nodey); + + return; + } + + // walk to next + prev = nodey; + nodey = prev->next; + + ++idx; + } +} + + +// Display HashTable (Left Unchanged from source code) +void show_HT(HashTable *hashtable) { + for (int i = 0; i < TABLE_SIZE; ++i) { + node *nodey = hashtable->rows[i]; + + if (nodey == NULL) { + continue; + } + + printf("slot[%d]: ", i); + + for(;;) { + printf("%s=%s ", nodey->key, nodey->value); + + if (nodey->next == NULL) { + break; + } + + nodey = nodey->next; + } + + printf("\n"); + } +} + +/*Here's an example on how to use it*/ +int main(){ + + //Initialize the HashTable + HashTable *ht = init_HT(); + + //Insert items + insert_HT(ht, "v1", "Hello"); + insert_HT(ht, "v2", "MyNameIsJeff"); + insert_HT(ht, "v1045", "Mate"); + insert_HT(ht, "na", "tal"); + + show_HT(ht); + printf("\n"); + + //Delete an Item + delete_HT(ht, "v2"); + + show_HT(ht); + + //Search for an Item + printf("\n%s\n", searchFor_HT(ht, "v1")); + + + return 0; +} diff --git a/Competitions/Doselect/BookMyShow - Break the Deadlock/Manishonacci Numbers.py b/Doselect/BookMyShow - Break the Deadlock/Manishonacci Numbers.py similarity index 100% rename from Competitions/Doselect/BookMyShow - Break the Deadlock/Manishonacci Numbers.py rename to Doselect/BookMyShow - Break the Deadlock/Manishonacci Numbers.py diff --git a/Competitions/Doselect/BookMyShow - Break the Deadlock/Snow Balls Attack.py b/Doselect/BookMyShow - Break the Deadlock/Snow Balls Attack.py similarity index 100% rename from Competitions/Doselect/BookMyShow - Break the Deadlock/Snow Balls Attack.py rename to Doselect/BookMyShow - Break the Deadlock/Snow Balls Attack.py diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/Problem 1 b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/Problem 1 old mode 100755 new mode 100644 similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/Problem 1 rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/Problem 1 diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/Problem 1.cpp b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/Problem 1.cpp similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/Problem 1.cpp rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/Problem 1.cpp diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/output.txt b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/output.txt similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/output.txt rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/output.txt diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/progress_pie.txt b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/progress_pie.txt similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/progress_pie.txt rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/progress_pie.txt diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/sample-input.txt b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/sample-input.txt similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/sample-input.txt rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/sample-input.txt diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/sample-output.txt b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/sample-output.txt similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 1/sample-output.txt rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 1/sample-output.txt diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/Problem 2 b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/Problem 2 old mode 100755 new mode 100644 similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/Problem 2 rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/Problem 2 diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/Problem 2.cpp b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/Problem 2.cpp similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/Problem 2.cpp rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/Problem 2.cpp diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/lazy_loading.txt b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/lazy_loading.txt similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/lazy_loading.txt rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/lazy_loading.txt diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/output.txt b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/output.txt similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/output.txt rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/output.txt diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/sample-input.txt b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/sample-input.txt similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/sample-input.txt rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/sample-input.txt diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/sample-output.txt b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/sample-output.txt similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 2/sample-output.txt rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 2/sample-output.txt diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 3/Problem 3.cpp b/Facebook/Hacker Cup/2017 Online Qualification Round/Problem 3/Problem 3.cpp similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Problem 3/Problem 3.cpp rename to Facebook/Hacker Cup/2017 Online Qualification Round/Problem 3/Problem 3.cpp diff --git a/Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Solutions.zip b/Facebook/Hacker Cup/2017 Online Qualification Round/Solutions.zip similarity index 100% rename from Competitions/Facebook Hacker Cup/2017 Online Qualification Round/Solutions.zip rename to Facebook/Hacker Cup/2017 Online Qualification Round/Solutions.zip diff --git a/Competitions/Google Code Jam/Qualification Round 2016/Counting Sheep/A-large.in b/Google/Code Jam/Qualification Round 2016/Counting Sheep/A-large.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2016/Counting Sheep/A-large.in rename to Google/Code Jam/Qualification Round 2016/Counting Sheep/A-large.in diff --git a/Competitions/Google Code Jam/Qualification Round 2016/Counting Sheep/A-small-attempt0.in b/Google/Code Jam/Qualification Round 2016/Counting Sheep/A-small-attempt0.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2016/Counting Sheep/A-small-attempt0.in rename to Google/Code Jam/Qualification Round 2016/Counting Sheep/A-small-attempt0.in diff --git a/Competitions/Google Code Jam/Qualification Round 2016/Counting Sheep/Minimum Scalar Product.cpp b/Google/Code Jam/Qualification Round 2016/Counting Sheep/Minimum Scalar Product.cpp similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2016/Counting Sheep/Minimum Scalar Product.cpp rename to Google/Code Jam/Qualification Round 2016/Counting Sheep/Minimum Scalar Product.cpp diff --git a/Competitions/Google Code Jam/Qualification Round 2016/Counting Sheep/output.out b/Google/Code Jam/Qualification Round 2016/Counting Sheep/output.out similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2016/Counting Sheep/output.out rename to Google/Code Jam/Qualification Round 2016/Counting Sheep/output.out diff --git a/Competitions/Google Code Jam/Qualification Round 2016/Revenge of the Pancakes/B-large.in b/Google/Code Jam/Qualification Round 2016/Revenge of the Pancakes/B-large.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2016/Revenge of the Pancakes/B-large.in rename to Google/Code Jam/Qualification Round 2016/Revenge of the Pancakes/B-large.in diff --git a/Competitions/Google Code Jam/Qualification Round 2016/Revenge of the Pancakes/B-small-attempt0.in b/Google/Code Jam/Qualification Round 2016/Revenge of the Pancakes/B-small-attempt0.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2016/Revenge of the Pancakes/B-small-attempt0.in rename to Google/Code Jam/Qualification Round 2016/Revenge of the Pancakes/B-small-attempt0.in diff --git a/Competitions/Google Code Jam/Qualification Round 2016/Revenge of the Pancakes/Revenge of the Pancakes.cpp b/Google/Code Jam/Qualification Round 2016/Revenge of the Pancakes/Revenge of the Pancakes.cpp similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2016/Revenge of the Pancakes/Revenge of the Pancakes.cpp rename to Google/Code Jam/Qualification Round 2016/Revenge of the Pancakes/Revenge of the Pancakes.cpp diff --git a/Competitions/Google Code Jam/Qualification Round 2016/Revenge of the Pancakes/output.out b/Google/Code Jam/Qualification Round 2016/Revenge of the Pancakes/output.out similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2016/Revenge of the Pancakes/output.out rename to Google/Code Jam/Qualification Round 2016/Revenge of the Pancakes/output.out diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 1/A-large.in b/Google/Code Jam/Qualification Round 2017/Problem 1/A-large.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 1/A-large.in rename to Google/Code Jam/Qualification Round 2017/Problem 1/A-large.in diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 1/A-small-attempt0.in b/Google/Code Jam/Qualification Round 2017/Problem 1/A-small-attempt0.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 1/A-small-attempt0.in rename to Google/Code Jam/Qualification Round 2017/Problem 1/A-small-attempt0.in diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 1/Problem 1.cpp b/Google/Code Jam/Qualification Round 2017/Problem 1/Problem 1.cpp similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 1/Problem 1.cpp rename to Google/Code Jam/Qualification Round 2017/Problem 1/Problem 1.cpp diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 1/Problem 1.py b/Google/Code Jam/Qualification Round 2017/Problem 1/Problem 1.py similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 1/Problem 1.py rename to Google/Code Jam/Qualification Round 2017/Problem 1/Problem 1.py diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 1/output.out b/Google/Code Jam/Qualification Round 2017/Problem 1/output.out similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 1/output.out rename to Google/Code Jam/Qualification Round 2017/Problem 1/output.out diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 1/sample-input.in b/Google/Code Jam/Qualification Round 2017/Problem 1/sample-input.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 1/sample-input.in rename to Google/Code Jam/Qualification Round 2017/Problem 1/sample-input.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round C 2017/Problem A/o1.txt b/Google/Code Jam/Qualification Round 2017/Problem 1/sample-output.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round C 2017/Problem A/o1.txt rename to Google/Code Jam/Qualification Round 2017/Problem 1/sample-output.out diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 2/B-large.in b/Google/Code Jam/Qualification Round 2017/Problem 2/B-large.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 2/B-large.in rename to Google/Code Jam/Qualification Round 2017/Problem 2/B-large.in diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 2/B-small-attempt0.in b/Google/Code Jam/Qualification Round 2017/Problem 2/B-small-attempt0.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 2/B-small-attempt0.in rename to Google/Code Jam/Qualification Round 2017/Problem 2/B-small-attempt0.in diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 2/B-small-attempt1.in b/Google/Code Jam/Qualification Round 2017/Problem 2/B-small-attempt1.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 2/B-small-attempt1.in rename to Google/Code Jam/Qualification Round 2017/Problem 2/B-small-attempt1.in diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 2/Problem 2.cpp b/Google/Code Jam/Qualification Round 2017/Problem 2/Problem 2.cpp similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 2/Problem 2.cpp rename to Google/Code Jam/Qualification Round 2017/Problem 2/Problem 2.cpp diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 2/Problem 2.py b/Google/Code Jam/Qualification Round 2017/Problem 2/Problem 2.py similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 2/Problem 2.py rename to Google/Code Jam/Qualification Round 2017/Problem 2/Problem 2.py diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 2/output.out b/Google/Code Jam/Qualification Round 2017/Problem 2/output.out similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 2/output.out rename to Google/Code Jam/Qualification Round 2017/Problem 2/output.out diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 2/sample-input.in b/Google/Code Jam/Qualification Round 2017/Problem 2/sample-input.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 2/sample-input.in rename to Google/Code Jam/Qualification Round 2017/Problem 2/sample-input.in diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 2/sample-output.out b/Google/Code Jam/Qualification Round 2017/Problem 2/sample-output.out similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 2/sample-output.out rename to Google/Code Jam/Qualification Round 2017/Problem 2/sample-output.out diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 3/C-small-1-attempt0.in b/Google/Code Jam/Qualification Round 2017/Problem 3/C-small-1-attempt0.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 3/C-small-1-attempt0.in rename to Google/Code Jam/Qualification Round 2017/Problem 3/C-small-1-attempt0.in diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 3/C-small-1-attempt1.in b/Google/Code Jam/Qualification Round 2017/Problem 3/C-small-1-attempt1.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 3/C-small-1-attempt1.in rename to Google/Code Jam/Qualification Round 2017/Problem 3/C-small-1-attempt1.in diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 3/Problem 3.cpp b/Google/Code Jam/Qualification Round 2017/Problem 3/Problem 3.cpp similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 3/Problem 3.cpp rename to Google/Code Jam/Qualification Round 2017/Problem 3/Problem 3.cpp diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 3/Problem 3.py b/Google/Code Jam/Qualification Round 2017/Problem 3/Problem 3.py similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 3/Problem 3.py rename to Google/Code Jam/Qualification Round 2017/Problem 3/Problem 3.py diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 3/output.out b/Google/Code Jam/Qualification Round 2017/Problem 3/output.out similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 3/output.out rename to Google/Code Jam/Qualification Round 2017/Problem 3/output.out diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 3/sample-input.in b/Google/Code Jam/Qualification Round 2017/Problem 3/sample-input.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 3/sample-input.in rename to Google/Code Jam/Qualification Round 2017/Problem 3/sample-input.in diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 3/sample-output.out b/Google/Code Jam/Qualification Round 2017/Problem 3/sample-output.out similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 3/sample-output.out rename to Google/Code Jam/Qualification Round 2017/Problem 3/sample-output.out diff --git a/Competitions/Google Code Jam/Qualification Round 2017/Problem 3/sample-output1.out b/Google/Code Jam/Qualification Round 2017/Problem 3/sample-output1.out similarity index 100% rename from Competitions/Google Code Jam/Qualification Round 2017/Problem 3/sample-output1.out rename to Google/Code Jam/Qualification Round 2017/Problem 3/sample-output1.out diff --git a/Competitions/Google Code Jam/Qualification Round Africa 2010/Reverse Words/B-large-practice.in b/Google/Code Jam/Qualification Round Africa 2010/Reverse Words/B-large-practice.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round Africa 2010/Reverse Words/B-large-practice.in rename to Google/Code Jam/Qualification Round Africa 2010/Reverse Words/B-large-practice.in diff --git a/Competitions/Google Code Jam/Qualification Round Africa 2010/Reverse Words/B-small-practice.in b/Google/Code Jam/Qualification Round Africa 2010/Reverse Words/B-small-practice.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round Africa 2010/Reverse Words/B-small-practice.in rename to Google/Code Jam/Qualification Round Africa 2010/Reverse Words/B-small-practice.in diff --git a/Competitions/Google Code Jam/Qualification Round Africa 2010/Reverse Words/Reverse Words.cpp b/Google/Code Jam/Qualification Round Africa 2010/Reverse Words/Reverse Words.cpp similarity index 100% rename from Competitions/Google Code Jam/Qualification Round Africa 2010/Reverse Words/Reverse Words.cpp rename to Google/Code Jam/Qualification Round Africa 2010/Reverse Words/Reverse Words.cpp diff --git a/Competitions/Google Code Jam/Qualification Round Africa 2010/Reverse Words/output.out b/Google/Code Jam/Qualification Round Africa 2010/Reverse Words/output.out similarity index 100% rename from Competitions/Google Code Jam/Qualification Round Africa 2010/Reverse Words/output.out rename to Google/Code Jam/Qualification Round Africa 2010/Reverse Words/output.out diff --git a/Competitions/Google Code Jam/Qualification Round Africa 2010/Reverse Words/sample-input.txt b/Google/Code Jam/Qualification Round Africa 2010/Reverse Words/sample-input.txt similarity index 100% rename from Competitions/Google Code Jam/Qualification Round Africa 2010/Reverse Words/sample-input.txt rename to Google/Code Jam/Qualification Round Africa 2010/Reverse Words/sample-input.txt diff --git a/Competitions/Google Code Jam/Qualification Round Africa 2010/Store Credit/A-large-practice.in b/Google/Code Jam/Qualification Round Africa 2010/Store Credit/A-large-practice.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round Africa 2010/Store Credit/A-large-practice.in rename to Google/Code Jam/Qualification Round Africa 2010/Store Credit/A-large-practice.in diff --git a/Competitions/Google Code Jam/Qualification Round Africa 2010/Store Credit/A-small-practice.in b/Google/Code Jam/Qualification Round Africa 2010/Store Credit/A-small-practice.in similarity index 100% rename from Competitions/Google Code Jam/Qualification Round Africa 2010/Store Credit/A-small-practice.in rename to Google/Code Jam/Qualification Round Africa 2010/Store Credit/A-small-practice.in diff --git a/Competitions/Google Code Jam/Qualification Round Africa 2010/Store Credit/Store Credit.cpp b/Google/Code Jam/Qualification Round Africa 2010/Store Credit/Store Credit.cpp similarity index 100% rename from Competitions/Google Code Jam/Qualification Round Africa 2010/Store Credit/Store Credit.cpp rename to Google/Code Jam/Qualification Round Africa 2010/Store Credit/Store Credit.cpp diff --git a/Competitions/Google Code Jam/Qualification Round Africa 2010/Store Credit/output.out b/Google/Code Jam/Qualification Round Africa 2010/Store Credit/output.out similarity index 100% rename from Competitions/Google Code Jam/Qualification Round Africa 2010/Store Credit/output.out rename to Google/Code Jam/Qualification Round Africa 2010/Store Credit/output.out diff --git a/Competitions/Google Code Jam/Qualification Round Africa 2010/Store Credit/sample-input.txt b/Google/Code Jam/Qualification Round Africa 2010/Store Credit/sample-input.txt similarity index 100% rename from Competitions/Google Code Jam/Qualification Round Africa 2010/Store Credit/sample-input.txt rename to Google/Code Jam/Qualification Round Africa 2010/Store Credit/sample-input.txt diff --git a/Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/A-large-practice.in b/Google/Code Jam/Round 1A 2008/Minimum Scalar Product/A-large-practice.in similarity index 100% rename from Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/A-large-practice.in rename to Google/Code Jam/Round 1A 2008/Minimum Scalar Product/A-large-practice.in diff --git a/Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/A-small-practice.in b/Google/Code Jam/Round 1A 2008/Minimum Scalar Product/A-small-practice.in similarity index 100% rename from Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/A-small-practice.in rename to Google/Code Jam/Round 1A 2008/Minimum Scalar Product/A-small-practice.in diff --git a/Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/Minimum Scalar Product.cpp b/Google/Code Jam/Round 1A 2008/Minimum Scalar Product/Minimum Scalar Product.cpp similarity index 100% rename from Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/Minimum Scalar Product.cpp rename to Google/Code Jam/Round 1A 2008/Minimum Scalar Product/Minimum Scalar Product.cpp diff --git a/Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/Problem 1.py b/Google/Code Jam/Round 1A 2008/Minimum Scalar Product/Problem 1.py similarity index 100% rename from Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/Problem 1.py rename to Google/Code Jam/Round 1A 2008/Minimum Scalar Product/Problem 1.py diff --git a/Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/o1.txt b/Google/Code Jam/Round 1A 2008/Minimum Scalar Product/o1.txt similarity index 100% rename from Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/o1.txt rename to Google/Code Jam/Round 1A 2008/Minimum Scalar Product/o1.txt diff --git a/Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/o2.txt b/Google/Code Jam/Round 1A 2008/Minimum Scalar Product/o2.txt similarity index 100% rename from Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/o2.txt rename to Google/Code Jam/Round 1A 2008/Minimum Scalar Product/o2.txt diff --git a/Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/output.out b/Google/Code Jam/Round 1A 2008/Minimum Scalar Product/output.out similarity index 100% rename from Competitions/Google Code Jam/Round 1A 2008/Minimum Scalar Product/output.out rename to Google/Code Jam/Round 1A 2008/Minimum Scalar Product/output.out diff --git a/Competitions/Google Code Jam/Round 1A 2016/The Last Word/A-large.in b/Google/Code Jam/Round 1A 2016/The Last Word/A-large.in similarity index 100% rename from Competitions/Google Code Jam/Round 1A 2016/The Last Word/A-large.in rename to Google/Code Jam/Round 1A 2016/The Last Word/A-large.in diff --git a/Competitions/Google Code Jam/Round 1A 2016/The Last Word/A-small-attempt0.in b/Google/Code Jam/Round 1A 2016/The Last Word/A-small-attempt0.in similarity index 100% rename from Competitions/Google Code Jam/Round 1A 2016/The Last Word/A-small-attempt0.in rename to Google/Code Jam/Round 1A 2016/The Last Word/A-small-attempt0.in diff --git a/Competitions/Google Code Jam/Round 1A 2016/The Last Word/The Last Word.cpp b/Google/Code Jam/Round 1A 2016/The Last Word/The Last Word.cpp similarity index 100% rename from Competitions/Google Code Jam/Round 1A 2016/The Last Word/The Last Word.cpp rename to Google/Code Jam/Round 1A 2016/The Last Word/The Last Word.cpp diff --git a/Competitions/Google Code Jam/Round 1A 2016/The Last Word/output.out b/Google/Code Jam/Round 1A 2016/The Last Word/output.out similarity index 100% rename from Competitions/Google Code Jam/Round 1A 2016/The Last Word/output.out rename to Google/Code Jam/Round 1A 2016/The Last Word/output.out diff --git a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 1/1.py b/Google/Foobar/53-12-g8f9a222a-beta/Level 1/1.py similarity index 100% rename from Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 1/1.py rename to Google/Foobar/53-12-g8f9a222a-beta/Level 1/1.py diff --git a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 1/README.md b/Google/Foobar/53-12-g8f9a222a-beta/Level 1/README.md similarity index 73% rename from Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 1/README.md rename to Google/Foobar/53-12-g8f9a222a-beta/Level 1/README.md index aee8dc5f..a34ed743 100644 --- a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 1/README.md +++ b/Google/Foobar/53-12-g8f9a222a-beta/Level 1/README.md @@ -1,35 +1,32 @@ -Minion Labor Shifts -=================== +# Minion Labor Shifts Commander Lambda's minions are upset! They're given the worst jobs on the whole space station, and some of them are starting to complain that even those worst jobs are being allocated unfairly. If you can fix this problem, it'll prove your chops to Commander Lambda so you can get promoted! -Minions' tasks are assigned by putting their ID numbers into a list, one time for each day they'll work that task. As shifts are planned well in advance, the lists for each task will contain up to 99 integers. When a minion is scheduled for the same task too many times, they'll complain about it until they're taken off the task completely. Some tasks are worse than others, so the number of scheduled assignments before a minion will refuse to do a task varies depending on the task. You figure you can speed things up by automating the removal of the minions who have been assigned a task too many times before they even get a chance to start complaining. +Minions' tasks are assigned by putting their ID numbers into a list, one time for each day they'll work that task. As shifts are planned well in advance, the lists for each task will contain up to 99 integers. When a minion is scheduled for the same task too many times, they'll complain about it until they're taken off the task completely. Some tasks are worse than others, so the number of scheduled assignments before a minion will refuse to do a task varies depending on the task. You figure you can speed things up by automating the removal of the minions who have been assigned a task too many times before they even get a chance to start complaining. Write a function called answer(data, n) that takes in a list of less than 100 integers and a number n, and returns that same list but with all of the numbers that occur more than n times removed entirely. The returned list should retain the same ordering as the original list - you don't want to mix up those carefully-planned shift rotations! For instance, if data was [5, 10, 15, 10, 7] and n was 1, answer(data, n) would return the list [5, 15, 7] because 10 occurs twice, and thus was removed from the list entirely. -Languages -========= +# Languages To provide a Python solution, edit solution.py To provide a Java solution, edit solution.java -Test cases -========== +# Test cases Inputs: - (int list) data = [1, 2, 3] - (int) n = 0 +(int list) data = [1, 2, 3] +(int) n = 0 Output: - (int list) [] +(int list) [] Inputs: - (int list) data = [1, 2, 2, 3, 3, 3, 4, 5, 5] - (int) n = 1 +(int list) data = [1, 2, 2, 3, 3, 3, 4, 5, 5] +(int) n = 1 Output: - (int list) [1, 4] +(int list) [1, 4] Inputs: - (int list) data = [1, 2, 3] - (int) n = 6 +(int list) data = [1, 2, 3] +(int) n = 6 Output: - (int list) [1, 2, 3] +(int list) [1, 2, 3] diff --git a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 2/1.py b/Google/Foobar/53-12-g8f9a222a-beta/Level 2/1.py similarity index 100% rename from Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 2/1.py rename to Google/Foobar/53-12-g8f9a222a-beta/Level 2/1.py diff --git a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 2/2.py b/Google/Foobar/53-12-g8f9a222a-beta/Level 2/2.py similarity index 100% rename from Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 2/2.py rename to Google/Foobar/53-12-g8f9a222a-beta/Level 2/2.py diff --git a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 2/README.md b/Google/Foobar/53-12-g8f9a222a-beta/Level 2/README.md similarity index 54% rename from Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 2/README.md rename to Google/Foobar/53-12-g8f9a222a-beta/Level 2/README.md index b93b67ef..ba8d735a 100644 --- a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 2/README.md +++ b/Google/Foobar/53-12-g8f9a222a-beta/Level 2/README.md @@ -1,92 +1,81 @@ # Problem 1 -Lovely Lucky LAMBs -================== +# Lovely Lucky LAMBs Being a henchman isn't all drudgery. Occasionally, when Commander Lambda is feeling generous, she'll hand out Lucky LAMBs (Lambda's All-purpose Money Bucks). Henchmen can use Lucky LAMBs to buy things like a second pair of socks, a pillow for their bunks, or even a third daily meal! -However, actually passing out LAMBs isn't easy. Each henchman squad has a strict seniority ranking which must be respected - or else the henchmen will revolt and you'll all get demoted back to minions again! +However, actually passing out LAMBs isn't easy. Each henchman squad has a strict seniority ranking which must be respected - or else the henchmen will revolt and you'll all get demoted back to minions again! -There are 4 key rules which you must follow in order to avoid a revolt: - 1. The most junior henchman (with the least seniority) gets exactly 1 LAMB. (There will always be at least 1 henchman on a team.) - 2. A henchman will revolt if the person who ranks immediately above them gets more than double the number of LAMBs they do. - 3. A henchman will revolt if the amount of LAMBs given to their next two subordinates combined is more than the number of LAMBs they get. (Note that the two most junior henchmen won't have two subordinates, so this rule doesn't apply to them. The 2nd most junior henchman would require at least as many LAMBs as the most junior henchman.) - 4. You can always find more henchmen to pay - the Commander has plenty of employees. If there are enough LAMBs left over such that another henchman could be added as the most senior while obeying the other rules, you must always add and pay that henchman. +There are 4 key rules which you must follow in order to avoid a revolt: 1. The most junior henchman (with the least seniority) gets exactly 1 LAMB. (There will always be at least 1 henchman on a team.) 2. A henchman will revolt if the person who ranks immediately above them gets more than double the number of LAMBs they do. 3. A henchman will revolt if the amount of LAMBs given to their next two subordinates combined is more than the number of LAMBs they get. (Note that the two most junior henchmen won't have two subordinates, so this rule doesn't apply to them. The 2nd most junior henchman would require at least as many LAMBs as the most junior henchman.) 4. You can always find more henchmen to pay - the Commander has plenty of employees. If there are enough LAMBs left over such that another henchman could be added as the most senior while obeying the other rules, you must always add and pay that henchman. Note that you may not be able to hand out all the LAMBs. A single LAMB cannot be subdivided. That is, all henchmen must get a positive integer number of LAMBs. -Write a function called answer(total_lambs), where total_lambs is the integer number of LAMBs in the handout you are trying to divide. It should return an integer which represents the difference between the minimum and maximum number of henchmen who can share the LAMBs (that is, being as generous as possible to those you pay and as stingy as possible, respectively) while still obeying all of the above rules to avoid a revolt. For instance, if you had 10 LAMBs and were as generous as possible, you could only pay 3 henchmen (1, 2, and 4 LAMBs, in order of ascending seniority), whereas if you were as stingy as possible, you could pay 4 henchmen (1, 1, 2, and 3 LAMBs). Therefore, answer(10) should return 4-3 = 1. +Write a function called answer(total_lambs), where total_lambs is the integer number of LAMBs in the handout you are trying to divide. It should return an integer which represents the difference between the minimum and maximum number of henchmen who can share the LAMBs (that is, being as generous as possible to those you pay and as stingy as possible, respectively) while still obeying all of the above rules to avoid a revolt. For instance, if you had 10 LAMBs and were as generous as possible, you could only pay 3 henchmen (1, 2, and 4 LAMBs, in order of ascending seniority), whereas if you were as stingy as possible, you could pay 4 henchmen (1, 1, 2, and 3 LAMBs). Therefore, answer(10) should return 4-3 = 1. To keep things interesting, Commander Lambda varies the sizes of the Lucky LAMB payouts: you can expect total_lambs to always be between 10 and 1 billion (10 ^ 9). -Languages -========= +# Languages To provide a Python solution, edit solution.py To provide a Java solution, edit solution.java -Test cases -========== +# Test cases Inputs: - (int) total_lambs = 10 +(int) total_lambs = 10 Output: - (int) 1 +(int) 1 Inputs: - (int) total_lambs = 143 +(int) total_lambs = 143 Output: - (int) 3 +(int) 3 Use verify [file] to test your solution and see how it does. When you are finished editing your code, use submit [file] to submit your answer. If your solution passes the test cases, it will be removed from your home folder. - # Problem 2 -Don't Get Volunteered! -====================== +# Don't Get Volunteered! As a henchman on Commander Lambda's space station, you're expected to be resourceful, smart, and a quick thinker. It's not easy building a doomsday device and capturing bunnies at the same time, after all! In order to make sure that everyone working for her is sufficiently quick-witted, Commander Lambda has installed new flooring outside the henchman dormitories. It looks like a chessboard, and every morning and evening you have to solve a new movement puzzle in order to cross the floor. That would be fine if you got to be the rook or the queen, but instead, you have to be the knight. Worse, if you take too much time solving the puzzle, you get "volunteered" as a test subject for the LAMBCHOP doomsday device! -To help yourself get to and from your bunk every day, write a function called answer(src, dest) which takes in two parameters: the source square, on which you start, and the destination square, which is where you need to land to solve the puzzle. The function should return an integer representing the smallest number of moves it will take for you to travel from the source square to the destination square using a chess knight's moves (that is, two squares in any direction immediately followed by one square perpendicular to that direction, or vice versa, in an "L" shape). Both the source and destination squares will be an integer between 0 and 63, inclusive, and are numbered like the example chessboard below: - -------------------------- -| 0| 1| 2| 3| 4| 5| 6| 7| -------------------------- -| 8| 9|10|11|12|13|14|15| -------------------------- -|16|17|18|19|20|21|22|23| -------------------------- -|24|25|26|27|28|29|30|31| -------------------------- -|32|33|34|35|36|37|38|39| -------------------------- -|40|41|42|43|44|45|46|47| -------------------------- -|48|49|50|51|52|53|54|55| -------------------------- -|56|57|58|59|60|61|62|63| -------------------------- - -Languages -========= +To help yourself get to and from your bunk every day, write a function called answer(src, dest) which takes in two parameters: the source square, on which you start, and the destination square, which is where you need to land to solve the puzzle. The function should return an integer representing the smallest number of moves it will take for you to travel from the source square to the destination square using a chess knight's moves (that is, two squares in any direction immediately followed by one square perpendicular to that direction, or vice versa, in an "L" shape). Both the source and destination squares will be an integer between 0 and 63, inclusive, and are numbered like the example chessboard below: + +--- + +## | 0| 1| 2| 3| 4| 5| 6| 7| + +## | 8| 9|10|11|12|13|14|15| + +## |16|17|18|19|20|21|22|23| + +## |24|25|26|27|28|29|30|31| + +## |32|33|34|35|36|37|38|39| + +## |40|41|42|43|44|45|46|47| + +## |48|49|50|51|52|53|54|55| + +## |56|57|58|59|60|61|62|63| + +# Languages To provide a Python solution, edit solution.py To provide a Java solution, edit solution.java -Test cases -========== +# Test cases Inputs: - (int) src = 19 - (int) dest = 36 +(int) src = 19 +(int) dest = 36 Output: - (int) 1 +(int) 1 Inputs: - (int) src = 0 - (int) dest = 1 +(int) src = 0 +(int) dest = 1 Output: - (int) 3 +(int) 3 Use verify [file] to test your solution and see how it does. When you are finished editing your code, use submit [file] to submit your answer. If your solution passes the test cases, it will be removed from your home folder. diff --git a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 3/1.py b/Google/Foobar/53-12-g8f9a222a-beta/Level 3/1.py similarity index 100% rename from Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 3/1.py rename to Google/Foobar/53-12-g8f9a222a-beta/Level 3/1.py diff --git a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 3/2.py b/Google/Foobar/53-12-g8f9a222a-beta/Level 3/2.py similarity index 100% rename from Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 3/2.py rename to Google/Foobar/53-12-g8f9a222a-beta/Level 3/2.py diff --git a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 3/3.py b/Google/Foobar/53-12-g8f9a222a-beta/Level 3/3.py similarity index 100% rename from Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 3/3.py rename to Google/Foobar/53-12-g8f9a222a-beta/Level 3/3.py diff --git a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 3/README.md b/Google/Foobar/53-12-g8f9a222a-beta/Level 3/README.md similarity index 88% rename from Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 3/README.md rename to Google/Foobar/53-12-g8f9a222a-beta/Level 3/README.md index 4384933b..81d33ab7 100644 --- a/Hiring Challenges/Google-Foobar/53-12-g8f9a222a-beta/Level 3/README.md +++ b/Google/Foobar/53-12-g8f9a222a-beta/Level 3/README.md @@ -1,39 +1,35 @@ # Problem 1 -Prepare the Bunnies' Escape -=========================== +# Prepare the Bunnies' Escape -You're awfully close to destroying the LAMBCHOP doomsday device and freeing Commander Lambda's bunny prisoners, but once they're free of the prison blocks, the bunnies are going to need to escape Lambda's space station via the escape pods as quickly as possible. Unfortunately, the halls of the space station are a maze of corridors and dead ends that will be a deathtrap for the escaping bunnies. Fortunately, Commander Lambda has put you in charge of a remodeling project that will give you the opportunity to make things a little easier for the bunnies. Unfortunately (again), you can't just remove all obstacles between the bunnies and the escape pods - at most you can remove one wall per escape pod path, both to maintain structural integrity of the station and to avoid arousing Commander Lambda's suspicions. +You're awfully close to destroying the LAMBCHOP doomsday device and freeing Commander Lambda's bunny prisoners, but once they're free of the prison blocks, the bunnies are going to need to escape Lambda's space station via the escape pods as quickly as possible. Unfortunately, the halls of the space station are a maze of corridors and dead ends that will be a deathtrap for the escaping bunnies. Fortunately, Commander Lambda has put you in charge of a remodeling project that will give you the opportunity to make things a little easier for the bunnies. Unfortunately (again), you can't just remove all obstacles between the bunnies and the escape pods - at most you can remove one wall per escape pod path, both to maintain structural integrity of the station and to avoid arousing Commander Lambda's suspicions. -You have maps of parts of the space station, each starting at a prison exit and ending at the door to an escape pod. The map is represented as a matrix of 0s and 1s, where 0s are passable space and 1s are impassable walls. The door out of the prison is at the top left (0,0) and the door into an escape pod is at the bottom right (w-1,h-1). +You have maps of parts of the space station, each starting at a prison exit and ending at the door to an escape pod. The map is represented as a matrix of 0s and 1s, where 0s are passable space and 1s are impassable walls. The door out of the prison is at the top left (0,0) and the door into an escape pod is at the bottom right (w-1,h-1). Write a function answer(map) that generates the length of the shortest path from the prison door to the escape pod, where you are allowed to remove one wall as part of your remodeling plans. The path length is the total number of nodes you pass through, counting both the entrance and exit nodes. The starting and ending positions are always passable (0). The map will always be solvable, though you may or may not need to remove a wall. The height and width of the map can be from 2 to 20. Moves can only be made in cardinal directions; no diagonal moves are allowed. -Languages -========= +# Languages To provide a Python solution, edit solution.py To provide a Java solution, edit solution.java -Test cases -========== +# Test cases Inputs: - (int) maze = [[0, 1, 1, 0], [0, 0, 0, 1], [1, 1, 0, 0], [1, 1, 1, 0]] +(int) maze = [[0, 1, 1, 0], [0, 0, 0, 1], [1, 1, 0, 0], [1, 1, 1, 0]] Output: - (int) 7 +(int) 7 Inputs: - (int) maze = [[0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1], [0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0]] +(int) maze = [[0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1], [0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0]] Output: - (int) 11 +(int) 11 Use verify [file] to test your solution and see how it does. When you are finished editing your code, use submit [file] to submit your answer. If your solution passes the test cases, it will be removed from your home folder. # Problem 2 -Queue To Do -=========== +# Queue To Do You're almost ready to make your move to destroy the LAMBCHOP doomsday device, but the security checkpoints that guard the underlying systems of the LAMBCHOP are going to be a problem. You were able to take one down without tripping any alarms, which is great! Except that as Commander Lambda's assistant, you've learned that the checkpoints are about to come under automated review, which means that your sabotage will be discovered and your cover blown - unless you can trick the automated review system. @@ -56,67 +52,62 @@ All worker IDs (including the first worker) are between 0 and 2000000000 inclusi With this information, write a function answer(start, length) that will cover for the missing security checkpoint by outputting the same checksum the guards would normally submit before lunch. You have just enough time to find out the ID of the first worker to be checked (start) and the length of the line (length) before the automatic review occurs, so your program must generate the proper checksum with just those two values. -Languages -========= +# Languages To provide a Python solution, edit solution.py To provide a Java solution, edit solution.java -Test cases -========== +# Test cases Inputs: - (int) start = 0 - (int) length = 3 +(int) start = 0 +(int) length = 3 Output: - (int) 2 +(int) 2 Inputs: - (int) start = 17 - (int) length = 4 +(int) start = 17 +(int) length = 4 Output: - (int) 14 +(int) 14 Use verify [file] to test your solution and see how it does. When you are finished editing your code, use submit [file] to submit your answer. If your solution passes the test cases, it will be removed from your home folder. # Problem 3 -Bomb, Baby! -=========== +# Bomb, Baby! -You're so close to destroying the LAMBCHOP doomsday device you can taste it! But in order to do so, you need to deploy special self-replicating bombs designed for you by the brightest scientists on Bunny Planet. There are two types: Mach bombs (M) and Facula bombs (F). The bombs, once released into the LAMBCHOP's inner workings, will automatically deploy to all the strategic points you've identified and destroy them at the same time. +You're so close to destroying the LAMBCHOP doomsday device you can taste it! But in order to do so, you need to deploy special self-replicating bombs designed for you by the brightest scientists on Bunny Planet. There are two types: Mach bombs (M) and Facula bombs (F). The bombs, once released into the LAMBCHOP's inner workings, will automatically deploy to all the strategic points you've identified and destroy them at the same time. -But there's a few catches. First, the bombs self-replicate via one of two distinct processes: +But there's a few catches. First, the bombs self-replicate via one of two distinct processes: Every Mach bomb retrieves a sync unit from a Facula bomb; for every Mach bomb, a Facula bomb is created; Every Facula bomb spontaneously creates a Mach bomb. -For example, if you had 3 Mach bombs and 2 Facula bombs, they could either produce 3 Mach bombs and 5 Facula bombs, or 5 Mach bombs and 2 Facula bombs. The replication process can be changed each cycle. +For example, if you had 3 Mach bombs and 2 Facula bombs, they could either produce 3 Mach bombs and 5 Facula bombs, or 5 Mach bombs and 2 Facula bombs. The replication process can be changed each cycle. -Second, you need to ensure that you have exactly the right number of Mach and Facula bombs to destroy the LAMBCHOP device. Too few, and the device might survive. Too many, and you might overload the mass capacitors and create a singularity at the heart of the space station - not good! +Second, you need to ensure that you have exactly the right number of Mach and Facula bombs to destroy the LAMBCHOP device. Too few, and the device might survive. Too many, and you might overload the mass capacitors and create a singularity at the heart of the space station - not good! -And finally, you were only able to smuggle one of each type of bomb - one Mach, one Facula - aboard the ship when you arrived, so that's all you have to start with. (Thus it may be impossible to deploy the bombs to destroy the LAMBCHOP, but that's not going to stop you from trying!) +And finally, you were only able to smuggle one of each type of bomb - one Mach, one Facula - aboard the ship when you arrived, so that's all you have to start with. (Thus it may be impossible to deploy the bombs to destroy the LAMBCHOP, but that's not going to stop you from trying!) You need to know how many replication cycles (generations) it will take to generate the correct amount of bombs to destroy the LAMBCHOP. Write a function answer(M, F) where M and F are the number of Mach and Facula bombs needed. Return the fewest number of generations (as a string) that need to pass before you'll have the exact number of bombs necessary to destroy the LAMBCHOP, or the string "impossible" if this can't be done! M and F will be string representations of positive integers no larger than 10^50. For example, if M = "2" and F = "1", one generation would need to pass, so the answer would be "1". However, if M = "2" and F = "4", it would not be possible. -Languages -========= +# Languages To provide a Python solution, edit solution.py To provide a Java solution, edit solution.java -Test cases -========== +# Test cases Inputs: - (string) M = "2" - (string) F = "1" +(string) M = "2" +(string) F = "1" Output: - (string) "1" +(string) "1" Inputs: - (string) M = "4" - (string) F = "7" +(string) M = "4" +(string) F = "7" Output: - (string) "4" +(string) "4" Use verify [file] to test your solution and see how it does. When you are finished editing your code, use submit [file] to submit your answer. If your solution passes the test cases, it will be removed from your home folder. diff --git a/Google/Foobar/53-12-g8f9a222a-beta/README.md b/Google/Foobar/53-12-g8f9a222a-beta/README.md new file mode 100644 index 00000000..396e4066 --- /dev/null +++ b/Google/Foobar/53-12-g8f9a222a-beta/README.md @@ -0,0 +1,11 @@ +Welcome to foobar version 53-12-g8f9a222a-beta (2017-03-06-23:32+0000) + +The latest gossip in the henchman breakroom is that "LAMBCHOP" stands for "Lambda's Anti-Matter Biofuel Collision Hadron Oxidating Potentiator". You're pretty sure it runs on diesel, not biofuel, but you can at least give the commander credit for trying. + +# More Help + +- http://codereview.stackexchange.com/questions/153242/shortest-path-for-google-foobar-prepare-the-bunnies-escape +- http://codereview.stackexchange.com/questions/154482/find-the-shortest-path-through-a-maze-with-a-twist-you-can-knock-down-one-wall/154536 +- http://codereview.stackexchange.com/questions/149440/google-foobar-xor-checksum-challenge +- https://github.com/ivanseed/google-foobar-help/blob/master/challenges/bomb_baby/bomb_baby.md +- http://stackoverflow.com/questions/39975609/what-test-cases-would-this-fail-on-google-foo-bar-challenge-bomb-baby diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round A APAC Test 2017/Country Leader/A-large-practice.in b/Google/Kickstart/2017 Round A APAC/Country Leader/A-large-practice.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round A APAC Test 2017/Country Leader/A-large-practice.in rename to Google/Kickstart/2017 Round A APAC/Country Leader/A-large-practice.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round A APAC Test 2017/Country Leader/A-small-practice.in b/Google/Kickstart/2017 Round A APAC/Country Leader/A-small-practice.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round A APAC Test 2017/Country Leader/A-small-practice.in rename to Google/Kickstart/2017 Round A APAC/Country Leader/A-small-practice.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round A APAC Test 2017/Country Leader/Country Leader.cpp b/Google/Kickstart/2017 Round A APAC/Country Leader/Country Leader.cpp similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round A APAC Test 2017/Country Leader/Country Leader.cpp rename to Google/Kickstart/2017 Round A APAC/Country Leader/Country Leader.cpp diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round A APAC Test 2017/Country Leader/output.out b/Google/Kickstart/2017 Round A APAC/Country Leader/output.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round A APAC Test 2017/Country Leader/output.out rename to Google/Kickstart/2017 Round A APAC/Country Leader/output.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round A APAC Test 2017/Country Leader/sample-input.txt b/Google/Kickstart/2017 Round A APAC/Country Leader/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round A APAC Test 2017/Country Leader/sample-input.txt rename to Google/Kickstart/2017 Round A APAC/Country Leader/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/A-large.in b/Google/Kickstart/2017 Round A/Problem 1/A-large.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/A-large.in rename to Google/Kickstart/2017 Round A/Problem 1/A-large.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/A-small-attempt0.in b/Google/Kickstart/2017 Round A/Problem 1/A-small-attempt0.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/A-small-attempt0.in rename to Google/Kickstart/2017 Round A/Problem 1/A-small-attempt0.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/Problem 1 b/Google/Kickstart/2017 Round A/Problem 1/Problem 1 old mode 100755 new mode 100644 similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/Problem 1 rename to Google/Kickstart/2017 Round A/Problem 1/Problem 1 diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/Problem 1.cpp b/Google/Kickstart/2017 Round A/Problem 1/Problem 1.cpp similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/Problem 1.cpp rename to Google/Kickstart/2017 Round A/Problem 1/Problem 1.cpp diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/output.out b/Google/Kickstart/2017 Round A/Problem 1/output.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/output.out rename to Google/Kickstart/2017 Round A/Problem 1/output.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/output1.out b/Google/Kickstart/2017 Round A/Problem 1/output1.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/output1.out rename to Google/Kickstart/2017 Round A/Problem 1/output1.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/sample-input.txt b/Google/Kickstart/2017 Round A/Problem 1/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 1/sample-input.txt rename to Google/Kickstart/2017 Round A/Problem 1/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/B-small-attempt0.in b/Google/Kickstart/2017 Round A/Problem 2/B-small-attempt0.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/B-small-attempt0.in rename to Google/Kickstart/2017 Round A/Problem 2/B-small-attempt0.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/Problem 2 b/Google/Kickstart/2017 Round A/Problem 2/Problem 2 old mode 100755 new mode 100644 similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/Problem 2 rename to Google/Kickstart/2017 Round A/Problem 2/Problem 2 diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/Problem 2.cpp b/Google/Kickstart/2017 Round A/Problem 2/Problem 2.cpp similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/Problem 2.cpp rename to Google/Kickstart/2017 Round A/Problem 2/Problem 2.cpp diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/output.out b/Google/Kickstart/2017 Round A/Problem 2/output.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/output.out rename to Google/Kickstart/2017 Round A/Problem 2/output.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/output2.out b/Google/Kickstart/2017 Round A/Problem 2/output2.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/output2.out rename to Google/Kickstart/2017 Round A/Problem 2/output2.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/sample-input.txt b/Google/Kickstart/2017 Round A/Problem 2/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2017/Problem 2/sample-input.txt rename to Google/Kickstart/2017 Round A/Problem 2/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/A-large.in b/Google/Kickstart/2017 Round B APAC/Problem 1/A-large.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/A-large.in rename to Google/Kickstart/2017 Round B APAC/Problem 1/A-large.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/A-small-attempt0.in b/Google/Kickstart/2017 Round B APAC/Problem 1/A-small-attempt0.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/A-small-attempt0.in rename to Google/Kickstart/2017 Round B APAC/Problem 1/A-small-attempt0.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/A-small-attempt1.in b/Google/Kickstart/2017 Round B APAC/Problem 1/A-small-attempt1.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/A-small-attempt1.in rename to Google/Kickstart/2017 Round B APAC/Problem 1/A-small-attempt1.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/Problem 1.cpp b/Google/Kickstart/2017 Round B APAC/Problem 1/Problem 1.cpp similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/Problem 1.cpp rename to Google/Kickstart/2017 Round B APAC/Problem 1/Problem 1.cpp diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/output.out b/Google/Kickstart/2017 Round B APAC/Problem 1/output.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/output.out rename to Google/Kickstart/2017 Round B APAC/Problem 1/output.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/sample-input.txt b/Google/Kickstart/2017 Round B APAC/Problem 1/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 1/sample-input.txt rename to Google/Kickstart/2017 Round B APAC/Problem 1/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/B-small-attempt0.in b/Google/Kickstart/2017 Round B APAC/Problem 2/B-small-attempt0.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/B-small-attempt0.in rename to Google/Kickstart/2017 Round B APAC/Problem 2/B-small-attempt0.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/B-small-attempt1.in b/Google/Kickstart/2017 Round B APAC/Problem 2/B-small-attempt1.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/B-small-attempt1.in rename to Google/Kickstart/2017 Round B APAC/Problem 2/B-small-attempt1.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/B-small-attempt2.in b/Google/Kickstart/2017 Round B APAC/Problem 2/B-small-attempt2.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/B-small-attempt2.in rename to Google/Kickstart/2017 Round B APAC/Problem 2/B-small-attempt2.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/Problem 2.cpp b/Google/Kickstart/2017 Round B APAC/Problem 2/Problem 2.cpp similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/Problem 2.cpp rename to Google/Kickstart/2017 Round B APAC/Problem 2/Problem 2.cpp diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/output.out b/Google/Kickstart/2017 Round B APAC/Problem 2/output.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/output.out rename to Google/Kickstart/2017 Round B APAC/Problem 2/output.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/sample-input.txt b/Google/Kickstart/2017 Round B APAC/Problem 2/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round B APAC Test 2017/Problem 2/sample-input.txt rename to Google/Kickstart/2017 Round B APAC/Problem 2/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round C APAC Test 2017/Problem 1/Problem 1.cpp b/Google/Kickstart/2017 Round C APAC/Problem 1/Problem 1.cpp similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round C APAC Test 2017/Problem 1/Problem 1.cpp rename to Google/Kickstart/2017 Round C APAC/Problem 1/Problem 1.cpp diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round C APAC Test 2017/Problem 1/output.out b/Google/Kickstart/2017 Round C APAC/Problem 1/output.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round C APAC Test 2017/Problem 1/output.out rename to Google/Kickstart/2017 Round C APAC/Problem 1/output.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round C APAC Test 2017/Problem 1/sample-input.txt b/Google/Kickstart/2017 Round C APAC/Problem 1/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round C APAC Test 2017/Problem 1/sample-input.txt rename to Google/Kickstart/2017 Round C APAC/Problem 1/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round C 2017/Problem A/A.py b/Google/Kickstart/2017 Round C/Problem A/A.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round C 2017/Problem A/A.py rename to Google/Kickstart/2017 Round C/Problem A/A.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem D/output.txt b/Google/Kickstart/2017 Round C/Problem A/o1.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem D/output.txt rename to Google/Kickstart/2017 Round C/Problem A/o1.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round C 2017/Problem A/sample-input.txt b/Google/Kickstart/2017 Round C/Problem A/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round C 2017/Problem A/sample-input.txt rename to Google/Kickstart/2017 Round C/Problem A/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 1/A-large.in b/Google/Kickstart/2017 Round D APAC/Problem 1/A-large.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 1/A-large.in rename to Google/Kickstart/2017 Round D APAC/Problem 1/A-large.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 1/A-small-attempt0.in b/Google/Kickstart/2017 Round D APAC/Problem 1/A-small-attempt0.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 1/A-small-attempt0.in rename to Google/Kickstart/2017 Round D APAC/Problem 1/A-small-attempt0.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 1/Problem 1.cpp b/Google/Kickstart/2017 Round D APAC/Problem 1/Problem 1.cpp similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 1/Problem 1.cpp rename to Google/Kickstart/2017 Round D APAC/Problem 1/Problem 1.cpp diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 1/output.out b/Google/Kickstart/2017 Round D APAC/Problem 1/output.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 1/output.out rename to Google/Kickstart/2017 Round D APAC/Problem 1/output.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 1/sample-input.txt b/Google/Kickstart/2017 Round D APAC/Problem 1/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 1/sample-input.txt rename to Google/Kickstart/2017 Round D APAC/Problem 1/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/B-small-attempt0.in b/Google/Kickstart/2017 Round D APAC/Problem 2/B-small-attempt0.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/B-small-attempt0.in rename to Google/Kickstart/2017 Round D APAC/Problem 2/B-small-attempt0.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/B-small-attempt1.in b/Google/Kickstart/2017 Round D APAC/Problem 2/B-small-attempt1.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/B-small-attempt1.in rename to Google/Kickstart/2017 Round D APAC/Problem 2/B-small-attempt1.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/B-small-attempt2.in b/Google/Kickstart/2017 Round D APAC/Problem 2/B-small-attempt2.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/B-small-attempt2.in rename to Google/Kickstart/2017 Round D APAC/Problem 2/B-small-attempt2.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/Problem 2.cpp b/Google/Kickstart/2017 Round D APAC/Problem 2/Problem 2.cpp similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/Problem 2.cpp rename to Google/Kickstart/2017 Round D APAC/Problem 2/Problem 2.cpp diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/output.out b/Google/Kickstart/2017 Round D APAC/Problem 2/output.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/output.out rename to Google/Kickstart/2017 Round D APAC/Problem 2/output.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/sample-input.txt b/Google/Kickstart/2017 Round D APAC/Problem 2/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round D APAC Test 2017/Problem 2/sample-input.txt rename to Google/Kickstart/2017 Round D APAC/Problem 2/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round D 2017/Problem A/A.py b/Google/Kickstart/2017 Round D/Problem A/A.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round D 2017/Problem A/A.py rename to Google/Kickstart/2017 Round D/Problem A/A.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round D 2017/Problem A/output.txt b/Google/Kickstart/2017 Round D/Problem A/output.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round D 2017/Problem A/output.txt rename to Google/Kickstart/2017 Round D/Problem A/output.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round D 2017/Problem A/sample-input.txt b/Google/Kickstart/2017 Round D/Problem A/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round D 2017/Problem A/sample-input.txt rename to Google/Kickstart/2017 Round D/Problem A/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 1/A-large.in b/Google/Kickstart/2017 Round E APAC/Problem 1/A-large.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 1/A-large.in rename to Google/Kickstart/2017 Round E APAC/Problem 1/A-large.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 1/A-small-attempt0.in b/Google/Kickstart/2017 Round E APAC/Problem 1/A-small-attempt0.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 1/A-small-attempt0.in rename to Google/Kickstart/2017 Round E APAC/Problem 1/A-small-attempt0.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 1/Problem 1.cpp b/Google/Kickstart/2017 Round E APAC/Problem 1/Problem 1.cpp similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 1/Problem 1.cpp rename to Google/Kickstart/2017 Round E APAC/Problem 1/Problem 1.cpp diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 1/output.out b/Google/Kickstart/2017 Round E APAC/Problem 1/output.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 1/output.out rename to Google/Kickstart/2017 Round E APAC/Problem 1/output.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 1/sample-input.txt b/Google/Kickstart/2017 Round E APAC/Problem 1/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 1/sample-input.txt rename to Google/Kickstart/2017 Round E APAC/Problem 1/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 2/B-small-attempt0.in b/Google/Kickstart/2017 Round E APAC/Problem 2/B-small-attempt0.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 2/B-small-attempt0.in rename to Google/Kickstart/2017 Round E APAC/Problem 2/B-small-attempt0.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 2/Problem 2.cpp b/Google/Kickstart/2017 Round E APAC/Problem 2/Problem 2.cpp similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 2/Problem 2.cpp rename to Google/Kickstart/2017 Round E APAC/Problem 2/Problem 2.cpp diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 2/output.out b/Google/Kickstart/2017 Round E APAC/Problem 2/output.out similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 2/output.out rename to Google/Kickstart/2017 Round E APAC/Problem 2/output.out diff --git a/Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 2/sample-input.txt b/Google/Kickstart/2017 Round E APAC/Problem 2/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Round E APAC Test 2017/Problem 2/sample-input.txt rename to Google/Kickstart/2017 Round E APAC/Problem 2/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round E 2017/Problem A/A.py b/Google/Kickstart/2017 Round E/Problem A/A.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round E 2017/Problem A/A.py rename to Google/Kickstart/2017 Round E/Problem A/A.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round E 2017/Problem A/output.txt b/Google/Kickstart/2017 Round E/Problem A/output.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round E 2017/Problem A/output.txt rename to Google/Kickstart/2017 Round E/Problem A/output.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round E 2017/Problem A/sample-input.txt b/Google/Kickstart/2017 Round E/Problem A/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round E 2017/Problem A/sample-input.txt rename to Google/Kickstart/2017 Round E/Problem A/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/A-small-attempt0.in b/Google/Kickstart/2017 Round F/Problem A/A-small-attempt0.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/A-small-attempt0.in rename to Google/Kickstart/2017 Round F/Problem A/A-small-attempt0.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/A-small-attempt1.in b/Google/Kickstart/2017 Round F/Problem A/A-small-attempt1.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/A-small-attempt1.in rename to Google/Kickstart/2017 Round F/Problem A/A-small-attempt1.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/A-small-attempt2.in b/Google/Kickstart/2017 Round F/Problem A/A-small-attempt2.in similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/A-small-attempt2.in rename to Google/Kickstart/2017 Round F/Problem A/A-small-attempt2.in diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/A.py b/Google/Kickstart/2017 Round F/Problem A/A.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/A.py rename to Google/Kickstart/2017 Round F/Problem A/A.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/output.txt b/Google/Kickstart/2017 Round F/Problem A/output.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/output.txt rename to Google/Kickstart/2017 Round F/Problem A/output.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/output0.txt b/Google/Kickstart/2017 Round F/Problem A/output0.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/output0.txt rename to Google/Kickstart/2017 Round F/Problem A/output0.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/output1.txt b/Google/Kickstart/2017 Round F/Problem A/output1.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/output1.txt rename to Google/Kickstart/2017 Round F/Problem A/output1.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/output2.txt b/Google/Kickstart/2017 Round F/Problem A/output2.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/output2.txt rename to Google/Kickstart/2017 Round F/Problem A/output2.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/sample-input.txt b/Google/Kickstart/2017 Round F/Problem A/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem A/sample-input.txt rename to Google/Kickstart/2017 Round F/Problem A/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem D/D.py b/Google/Kickstart/2017 Round F/Problem D/D.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem D/D.py rename to Google/Kickstart/2017 Round F/Problem D/D.py diff --git a/Google/Kickstart/2017 Round F/Problem D/output.txt b/Google/Kickstart/2017 Round F/Problem D/output.txt new file mode 100644 index 00000000..e69de29b diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem D/sample-input.txt b/Google/Kickstart/2017 Round F/Problem D/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round F 2017/Problem D/sample-input.txt rename to Google/Kickstart/2017 Round F/Problem D/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/A/A.py b/Google/Kickstart/2018 Round A/A/A.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/A/A.py rename to Google/Kickstart/2018 Round A/A/A.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/A/sample-input.txt b/Google/Kickstart/2018 Round A/A/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/A/sample-input.txt rename to Google/Kickstart/2018 Round A/A/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/B/B.py b/Google/Kickstart/2018 Round A/B/B.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/B/B.py rename to Google/Kickstart/2018 Round A/B/B.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2018/GBus count/sample-input.txt b/Google/Kickstart/2018 Round A/B/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2018/GBus count/sample-input.txt rename to Google/Kickstart/2018 Round A/B/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/C/C.py b/Google/Kickstart/2018 Round A/C/C.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/C/C.py rename to Google/Kickstart/2018 Round A/C/C.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/B/sample-input.txt b/Google/Kickstart/2018 Round A/C/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/B/sample-input.txt rename to Google/Kickstart/2018 Round A/C/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/D/D.py b/Google/Kickstart/2018 Round A/D/D.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/D/D.py rename to Google/Kickstart/2018 Round A/D/D.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/C/sample-input.txt b/Google/Kickstart/2018 Round A/D/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/C/sample-input.txt rename to Google/Kickstart/2018 Round A/D/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/A/A.py b/Google/Kickstart/2019 Round A/A/A.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/A/A.py rename to Google/Kickstart/2019 Round A/A/A.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/A/output-large.txt b/Google/Kickstart/2019 Round A/A/output-large.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/A/output-large.txt rename to Google/Kickstart/2019 Round A/A/output-large.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/A/sample-input.txt b/Google/Kickstart/2019 Round A/A/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/A/sample-input.txt rename to Google/Kickstart/2019 Round A/A/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/A/sample-output.txt b/Google/Kickstart/2019 Round A/A/sample-output.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/A/sample-output.txt rename to Google/Kickstart/2019 Round A/A/sample-output.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/B/B.py b/Google/Kickstart/2019 Round A/B/B.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/B/B.py rename to Google/Kickstart/2019 Round A/B/B.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/D/sample-input.txt b/Google/Kickstart/2019 Round A/B/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2018/D/sample-input.txt rename to Google/Kickstart/2019 Round A/B/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/C/C.py b/Google/Kickstart/2019 Round A/C/C.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/C/C.py rename to Google/Kickstart/2019 Round A/C/C.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/B/sample-input.txt b/Google/Kickstart/2019 Round A/C/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/B/sample-input.txt rename to Google/Kickstart/2019 Round A/C/sample-input.txt diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/D/D.py b/Google/Kickstart/2019 Round A/D/D.py similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/D/D.py rename to Google/Kickstart/2019 Round A/D/D.py diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/C/sample-input.txt b/Google/Kickstart/2019 Round A/D/sample-input.txt similarity index 100% rename from Hiring Challenges/Google-APAC-Kickstart/Kickstart Round A 2019/C/sample-input.txt rename to Google/Kickstart/2019 Round A/D/sample-input.txt diff --git a/Google/Kickstart/2020 Round H/A/Google KickStart 2020 Round H - Retype.cpp b/Google/Kickstart/2020 Round H/A/Google KickStart 2020 Round H - Retype.cpp new file mode 100644 index 00000000..99306519 --- /dev/null +++ b/Google/Kickstart/2020 Round H/A/Google KickStart 2020 Round H - Retype.cpp @@ -0,0 +1,15 @@ +#include +using namespace std; + +int main(){ + int a; + cin >> a; + + for(long int i=1; i<=a; i++){ + long int n, k, s; + cin >> n >> k >> s; + + long int answer = min((k + n), ((k - s) + (n - s) + (k - 1) + 1)); + cout << "Case #" << i << ": " << answer << endl; + } +} diff --git a/Google/Kickstart/2020 Round H/A/sample-input.txt b/Google/Kickstart/2020 Round H/A/sample-input.txt new file mode 100644 index 00000000..5aae0a15 --- /dev/null +++ b/Google/Kickstart/2020 Round H/A/sample-input.txt @@ -0,0 +1,3 @@ +2 +10 5 2 +10 7 6 \ No newline at end of file diff --git a/Google/Kickstart/2020 Round H/A/sample-output.txt b/Google/Kickstart/2020 Round H/A/sample-output.txt new file mode 100644 index 00000000..b6c3965e --- /dev/null +++ b/Google/Kickstart/2020 Round H/A/sample-output.txt @@ -0,0 +1,2 @@ +Case #1: 15 +Case #2: 12 \ No newline at end of file diff --git a/Google/Kickstart/README.md b/Google/Kickstart/README.md new file mode 100644 index 00000000..57c7ae47 --- /dev/null +++ b/Google/Kickstart/README.md @@ -0,0 +1,3 @@ +# Resources + +- https://docs.google.com/document/d/1NUWaebg6tgYZZzgRUKhmR3rLCwkajfvx5lsPAIxDE0s/ diff --git a/Hackathons/Angular Attack/Angular Attack 2017 - Invoice.pdf b/Hackathons/Angular Attack/Angular Attack 2017 - Invoice.pdf deleted file mode 100644 index ed38e143..00000000 Binary files a/Hackathons/Angular Attack/Angular Attack 2017 - Invoice.pdf and /dev/null differ diff --git a/Hackathons/Devpost Amazon Alexa Skills Challenge/Bank Account Info.pdf b/Hackathons/Devpost Amazon Alexa Skills Challenge/Bank Account Info.pdf deleted file mode 100644 index b61271eb..00000000 Binary files a/Hackathons/Devpost Amazon Alexa Skills Challenge/Bank Account Info.pdf and /dev/null differ diff --git a/Hackathons/Devpost Amazon Alexa Skills Challenge/CERT_AlexaAffidavitofEligibility_TeamAllocator.pdf b/Hackathons/Devpost Amazon Alexa Skills Challenge/CERT_AlexaAffidavitofEligibility_TeamAllocator.pdf deleted file mode 100644 index 40bb1f0b..00000000 Binary files a/Hackathons/Devpost Amazon Alexa Skills Challenge/CERT_AlexaAffidavitofEligibility_TeamAllocator.pdf and /dev/null differ diff --git a/Competitions/HackerEarth/March Clash '17/Ball Elimination.py b/HackerEarth/March Clash '17/Ball Elimination.py similarity index 100% rename from Competitions/HackerEarth/March Clash '17/Ball Elimination.py rename to HackerEarth/March Clash '17/Ball Elimination.py diff --git a/Competitions/HackerEarth/March Clash '17/Minimal Popcount.py b/HackerEarth/March Clash '17/Minimal Popcount.py similarity index 100% rename from Competitions/HackerEarth/March Clash '17/Minimal Popcount.py rename to HackerEarth/March Clash '17/Minimal Popcount.py diff --git a/Competitions/HackerEarth/September Circuits '17/Coin Game.py b/HackerEarth/September Circuits '17/Coin Game.py similarity index 100% rename from Competitions/HackerEarth/September Circuits '17/Coin Game.py rename to HackerEarth/September Circuits '17/Coin Game.py diff --git a/Hackerrank/Practice/Python/1.introduction/01.Say _Hello, World!_ With Python.py b/Hackerrank/Practice/Python/1.introduction/01.Say _Hello, World!_ With Python.py new file mode 100644 index 00000000..d94f0099 --- /dev/null +++ b/Hackerrank/Practice/Python/1.introduction/01.Say _Hello, World!_ With Python.py @@ -0,0 +1,2 @@ +print("Hello, World!") + diff --git a/Hackerrank/Practice/Python/1.introduction/02.Python If-Else.py b/Hackerrank/Practice/Python/1.introduction/02.Python If-Else.py new file mode 100644 index 00000000..c295518f --- /dev/null +++ b/Hackerrank/Practice/Python/1.introduction/02.Python If-Else.py @@ -0,0 +1,24 @@ +#!/bin/python3 + + +import math +import os +import random +import re +import sys + + + +if __name__ == '__main__': + n = int(input().strip()) +#own code +if n%2==1: + print ("Weird") +else: + if n>=2 and n<=5: + print ("Not Weird") + elif n>=6 and n<=20: + print ("Weird") + elif n>20: + print ("Not Weird") + diff --git a/Hackerrank/Practice/Python/1.introduction/03.Arithmetic Operators.py b/Hackerrank/Practice/Python/1.introduction/03.Arithmetic Operators.py new file mode 100644 index 00000000..3c2593e1 --- /dev/null +++ b/Hackerrank/Practice/Python/1.introduction/03.Arithmetic Operators.py @@ -0,0 +1,8 @@ +if __name__ == '__main__': + a = int(input()) + b = int(input()) + print (a+b) + print (a-b) + print (a*b) + + diff --git a/Hackerrank/Practice/Python/1.introduction/04.Python_ Division.py b/Hackerrank/Practice/Python/1.introduction/04.Python_ Division.py new file mode 100644 index 00000000..966899c2 --- /dev/null +++ b/Hackerrank/Practice/Python/1.introduction/04.Python_ Division.py @@ -0,0 +1,7 @@ +if __name__ == '__main__': + a = int(input()) + b = int(input()) + print(a//b) + print(a/b) + + diff --git a/Hackerrank/Practice/Python/1.introduction/05.Loops.py b/Hackerrank/Practice/Python/1.introduction/05.Loops.py new file mode 100644 index 00000000..baa97842 --- /dev/null +++ b/Hackerrank/Practice/Python/1.introduction/05.Loops.py @@ -0,0 +1,6 @@ +if __name__ == '__main__': + n = int(input()) + for i in range(n): + print(i**2) + + diff --git a/Hackerrank/Practice/Python/1.introduction/06.Write a function.py b/Hackerrank/Practice/Python/1.introduction/06.Write a function.py new file mode 100644 index 00000000..953c4ad7 --- /dev/null +++ b/Hackerrank/Practice/Python/1.introduction/06.Write a function.py @@ -0,0 +1,16 @@ +def is_leap(year): + leap = False + + # Write your logic here + + if year%400==0: + leap=True + elif year%100==0: + leap=False + elif year%4==0: + leap=True + + return leap + +year = int(input()) + diff --git a/Hackerrank/Practice/Python/1.introduction/07.Print Function.py b/Hackerrank/Practice/Python/1.introduction/07.Print Function.py new file mode 100644 index 00000000..0babe59e --- /dev/null +++ b/Hackerrank/Practice/Python/1.introduction/07.Print Function.py @@ -0,0 +1,6 @@ +if __name__ == '__main__': + n = int(input()) + for i in range(1,n+1): + print(i,end='') + + diff --git a/Hackerrank/Practice/Python/10.Built-Ins/69.Zipped!.py b/Hackerrank/Practice/Python/10.Built-Ins/69.Zipped!.py new file mode 100644 index 00000000..6ad0cf12 --- /dev/null +++ b/Hackerrank/Practice/Python/10.Built-Ins/69.Zipped!.py @@ -0,0 +1,8 @@ +n,x = map(int,input().split()) + +sheet = [] +for _ in range(x): + sheet.append( map(float, input().split()) ) + +for i in zip(*sheet): + print( sum(i)/len(i)) diff --git a/Hackerrank/Practice/Python/10.Built-Ins/70.Input().py b/Hackerrank/Practice/Python/10.Built-Ins/70.Input().py new file mode 100644 index 00000000..48f2cac7 --- /dev/null +++ b/Hackerrank/Practice/Python/10.Built-Ins/70.Input().py @@ -0,0 +1,6 @@ +x,k=map(int,input().split()) +fx=eval(input()) +if fx==k: + print("True") +else: + print("False") diff --git a/Hackerrank/Practice/Python/10.Built-Ins/71.Python Evaluation.py b/Hackerrank/Practice/Python/10.Built-Ins/71.Python Evaluation.py new file mode 100644 index 00000000..653332f1 --- /dev/null +++ b/Hackerrank/Practice/Python/10.Built-Ins/71.Python Evaluation.py @@ -0,0 +1,2 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +eval(input()) diff --git a/Hackerrank/Practice/Python/10.Built-Ins/72.Athlete Sort.py b/Hackerrank/Practice/Python/10.Built-Ins/72.Athlete Sort.py new file mode 100644 index 00000000..bb011f1c --- /dev/null +++ b/Hackerrank/Practice/Python/10.Built-Ins/72.Athlete Sort.py @@ -0,0 +1,13 @@ +import math +import os +import random +import re +import sys + +N, M = map(int, input().split()) + +rows = [input()for _ in range(N)] +K = int(input()) + +for row in sorted(rows, key=lambda row: int(row.split()[K])): + print(row) diff --git a/Hackerrank/Practice/Python/10.Built-Ins/73.Any or All.py b/Hackerrank/Practice/Python/10.Built-Ins/73.Any or All.py new file mode 100644 index 00000000..956d41e5 --- /dev/null +++ b/Hackerrank/Practice/Python/10.Built-Ins/73.Any or All.py @@ -0,0 +1,6 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +N=int(input()) +x=input().split() +#N,n = int(raw_input()),raw_input().split() +print (all([int(i)>0 for i in x]) and any([j == j[::-1] for j in x])) + diff --git a/Hackerrank/Practice/Python/10.Built-Ins/74.ginortS.py b/Hackerrank/Practice/Python/10.Built-Ins/74.ginortS.py new file mode 100644 index 00000000..b7e57bd7 --- /dev/null +++ b/Hackerrank/Practice/Python/10.Built-Ins/74.ginortS.py @@ -0,0 +1,18 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +s=input() +lower,upper,odd,even=[],[],[],[] +for i in s: + if(i.islower()): + lower.append(ord(i)) + elif(i.isupper()): + upper.append(ord(i)) + + elif(int(i)%2==1): + odd.append(ord(i)) + else: + even.append(ord(i)) +lower.sort(),upper.sort(),odd.sort(),even.sort() +marge=lower+upper+odd+even + +for i in marge: + print(chr(i),end="") diff --git a/Hackerrank/Practice/Python/11.Classes/75.Classes_ Dealing with Complex Numbers.py b/Hackerrank/Practice/Python/11.Classes/75.Classes_ Dealing with Complex Numbers.py new file mode 100644 index 00000000..5eaffd79 --- /dev/null +++ b/Hackerrank/Practice/Python/11.Classes/75.Classes_ Dealing with Complex Numbers.py @@ -0,0 +1,58 @@ +import math +class Complex(object): + def __init__(self, real, imaginary): + self.real=real + self.imaginary=imaginary + + def __add__(self, no): + real=self.real+no.real + imaginary=self.imaginary+no.imaginary + return(Complex(real,imaginary)) + + + def __sub__(self, no): + real=self.real-no.real + imaginary=self.imaginary-no.imaginary + + return(Complex(real,imaginary)) + + def __mul__(self, no): + real=self.real*no.real-self.imaginary*no.imaginary + imaginary=self.real*no.imaginary+self.imaginary*no.real + return(Complex(real,imaginary)) + + + def __truediv__(self, no): + x=float(no.real**2+no.imaginary**2) + y=self*Complex(no.real,-no.imaginary) + real=y.real/x + imaginary=y.imaginary/x + return(Complex(real,imaginary)) + + + def mod(self): + real=math.sqrt(self.real**2+self.imaginary**2) + return(Complex(real,0)) + + + def __str__(self): + if self.imaginary == 0: + result = "%.2f+0.00i" % (self.real) + elif self.real == 0: + if self.imaginary >= 0: + result = "0.00+%.2fi" % (self.imaginary) + else: + result = "0.00-%.2fi" % (abs(self.imaginary)) + elif self.imaginary > 0: + result = "%.2f+%.2fi" % (self.real, self.imaginary) + else: + result = "%.2f-%.2fi" % (self.real, abs(self.imaginary)) + return result + + +if __name__ == '__main__': + c = map(float, input().split()) + d = map(float, input().split()) + x = Complex(*c) + y = Complex(*d) + print(*map(str, [x+y, x-y, x*y, x/y, x.mod(), y.mod()]), sep='\n') diff --git a/Hackerrank/Practice/Python/11.Classes/76.Class 2 - Find the Torsional Angle.py b/Hackerrank/Practice/Python/11.Classes/76.Class 2 - Find the Torsional Angle.py new file mode 100644 index 00000000..ec4c5813 --- /dev/null +++ b/Hackerrank/Practice/Python/11.Classes/76.Class 2 - Find the Torsional Angle.py @@ -0,0 +1,44 @@ +import math + +class Points(object): + def __init__(self, x, y, z): + self.x=x + self.y=y + self.z=z + + def __sub__(self, no): + x=self.x-no.x + y=self.y-no.y + z=self.z-no.z + return Points(x,y,z) + + def dot(self, no): + x=self.x*no.x + y=self.y*no.y + z=self.z*no.z + return (x+y+z) + + + + def cross(self, no): + x=self.y*no.z-self.z*no.y + y=self.x*no.z-self.z*no.x + z=self.x*no.y-self.y*no.x + return Points(x,y,z) + + def absolute(self): + return pow((self.x ** 2 + self.y ** 2 + self.z ** 2), 0.5) + +if __name__ == '__main__': + points = list() + for i in range(4): + a = list(map(float, input().split())) + points.append(a) + + a, b, c, d = Points(*points[0]), Points(*points[1]), Points(*points[2]), Points(*points[3]) + x = (b - a).cross(c - b) + y = (c - b).cross(d - c) + angle = math.acos(x.dot(y) / (x.absolute() * y.absolute())) + + print("%.2f" % math.degrees(angle)) + diff --git a/Hackerrank/Practice/Python/12.Python Functionals/77.Map and Lambda Function.py b/Hackerrank/Practice/Python/12.Python Functionals/77.Map and Lambda Function.py new file mode 100644 index 00000000..322c43ef --- /dev/null +++ b/Hackerrank/Practice/Python/12.Python Functionals/77.Map and Lambda Function.py @@ -0,0 +1,12 @@ +cube = lambda x: x**3# complete the lambda function +def fibonacci(n): + # return a list of fibonacci numbers + lis = [0,1] + for i in range(2,n): + lis.append(lis[i-2] + lis[i-1]) + return(lis[0:n]) # complete the lambda function + + +if __name__ == '__main__': + n = int(input()) + print(list(map(cube, fibonacci(n)))) diff --git a/Hackerrank/Practice/Python/12.Python Functionals/78.Validating Email Addresses With a Filter.py b/Hackerrank/Practice/Python/12.Python Functionals/78.Validating Email Addresses With a Filter.py new file mode 100644 index 00000000..8f76bf2d --- /dev/null +++ b/Hackerrank/Practice/Python/12.Python Functionals/78.Validating Email Addresses With a Filter.py @@ -0,0 +1,16 @@ +def fun(s): + try: + username,url=s.split('@') + website,extension=url.split('.') + except ValueError: + return False + if username.replace('-','').replace('_','').isalnum() is False: + return False + elif website.isalnum() is False: + return False + elif len(extension)>3: + return False + else: + return True + + diff --git a/Hackerrank/Practice/Python/12.Python Functionals/79.Reduce Function.py b/Hackerrank/Practice/Python/12.Python Functionals/79.Reduce Function.py new file mode 100644 index 00000000..ed08faa8 --- /dev/null +++ b/Hackerrank/Practice/Python/12.Python Functionals/79.Reduce Function.py @@ -0,0 +1,13 @@ +from fractions import Fraction +from functools import reduce + +def product(fracs): + t =reduce(lambda numerator,denominator:numerator*denominator,fracs) + # complete this line with a reduce statement + return t.numerator, t.denominator + +if __name__ == '__main__': + fracs = [] + for _ in range(int(input())): + fracs.append(Fraction(*map(int, input().split()))) + result = product(fracs) diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/80.Detect Floating Point Number.py b/Hackerrank/Practice/Python/13.Regex and Parsing/80.Detect Floating Point Number.py new file mode 100644 index 00000000..e11479a8 --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/80.Detect Floating Point Number.py @@ -0,0 +1,6 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +import re +for i in range(int(input())): + x=input() + #print(bool(re.match([r'^[-+]?[0-9]*.[0-9]+$'],input()))) + print(bool(re.match(r'^[-+]?[0-9]*[.][0-9]*$',x))) diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/81.Re.split().py b/Hackerrank/Practice/Python/13.Regex and Parsing/81.Re.split().py new file mode 100644 index 00000000..fe881d67 --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/81.Re.split().py @@ -0,0 +1,3 @@ +regex_pattern = r'[,.]' +import re +print("\n".join(re.split(regex_pattern, input()))) diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/82.Group(), Groups() & Groupdict().py b/Hackerrank/Practice/Python/13.Regex and Parsing/82.Group(), Groups() & Groupdict().py new file mode 100644 index 00000000..948f1cbe --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/82.Group(), Groups() & Groupdict().py @@ -0,0 +1,9 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +import re +m = re.search(r'([a-zA-Z0-9])\1', input()) +#print(m.group(1) if m else -1) +if m: + print(m.group(1)) +else: + print(-1) + diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/83.Re.findall() & Re.finditer().py b/Hackerrank/Practice/Python/13.Regex and Parsing/83.Re.findall() & Re.finditer().py new file mode 100644 index 00000000..3c8bcbe7 --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/83.Re.findall() & Re.finditer().py @@ -0,0 +1,14 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUTi +import re +sub_string=re.findall(r'(?<=[qwrtypsdfghjklzxcvbnm])([aeiou]{2,})(?=[qwrtypsdfghjklzxcvbnm])',input(),re.I) +''' +if sub_string: + for s in sub_string: + print(s) +else: + print(-1) +''' +print('\n'.join(sub_string or ['-1'])) +#print('\n'.join(sub_string or ['-1'])) + + diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/84.Re.start() & Re.end().py b/Hackerrank/Practice/Python/13.Regex and Parsing/84.Re.start() & Re.end().py new file mode 100644 index 00000000..73543831 --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/84.Re.start() & Re.end().py @@ -0,0 +1,32 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT + +''' +S = input() +k = input() +import re +pattern = re.compile(k) +r = pattern.search(S) +if not r: print((-1, -1)) +while r: + print ('({0}, {1})'.format(r.start(), r.end() - 1)) + r = pattern.search(S,r.start() + 1) +''' +import re +s = input() +k = input() +index = 0 + +if re.search(k, s): + while index+len(k) < len(s): + + m = re.search(k, s[index:]) #begins search with new index + + print("({0}, {1})".format(index+m.start(), index+m.end()-1)) + + + index += m.start() + 1 + # c+=1 + #print(index) #assign new index by +1 +#elif re.search(k, s)==None: +else: + print((-1,-1)) diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/85.Regex Substitution.py b/Hackerrank/Practice/Python/13.Regex and Parsing/85.Regex Substitution.py new file mode 100644 index 00000000..a6743132 --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/85.Regex Substitution.py @@ -0,0 +1,18 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +import re + +for _ in range(int(input())): + s = input() + s = re.sub(r" \&\&(?= )", " and",s) + s = re.sub(r" \|\|(?= )", " or", s) + print(s) +''' +for _ in range(int(input())): + line = input() + + while ' && ' in line or ' || ' in line: + line = line.replace(" && ", " and ").replace(" || ", " or ") + + print(line) +''' + diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/86.Validating Roman Numerals.py b/Hackerrank/Practice/Python/13.Regex and Parsing/86.Validating Roman Numerals.py new file mode 100644 index 00000000..3a44a40a --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/86.Validating Roman Numerals.py @@ -0,0 +1,4 @@ +regex_pattern = r"^M{0,3}(CD|CM|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$" # Do not delete 'r'. + +import re +print(str(bool(re.match(regex_pattern, input())))) diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/87.Validating phone numbers.py b/Hackerrank/Practice/Python/13.Regex and Parsing/87.Validating phone numbers.py new file mode 100644 index 00000000..c6eaf6f8 --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/87.Validating phone numbers.py @@ -0,0 +1,22 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +import re +for i in range(int(input())): + x=input() + + if re.match(r"[7,8,9]\d{9}$",x): + print("YES") + else: + print("NO") +''' +[789]\d{9}$ + +The above statement is validating the number/count of digits is 10 or not also + +one digit out of [7,8,9] ==> One digit count done \d means any number of digits but here we used \d{9} which means 9 digits + +previously 1 digit and later on 9 digits ==> total 10 digits were counted and validated + +if you want to make a phone number with 11 digit validation try below and check so that doubts will get resolved + +[789]\d{10}$ +''' diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/88.Validating and Parsing Email Addresses.py b/Hackerrank/Practice/Python/13.Regex and Parsing/88.Validating and Parsing Email Addresses.py new file mode 100644 index 00000000..0acec696 --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/88.Validating and Parsing Email Addresses.py @@ -0,0 +1,9 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +import re +n = int(input()) +for _ in range(n): + x, y = input().split() + m = re.match(r'^<[a-zA-Z][\w\-\.\_]+@[a-zA-Z]+\.[a-zA-Z]{1,3}>$', y) + if m: + print(x,y) +#(r'^<[a-zA-Z0-9_.-]+@[a-zA-Z]+\.[a-zA-Z]{1,3}>$', y) diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/89.Hex Color Code.py b/Hackerrank/Practice/Python/13.Regex and Parsing/89.Hex Color Code.py new file mode 100644 index 00000000..af08fdfd --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/89.Hex Color Code.py @@ -0,0 +1,13 @@ +# Enter your code here. Read input from STDIN. Print output to STD +import re +N = int(input()) +for _ in range(N): + line = input() + codes = [j for j in re.findall(r'[\s:](#[a-f\d]{6}|#[a-f\d]{3})[\s:),;]', line, re.I)] + #here \d means(0,9) + for code in codes: + print (code) + + + + diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/90.HTML Parser - Part 1.py b/Hackerrank/Practice/Python/13.Regex and Parsing/90.HTML Parser - Part 1.py new file mode 100644 index 00000000..c1bcff6e --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/90.HTML Parser - Part 1.py @@ -0,0 +1,18 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +from html.parser import HTMLParser +class MyHTMLParser(HTMLParser): + def handle_starttag(self, tag, attrs): + print ('Start :',tag) + for ele in attrs: + print ('->',ele[0],'>',ele[1]) + + def handle_endtag(self, tag): + print ('End :',tag) + + def handle_startendtag(self, tag, attrs): + print ('Empty :',tag) + for ele in attrs: + print ('->',ele[0],'>',ele[1]) + +MyParser = MyHTMLParser() +MyParser.feed(''.join([input().strip() for _ in range(int(input()))])) diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/91.HTML Parser - Part 2.py b/Hackerrank/Practice/Python/13.Regex and Parsing/91.HTML Parser - Part 2.py new file mode 100644 index 00000000..259a60df --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/91.HTML Parser - Part 2.py @@ -0,0 +1,32 @@ +from html.parser import HTMLParser + +class MyHTMLParser(HTMLParser): + + def handle_comment(self, comment): + if '\n' in comment: + print('>>> Multi-line Comment') + else: + print('>>> Single-line Comment') + + print(comment) + + def handle_data(self, data): + if data == '\n': return + print('>>> Data') + print(data) + + + + + + + + +html = "" +for i in range(int(input())): + html += input().rstrip() + html += '\n' + +parser = MyHTMLParser() +parser.feed(html) +parser.close() diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/92.Detect HTML Tags, Attributes and Attribute Values.py b/Hackerrank/Practice/Python/13.Regex and Parsing/92.Detect HTML Tags, Attributes and Attribute Values.py new file mode 100644 index 00000000..219c365f --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/92.Detect HTML Tags, Attributes and Attribute Values.py @@ -0,0 +1,11 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +from html.parser import HTMLParser +class MyHTMLParser(HTMLParser): + def handle_starttag(self, tag, attrs): + print(tag) + [print('-> {} > {}'.format(*attr)) for attr in attrs] + +html = '\n'.join([input() for _ in range(int(input()))]) +parser = MyHTMLParser() +parser.feed(html) +parser.close() diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/93.Validating UID.py b/Hackerrank/Practice/Python/13.Regex and Parsing/93.Validating UID.py new file mode 100644 index 00000000..c8872046 --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/93.Validating UID.py @@ -0,0 +1,23 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +import re +for i in range(int(input())): + x=input() + if bool(re.search(r'(.*[A-Z]){2}',x))and bool(re.search(r'(.*[\d]){3}',x)): + #if x.isalnum() and len(x)==10: #this is also correct + if (re.search(r'^[a-zA-Z0-9]{10}$',x)): + + + if re.search(r'.*(.).*\1',x): + #here .* means any character except line break + #here () means capturing group in our case there is two + #capturing group so it checks two of it + #under this() there is . which means means any character except line break + # + print("Invalid") + else: + print("Valid") + else: + print("Invalid") + else: + print("Invalid") + diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/94.Validating Credit Card Numbers.py b/Hackerrank/Practice/Python/13.Regex and Parsing/94.Validating Credit Card Numbers.py new file mode 100644 index 00000000..d7c4f2b8 --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/94.Validating Credit Card Numbers.py @@ -0,0 +1,22 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT + +import re +for _ in range(int(input())): + x=input() + if re.search(r"^[456]([\d]{15}|[\d]{3}(-[\d]{4}){3})$", x) and not re.search(r"([\d])\1\1\1", x.replace("-", "")): + print("Valid") + else: + print("Invalid") +''' +import re +TESTER = re.compile( + r"^" + r"(?!.*(\d)(-?\1){3})" + r"[456]" + r"\d{3}" + r"(?:-?\d{4}){3}" + r"$") +for _ in range(int(input().strip())): + print("Valid" if TESTER.search(input().strip()) else "Invalid") + ''' + diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/95.Validating Postal Codes.py b/Hackerrank/Practice/Python/13.Regex and Parsing/95.Validating Postal Codes.py new file mode 100644 index 00000000..a1631f4e --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/95.Validating Postal Codes.py @@ -0,0 +1,9 @@ +regex_integer_in_range = r"^[1-9][\d]{5}$" # Do not delete 'r'. +regex_alternating_repetitive_digit_pair = r"(\d)(?=\d\1)" # Do not delete 'r'. + + +import re +P = input() + +print (bool(re.match(regex_integer_in_range, P)) +and len(re.findall(regex_alternating_repetitive_digit_pair, P)) < 2) diff --git a/Hackerrank/Practice/Python/13.Regex and Parsing/96.Matrix Script.py b/Hackerrank/Practice/Python/13.Regex and Parsing/96.Matrix Script.py new file mode 100644 index 00000000..589a4f8d --- /dev/null +++ b/Hackerrank/Practice/Python/13.Regex and Parsing/96.Matrix Script.py @@ -0,0 +1,14 @@ +#!/bin/python3 +import re +n,m=map(int,input().split()) +l=list() +for i in range(n): + l.append(input()) +l=list(zip(*l)) +#print(l) +s="" +for i in l: + s=s+"".join(i) +#print(s) +s=re.sub(r"\b[^a-zA-Z0-9]+\b",r" ",s) +print(s) diff --git a/Hackerrank/Practice/Python/14.Closures and Decorators/99.Standardize Mobile Number Using Decorators.py b/Hackerrank/Practice/Python/14.Closures and Decorators/99.Standardize Mobile Number Using Decorators.py new file mode 100644 index 00000000..a7526922 --- /dev/null +++ b/Hackerrank/Practice/Python/14.Closures and Decorators/99.Standardize Mobile Number Using Decorators.py @@ -0,0 +1,15 @@ +def wrapper(f): + def fun(l): + f(["+91 "+c1[-10:-5]+" "+c1[-5:] for c1 in l]) + # complete the function + return fun + +@wrapper +def sort_phone(l): + print(*sorted(l), sep='\n') + +if __name__ == '__main__': + l = [input() for _ in range(int(input()))] + sort_phone(l) + + diff --git a/Hackerrank/Practice/Python/14.Closures and Decorators/991.Decorators 2 - Name Directory.py b/Hackerrank/Practice/Python/14.Closures and Decorators/991.Decorators 2 - Name Directory.py new file mode 100644 index 00000000..330ec069 --- /dev/null +++ b/Hackerrank/Practice/Python/14.Closures and Decorators/991.Decorators 2 - Name Directory.py @@ -0,0 +1,15 @@ +import operator + +def person_lister(f): + def inner(people): + return map(f, sorted(people, key=lambda x: int(x[2]))) + # complete the function + return inner + +@person_lister +def name_format(person): + return ("Mr. " if person[3] == "M" else "Ms. ") + person[0] + " " + person[1] + +if __name__ == '__main__': + people = [input().split() for i in range(int(input()))] + print(*name_format(people), sep='\n') diff --git a/Hackerrank/Practice/Python/15.numpy/1.Arrays.py b/Hackerrank/Practice/Python/15.numpy/1.Arrays.py new file mode 100644 index 00000000..af762030 --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/1.Arrays.py @@ -0,0 +1,10 @@ +import numpy + +def arrays(arr): + # complete this function + # use numpy.array + return numpy.array(arr[::-1],float) + +arr = input().strip().split(' ') +result = arrays(arr) +print(result) diff --git a/Hackerrank/Practice/Python/15.numpy/10.Min and Max.py b/Hackerrank/Practice/Python/15.numpy/10.Min and Max.py new file mode 100644 index 00000000..eb4c0ba8 --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/10.Min and Max.py @@ -0,0 +1,5 @@ +import numpy as arr +n,m=map(int,input().split()) +ar=([list(map(int,input().split()))for _ in range(n)]) +arr1=arr.min(ar,axis=1) +print(max(arr1)) diff --git a/Hackerrank/Practice/Python/15.numpy/11.Mean, Var, and Std .py b/Hackerrank/Practice/Python/15.numpy/11.Mean, Var, and Std .py new file mode 100644 index 00000000..aeb2f1f9 --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/11.Mean, Var, and Std .py @@ -0,0 +1,7 @@ +import numpy as maa +n,m=map(int,input().split()) +maa.set_printoptions(legacy='1.13') +arr=([list(map(int,input().split()))for _ in range(n)]) +print(maa.mean(arr,axis=1)) +print(maa.var(arr,axis=0)) +print(maa.std(arr,axis=None)) diff --git a/Hackerrank/Practice/Python/15.numpy/12.Dot and Cross.py b/Hackerrank/Practice/Python/15.numpy/12.Dot and Cross.py new file mode 100644 index 00000000..c895f978 --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/12.Dot and Cross.py @@ -0,0 +1,8 @@ +import numpy +n=int(input()) +arr1=([list(map(int,input().split()))for _ in range(n)]) +arr2=([list(map(int,input().split()))for _ in range(n)]) +print(numpy.dot(arr1,arr2)) + + + diff --git a/Hackerrank/Practice/Python/15.numpy/13.Inner and Outer.py b/Hackerrank/Practice/Python/15.numpy/13.Inner and Outer.py new file mode 100644 index 00000000..9cccad82 --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/13.Inner and Outer.py @@ -0,0 +1,7 @@ +import numpy +arr1=numpy.array(input().split(),int) +arr2=(numpy.array(input().split(),int)) +print(numpy.inner(arr1,arr2)) +print(numpy.outer(arr1,arr2)) + + diff --git a/Hackerrank/Practice/Python/15.numpy/14.Polynomials.py b/Hackerrank/Practice/Python/15.numpy/14.Polynomials.py new file mode 100644 index 00000000..c534c44b --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/14.Polynomials.py @@ -0,0 +1,7 @@ +import numpy +lis=numpy.array(input().split(),float) +x=int(input()) +print(numpy.polyval(lis,x)) + + + diff --git a/Hackerrank/Practice/Python/15.numpy/15.Linear Algebra.py b/Hackerrank/Practice/Python/15.numpy/15.Linear Algebra.py new file mode 100644 index 00000000..4c741820 --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/15.Linear Algebra.py @@ -0,0 +1,8 @@ +import numpy +n=int(input()) +numpy.set_printoptions(legacy='1.13') +arr1=([list(map(float,input().split()))for _ in range(n)]) +print (numpy.linalg.det(arr1)) + + + diff --git a/Hackerrank/Practice/Python/15.numpy/2.Shape and Reshape.py b/Hackerrank/Practice/Python/15.numpy/2.Shape and Reshape.py new file mode 100644 index 00000000..1fb631fe --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/2.Shape and Reshape.py @@ -0,0 +1,9 @@ + +import numpy as num +x=num.array (input().split(),int) +print(x.reshape(3,3)) +#print(np.array(input().split(),int).reshape(3,3)) + + + + diff --git a/Hackerrank/Practice/Python/15.numpy/3.Transpose and Flatten.py b/Hackerrank/Practice/Python/15.numpy/3.Transpose and Flatten.py new file mode 100644 index 00000000..ad28d89d --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/3.Transpose and Flatten.py @@ -0,0 +1,8 @@ +import numpy as num +n, m = map(int, input().split()) +array = num.array([input().split() for _ in range(n)], int) +print (array.transpose()) +print (array.flatten()) + + + diff --git a/Hackerrank/Practice/Python/15.numpy/4.Concatenate.py b/Hackerrank/Practice/Python/15.numpy/4.Concatenate.py new file mode 100644 index 00000000..95ff169e --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/4.Concatenate.py @@ -0,0 +1,8 @@ +import numpy as np +n, m, p = map(int,input().split()) +arrp1 = np.array([input().split() for _ in range(n)],int) +arrp2 = np.array([input().split() for _ in range(m)],int) +print(np.concatenate((arrp1, arrp2), axis = 0)) + + + diff --git a/Hackerrank/Practice/Python/15.numpy/5.Zeros and Ones.py b/Hackerrank/Practice/Python/15.numpy/5.Zeros and Ones.py new file mode 100644 index 00000000..7094c5cd --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/5.Zeros and Ones.py @@ -0,0 +1,10 @@ +import numpy as num +x=num.array (input().split(),int) +print(num.zeros(x,dtype="int")) +print(num.ones(x,dtype="int")) + + + + + + diff --git a/Hackerrank/Practice/Python/15.numpy/6.Eye and Identity.py b/Hackerrank/Practice/Python/15.numpy/6.Eye and Identity.py new file mode 100644 index 00000000..6964ec93 --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/6.Eye and Identity.py @@ -0,0 +1,7 @@ +import numpy as np +#n,m=map(int,input().split())#this one also correct +n,m=np.array(input().split(),int) +np.set_printoptions(legacy='1.13') +print(np.eye(n,m)) + + diff --git a/Hackerrank/Practice/Python/15.numpy/7.Array Mathematics.py b/Hackerrank/Practice/Python/15.numpy/7.Array Mathematics.py new file mode 100644 index 00000000..4707f04b --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/7.Array Mathematics.py @@ -0,0 +1,5 @@ +import numpy as np +n,m=map(int,input().split()) + + +print(np.add()) diff --git a/Hackerrank/Practice/Python/15.numpy/8.Floor, Ceil and Rint.py b/Hackerrank/Practice/Python/15.numpy/8.Floor, Ceil and Rint.py new file mode 100644 index 00000000..0dc9e911 --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/8.Floor, Ceil and Rint.py @@ -0,0 +1,9 @@ +import numpy +numpy.set_printoptions(legacy='1.13') +n=numpy.array(input().split(),float) +print(numpy.floor(n)) +print(numpy.ceil(n)) +print(numpy.rint(n)) + + + diff --git a/Hackerrank/Practice/Python/15.numpy/9.Sum and Prod.py b/Hackerrank/Practice/Python/15.numpy/9.Sum and Prod.py new file mode 100644 index 00000000..7d726be4 --- /dev/null +++ b/Hackerrank/Practice/Python/15.numpy/9.Sum and Prod.py @@ -0,0 +1,9 @@ +import numpy +import numpy as np +n,m = map(int,input().split()) +arr = np.array([input().split() for i in range(n)], int) +x=np.sum(arr,axis=0) +print(np.prod(x)) + + + diff --git a/Hackerrank/Practice/Python/15.numpy/README.md b/Hackerrank/Practice/Python/15.numpy/README.md new file mode 100644 index 00000000..e69de29b diff --git a/Hackerrank/Practice/Python/16.XML/97.XML 1 - Find the Score.py b/Hackerrank/Practice/Python/16.XML/97.XML 1 - Find the Score.py new file mode 100644 index 00000000..69ee9809 --- /dev/null +++ b/Hackerrank/Practice/Python/16.XML/97.XML 1 - Find the Score.py @@ -0,0 +1,15 @@ +import sys +import xml.etree.ElementTree as etree + +def get_attr_number(node): + # your code goes here + return etree.tostring(node).count(b'=') + + + +if __name__ == '__main__': + sys.stdin.readline() + xml = sys.stdin.read() + tree = etree.ElementTree(etree.fromstring(xml)) + root = tree.getroot() + print(get_attr_number(root)) diff --git a/Hackerrank/Practice/Python/16.XML/98.XML2 - Find the Maximum Depth.py b/Hackerrank/Practice/Python/16.XML/98.XML2 - Find the Maximum Depth.py new file mode 100644 index 00000000..5a8ab833 --- /dev/null +++ b/Hackerrank/Practice/Python/16.XML/98.XML2 - Find the Maximum Depth.py @@ -0,0 +1,20 @@ +import xml.etree.ElementTree as etree + +maxdepth = 0 +def depth(elem, level): + global maxdepth + # your code goes here + if (level == maxdepth): + maxdepth += 1 + + for child in elem: + depth(child, level + 1) + +if __name__ == '__main__': + n = int(input()) + xml = "" + for i in range(n): + xml = xml + input() + "\n" + tree = etree.ElementTree(etree.fromstring(xml)) + depth(tree.getroot(), -1) + print(maxdepth) diff --git a/Hackerrank/Practice/Python/17.debugging/1.Words Score.py b/Hackerrank/Practice/Python/17.debugging/1.Words Score.py new file mode 100644 index 00000000..98ae38f9 --- /dev/null +++ b/Hackerrank/Practice/Python/17.debugging/1.Words Score.py @@ -0,0 +1,17 @@ + +def is_vowel(letter): + return letter in ['a', 'e', 'i', 'o', 'u', 'y'] + +def score_words(words): + score = 0 + for word in words: + num_vowels = 0 + for letter in word: + if is_vowel(letter): + num_vowels += 1 + if num_vowels % 2 == 0: + score += 2 + else: + score=score+1 + return score + diff --git a/Hackerrank/Practice/Python/17.debugging/2.Default Arguments.py b/Hackerrank/Practice/Python/17.debugging/2.Default Arguments.py new file mode 100644 index 00000000..36c7070c --- /dev/null +++ b/Hackerrank/Practice/Python/17.debugging/2.Default Arguments.py @@ -0,0 +1,29 @@ +class EvenStream(object): + def __init__(self): + self.current = 0 + + def get_next(self): + to_return = self.current + self.current += 2 + return to_return + +class OddStream(object): + def __init__(self): + self.current = 1 + + def get_next(self): + to_return = self.current + self.current += 2 + return to_return +''' +def print_from_stream(n, stream=EvenStream()): + for _ in range(n):#here is the bug(error) + print(stream.get_next()) +''' +def print_from_stream(n, stream=None): + if stream is None: + stream = EvenStream() + for _ in range(n): + print(stream.get_next()) + + diff --git a/Hackerrank/Practice/Python/17.debugging/README.md b/Hackerrank/Practice/Python/17.debugging/README.md new file mode 100644 index 00000000..e69de29b diff --git a/Hackerrank/Practice/Python/2.basic data types/08.List Comprehensions.py b/Hackerrank/Practice/Python/2.basic data types/08.List Comprehensions.py new file mode 100644 index 00000000..a8a2baeb --- /dev/null +++ b/Hackerrank/Practice/Python/2.basic data types/08.List Comprehensions.py @@ -0,0 +1,9 @@ +if __name__ == '__main__': + x = int(input()) + y = int(input()) + z = int(input()) + n = int(input()) + k=([[i,j,l]for i in range(x+1) for j in range(y+1) for l in range(z+1) if (i+j+l!=n)]) + print(k) + + diff --git a/Hackerrank/Practice/Python/2.basic data types/09.Find the Runner-Up Score!.py b/Hackerrank/Practice/Python/2.basic data types/09.Find the Runner-Up Score!.py new file mode 100644 index 00000000..a08b567b --- /dev/null +++ b/Hackerrank/Practice/Python/2.basic data types/09.Find the Runner-Up Score!.py @@ -0,0 +1,11 @@ +if __name__ == '__main__': + n = int(input()) + arr =list(map(int,input().split())) + maxx=max(arr) + temp=0 + while (tempsum2: + print("Kevin",sum1) + elif sum2>sum1: + print("Stuart",sum2) + else: + print("Draw") + +if __name__ == '__main__': + s = input() + minion_game(s) diff --git a/Hackerrank/Practice/Python/3.string/27.Merge the Tools!.py b/Hackerrank/Practice/Python/3.string/27.Merge the Tools!.py new file mode 100644 index 00000000..0f4dacd1 --- /dev/null +++ b/Hackerrank/Practice/Python/3.string/27.Merge the Tools!.py @@ -0,0 +1,12 @@ +from collections import OrderedDict +def merge_the_tools(string, k): + # your code goes here + + for i in range(0,len(string),k): + print(''.join(OrderedDict.fromkeys(string[i:i + k]))) + + +if __name__ == '__main__': + string, k = input(), int(input()) + merge_the_tools(string, k) + diff --git a/Hackerrank/Practice/Python/4.sets/28.Introduction to Sets.py b/Hackerrank/Practice/Python/4.sets/28.Introduction to Sets.py new file mode 100644 index 00000000..7d4d3c19 --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/28.Introduction to Sets.py @@ -0,0 +1,12 @@ +def average(array): + # your code goes here + t=sum(set(array)) + p=len(set(array)) + average=t/p + return average + +if __name__ == '__main__': + n = int(input()) + arr = list(map(int, input().split())) + result = average(arr) + print(result) diff --git a/Hackerrank/Practice/Python/4.sets/29.No Idea!.py b/Hackerrank/Practice/Python/4.sets/29.No Idea!.py new file mode 100644 index 00000000..cb23faa8 --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/29.No Idea!.py @@ -0,0 +1,6 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +n,m=map(int,input().split()) +arry=map(int,input().split()) +A=set(map(int,input().split())) +B=set(map(int,input().split())) +print(sum((i in A)-(i in B)for i in arry)) diff --git a/Hackerrank/Practice/Python/4.sets/30.Symmetric Difference.py b/Hackerrank/Practice/Python/4.sets/30.Symmetric Difference.py new file mode 100644 index 00000000..21577f72 --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/30.Symmetric Difference.py @@ -0,0 +1,8 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +M=input() +x=set(map(int,input().split())) +N=input() +y=set(map(int,input().split())) +f=x^y +for i in sorted(f): + print (i) diff --git a/Hackerrank/Practice/Python/4.sets/31.Set .add().py b/Hackerrank/Practice/Python/4.sets/31.Set .add().py new file mode 100644 index 00000000..f696cff3 --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/31.Set .add().py @@ -0,0 +1,5 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +n=int(input()) +country_name=set(input() for i in range(n)) +print(len(country_name)) + diff --git a/Hackerrank/Practice/Python/4.sets/32.Set .discard(), .remove() & .pop().py b/Hackerrank/Practice/Python/4.sets/32.Set .discard(), .remove() & .pop().py new file mode 100644 index 00000000..7678f474 --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/32.Set .discard(), .remove() & .pop().py @@ -0,0 +1,16 @@ +n = int(input()) +s = set(map(int, input().split())) +N=int(input()) +for i in range(N): + p=input().split() + if p[0]=="pop": + s.pop() + elif p[0]=="discard": + s.discard(int(p[1])) + + + else: + s.remove(int(p[1])) + +print(sum(s)) + diff --git a/Hackerrank/Practice/Python/4.sets/33.Set .union() Operation.py b/Hackerrank/Practice/Python/4.sets/33.Set .union() Operation.py new file mode 100644 index 00000000..2c7ca293 --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/33.Set .union() Operation.py @@ -0,0 +1,7 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +n=int(input()) +roll_n=set(map(int,input().split())) +m=int(input()) +roll_m=set(map(int,input().split())) +s=roll_n|roll_m +print(len(s)) diff --git a/Hackerrank/Practice/Python/4.sets/34.Set .intersection() Operation.py b/Hackerrank/Practice/Python/4.sets/34.Set .intersection() Operation.py new file mode 100644 index 00000000..373c6713 --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/34.Set .intersection() Operation.py @@ -0,0 +1,9 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +# Enter your code here. Read input from STDIN. Print output to STDOUT +n=int(input()) +roll_n=set(map(int,input().split())) +m=int(input()) +roll_m=set(map(int,input().split())) +s=roll_n & roll_m #intersection +print(len(s)) + diff --git a/Hackerrank/Practice/Python/4.sets/35.Set .difference() Operation.py b/Hackerrank/Practice/Python/4.sets/35.Set .difference() Operation.py new file mode 100644 index 00000000..a6628112 --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/35.Set .difference() Operation.py @@ -0,0 +1,7 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +n=int(input()) +roll_n=set(map(int,input().split())) +m=int(input()) +roll_m=set(map(int,input().split())) +s=roll_n-roll_m +print(len(s)) diff --git a/Hackerrank/Practice/Python/4.sets/36.Set .symmetric_difference() Operation.py b/Hackerrank/Practice/Python/4.sets/36.Set .symmetric_difference() Operation.py new file mode 100644 index 00000000..6d494940 --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/36.Set .symmetric_difference() Operation.py @@ -0,0 +1,7 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +n=int(input()) +roll_n=set(map(int,input().split())) +m=int(input()) +roll_m=set(map(int,input().split())) +s=roll_n^roll_m #symmetricdifference +print(len(s)) diff --git a/Hackerrank/Practice/Python/4.sets/37.Set Mutations.py b/Hackerrank/Practice/Python/4.sets/37.Set Mutations.py new file mode 100644 index 00000000..1d72ec0b --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/37.Set Mutations.py @@ -0,0 +1,16 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +n=int(input()) +s=set(map(int,input().split())) +m=int(input()) +for _ in range(m): + (operation_name,length)=input().split() + list_of_the_elements=set(map(int,input().split())) + if operation_name=="intersection_update": + s.intersection_update(list_of_the_elements) + elif operation_name=="update": + s.update(list_of_the_elements) + elif operation_name=="symmetric_difference_update": + s.symmetric_difference_update(list_of_the_elements) + else: + s.difference_update(list_of_the_elements) +print(sum(s)) diff --git a/Hackerrank/Practice/Python/4.sets/38.The Captain's Room.py b/Hackerrank/Practice/Python/4.sets/38.The Captain's Room.py new file mode 100644 index 00000000..9f34fcde --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/38.The Captain's Room.py @@ -0,0 +1,6 @@ +# Enter your code here. Read input from STDIN. Print output to +K,arr = int(input()),list(map(int, input().split())) + +myset = set(arr) + +print(((sum(myset)*K)-(sum(arr)))//(K-1)) diff --git a/Hackerrank/Practice/Python/4.sets/39.Check Subset.py b/Hackerrank/Practice/Python/4.sets/39.Check Subset.py new file mode 100644 index 00000000..1cfab5a7 --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/39.Check Subset.py @@ -0,0 +1,12 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT + +T=int(input()) +for i in range(T): + element1=int(input()) + A=set(map(int,input().split())) + element2=int(input()) + B=set(map(int,input().split())) + if A.issubset(B): + print("True") + else: + print("False") diff --git a/Hackerrank/Practice/Python/4.sets/40.Check Strict Superset.py b/Hackerrank/Practice/Python/4.sets/40.Check Strict Superset.py new file mode 100644 index 00000000..d898e2ba --- /dev/null +++ b/Hackerrank/Practice/Python/4.sets/40.Check Strict Superset.py @@ -0,0 +1,12 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +A=set(map(int,input().split())) +T=int(input()) + +for _ in range(T): + superset1=set(map(int,input().split())) + superset2=set(map(int,input().split())) + break +if A.issuperset(superset1) and A.issuperset(superset2): + print("True") +else: + print("False") diff --git a/Hackerrank/Practice/Python/5.math/41.Polar Coordinates.py b/Hackerrank/Practice/Python/5.math/41.Polar Coordinates.py new file mode 100644 index 00000000..70457f14 --- /dev/null +++ b/Hackerrank/Practice/Python/5.math/41.Polar Coordinates.py @@ -0,0 +1,4 @@ +import cmath +poolar=cmath.polar(complex(input())) +print(poolar[0]) +print(poolar[1]) diff --git a/Hackerrank/Practice/Python/5.math/42.Find Angle MBC.py b/Hackerrank/Practice/Python/5.math/42.Find Angle MBC.py new file mode 100644 index 00000000..03c137f1 --- /dev/null +++ b/Hackerrank/Practice/Python/5.math/42.Find Angle MBC.py @@ -0,0 +1,5 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +import math +AB=int(input()) +BC=int(input()) +print(str(round(math.degrees(math.atan2(AB,BC))))+'°') diff --git a/Hackerrank/Practice/Python/5.math/43.Mod Divmod.py b/Hackerrank/Practice/Python/5.math/43.Mod Divmod.py new file mode 100644 index 00000000..79a596e8 --- /dev/null +++ b/Hackerrank/Practice/Python/5.math/43.Mod Divmod.py @@ -0,0 +1,6 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +a=int(input()) +b=int(input()) +print(a//b) +print(a%b) +print(divmod(a,b)) diff --git a/Hackerrank/Practice/Python/5.math/44.Power - Mod Power.py b/Hackerrank/Practice/Python/5.math/44.Power - Mod Power.py new file mode 100644 index 00000000..316676e2 --- /dev/null +++ b/Hackerrank/Practice/Python/5.math/44.Power - Mod Power.py @@ -0,0 +1,7 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +import math +a=int(input()) +b=int(input()) +m=int(input()) +print(round(math.pow(a,b))) +print(int(math.pow(a,b)%m))#we can use both round() and int() diff --git a/Hackerrank/Practice/Python/5.math/45.Integers Come In All Sizes.py b/Hackerrank/Practice/Python/5.math/45.Integers Come In All Sizes.py new file mode 100644 index 00000000..677d1d08 --- /dev/null +++ b/Hackerrank/Practice/Python/5.math/45.Integers Come In All Sizes.py @@ -0,0 +1,6 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +a=int(input()) +b=int(input()) +c=int(input()) +d=int(input()) +print(a**b +c**d) diff --git a/Hackerrank/Practice/Python/5.math/46.Triangle Quest.py b/Hackerrank/Practice/Python/5.math/46.Triangle Quest.py new file mode 100644 index 00000000..8862dac3 --- /dev/null +++ b/Hackerrank/Practice/Python/5.math/46.Triangle Quest.py @@ -0,0 +1,5 @@ +for i in range(1,int(input())): + print((10**(i)//9)*i) +#another method +for i in range(1,int(input())): #More than 2 lines will result in 0 score. Do not leave a blank line also + print((pow(10,i)//9)*i) diff --git a/Hackerrank/Practice/Python/5.math/47.Triangle Quest 2.py b/Hackerrank/Practice/Python/5.math/47.Triangle Quest 2.py new file mode 100644 index 00000000..9fb05b66 --- /dev/null +++ b/Hackerrank/Practice/Python/5.math/47.Triangle Quest 2.py @@ -0,0 +1,5 @@ +for i in range(1,int(input())+1): #More than 2 lines will result in 0 score. Do not leave a blank line also + print((10**i-1)**2//81) +#another method +for i in range(1,int(input())+1): #More than 2 lines will result in 0 score. Do not leave a blank line also + print((pow(10,i)//9)**2) diff --git a/Hackerrank/Practice/Python/6.itertools/48.itertools.product().py b/Hackerrank/Practice/Python/6.itertools/48.itertools.product().py new file mode 100644 index 00000000..9395ba67 --- /dev/null +++ b/Hackerrank/Practice/Python/6.itertools/48.itertools.product().py @@ -0,0 +1,4 @@ +from itertools import product +A=list(map(int,input().split())) +B=list(map(int,input().split())) +print(*product(A,B)) diff --git a/Hackerrank/Practice/Python/6.itertools/49.itertools.permutations().py b/Hackerrank/Practice/Python/6.itertools/49.itertools.permutations().py new file mode 100644 index 00000000..431458a2 --- /dev/null +++ b/Hackerrank/Practice/Python/6.itertools/49.itertools.permutations().py @@ -0,0 +1,6 @@ +from itertools import permutations +x=input().split() +s,p=x[0],int(x[1]) +k=permutations(s,p) +for i in sorted(k): + print(*i,sep="") diff --git a/Hackerrank/Practice/Python/6.itertools/50.itertools.combinations().py b/Hackerrank/Practice/Python/6.itertools/50.itertools.combinations().py new file mode 100644 index 00000000..15bec216 --- /dev/null +++ b/Hackerrank/Practice/Python/6.itertools/50.itertools.combinations().py @@ -0,0 +1,8 @@ +from itertools import * + +x = input().split() +s,p=x[0],int(x[1]) + +for l in range(1,p+1): + for c in combinations (sorted(s),l): + print(*c,sep="") diff --git a/Hackerrank/Practice/Python/6.itertools/51.itertools.combinations_with_replacement().py b/Hackerrank/Practice/Python/6.itertools/51.itertools.combinations_with_replacement().py new file mode 100644 index 00000000..8c3fc8bb --- /dev/null +++ b/Hackerrank/Practice/Python/6.itertools/51.itertools.combinations_with_replacement().py @@ -0,0 +1,7 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +from itertools import combinations_with_replacement +x=input().split() +s,p=x[0],int(x[1]) +y=combinations_with_replacement(sorted(s),p) +for i in (y): + print(*i,sep="") diff --git a/Hackerrank/Practice/Python/6.itertools/52.Compress the String!.py b/Hackerrank/Practice/Python/6.itertools/52.Compress the String!.py new file mode 100644 index 00000000..2d6a8012 --- /dev/null +++ b/Hackerrank/Practice/Python/6.itertools/52.Compress the String!.py @@ -0,0 +1,5 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +import itertools +s=input() +x=((len(list(p)),int(k)) for k,p in itertools.groupby(s)) +print(*x) diff --git a/Hackerrank/Practice/Python/6.itertools/53.Iterables and Iterators.py b/Hackerrank/Practice/Python/6.itertools/53.Iterables and Iterators.py new file mode 100644 index 00000000..da679e8e --- /dev/null +++ b/Hackerrank/Practice/Python/6.itertools/53.Iterables and Iterators.py @@ -0,0 +1,12 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +from itertools import* +N = int(input()) +elements=input().split() +K=int(input()) +count, total = 0, 0 + +for i in combinations(elements, K): + count += 'a' in i + total += 1 + +print (count / total) diff --git a/Hackerrank/Practice/Python/6.itertools/54.Maximize It!.py b/Hackerrank/Practice/Python/6.itertools/54.Maximize It!.py new file mode 100644 index 00000000..21636b08 --- /dev/null +++ b/Hackerrank/Practice/Python/6.itertools/54.Maximize It!.py @@ -0,0 +1,9 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +from itertools import* +m,n=map(int,input().split()) +l1=list() +for i in range(m): + l=list(map(int,input().split()))[1:] + l1.append(l) +final_result=max(map(lambda x:sum(i*i for i in x)%n,product(*l1))) +print(final_result) diff --git a/Hackerrank/Practice/Python/7.collections/55.collections.Counter().py b/Hackerrank/Practice/Python/7.collections/55.collections.Counter().py new file mode 100644 index 00000000..873f63fd --- /dev/null +++ b/Hackerrank/Practice/Python/7.collections/55.collections.Counter().py @@ -0,0 +1,14 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +from collections import* +no_of_shoes=int(input()) +size_of_shoes_in_the_shop=Counter(map(int,input().split())) +Number_of_customer=int(input()) +amount_of_money_earned=0 + +for _ in range (Number_of_customer): + size,price=map(int,input().split()) + + if size_of_shoes_in_the_shop[size]>0: + size_of_shoes_in_the_shop[size]-=1 + amount_of_money_earned+=price +print(amount_of_money_earned) diff --git a/Hackerrank/Practice/Python/7.collections/56.DefaultDict Tutorial.py b/Hackerrank/Practice/Python/7.collections/56.DefaultDict Tutorial.py new file mode 100644 index 00000000..da3e7afe --- /dev/null +++ b/Hackerrank/Practice/Python/7.collections/56.DefaultDict Tutorial.py @@ -0,0 +1,13 @@ +from collections import defaultdict +d = defaultdict(list) +l1=[] +n,m=map(int,input().split()) +for i in range(n): + d[input()].append(i+1) +for i in range(m): + l1=l1+[input()] +for i in l1: + if i in d: + print(*(map(str,d[i]))) + else: + print(-1) diff --git a/Hackerrank/Practice/Python/7.collections/57.Collections.namedtuple().py b/Hackerrank/Practice/Python/7.collections/57.Collections.namedtuple().py new file mode 100644 index 00000000..2953d9f0 --- /dev/null +++ b/Hackerrank/Practice/Python/7.collections/57.Collections.namedtuple().py @@ -0,0 +1,11 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +from collections import* +N=int(input()) +total_mark=0 +fields=input().split() +for i in range(N): + students=namedtuple("k",fields) + MARKS,CLASS,NAME,ID=input().split() + x=students(MARKS,CLASS,NAME,ID) + total_mark+=int(x.MARKS) +print(total_mark/N) diff --git a/Hackerrank/Practice/Python/7.collections/58.Collections.OrderedDict().py b/Hackerrank/Practice/Python/7.collections/58.Collections.OrderedDict().py new file mode 100644 index 00000000..3ca72878 --- /dev/null +++ b/Hackerrank/Practice/Python/7.collections/58.Collections.OrderedDict().py @@ -0,0 +1,10 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +from collections import OrderedDict +d=OrderedDict() +n=int(input()) + +for i in range(n): + item,space,quantity=input().rpartition(" ") + d[item]=d.get(item,0)+int(quantity) +for item,quantity in d.items(): + print(item,quantity) diff --git a/Hackerrank/Practice/Python/7.collections/59.Word Order.py b/Hackerrank/Practice/Python/7.collections/59.Word Order.py new file mode 100644 index 00000000..5200dc31 --- /dev/null +++ b/Hackerrank/Practice/Python/7.collections/59.Word Order.py @@ -0,0 +1,11 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +from collections import* +d={} +for i in range(int(input())): + word=input() + if word in d: + d[word]+=1 + else: + d[word]=1 +print(len(d)) +print(*d.values()) diff --git a/Hackerrank/Practice/Python/7.collections/60.Collections.deque().py b/Hackerrank/Practice/Python/7.collections/60.Collections.deque().py new file mode 100644 index 00000000..eacc9580 --- /dev/null +++ b/Hackerrank/Practice/Python/7.collections/60.Collections.deque().py @@ -0,0 +1,17 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +from collections import* +d = deque() +n = int(input()) +for i in range(n): + p=input().split() + if p[0]=="append": + d.append(p[1]) + elif p[0]=="appendleft": + d.appendleft(p[1]) + elif p[0]=="pop": + d.pop() + + + else: + d.popleft() +print(*d) diff --git a/Hackerrank/Practice/Python/7.collections/61.Company Logo.py b/Hackerrank/Practice/Python/7.collections/61.Company Logo.py new file mode 100644 index 00000000..8255f631 --- /dev/null +++ b/Hackerrank/Practice/Python/7.collections/61.Company Logo.py @@ -0,0 +1,16 @@ +#!/bin/python3 +from collections import* +import math +import os +import random +import re +import sys + + + +if __name__ == '__main__': + s = sorted(input()) + r=Counter(s) + r=r.most_common(3) +for i in r: + print(*i) diff --git a/Hackerrank/Practice/Python/7.collections/62.Piling Up!.py b/Hackerrank/Practice/Python/7.collections/62.Piling Up!.py new file mode 100644 index 00000000..86538115 --- /dev/null +++ b/Hackerrank/Practice/Python/7.collections/62.Piling Up!.py @@ -0,0 +1,27 @@ +from collections import deque +for i in range(int(input())): + x=int(input()) + lst=map(int,input().split()) + lst1=deque(lst) + right_most=lst1.pop() + left_most=lst1.popleft() + #current_value=left_most if left_most>right_most else right_most + if left_most>right_most: + current_value=left_most + else: + current_value=right_most + for _ in range(len(lst1)): + if left_most>=right_most and left_most<=current_value: + current_value=left_most + left_most=lst1.popleft() + latest=left_most + elif left_mostcurrent_value: + print("No") + else: + print("Yes") diff --git a/Hackerrank/Practice/Python/8.Date and time/63.Calendar Module.py b/Hackerrank/Practice/Python/8.Date and time/63.Calendar Module.py new file mode 100644 index 00000000..aa3654da --- /dev/null +++ b/Hackerrank/Practice/Python/8.Date and time/63.Calendar Module.py @@ -0,0 +1,21 @@ +import calendar +m,d,y=map(int,input().split()) +print(calendar.day_name[calendar.weekday(y,m,d)].upper()) +####################another method######################### +import calendar +m,d,y=map(int,input().split()) +c = calendar.weekday(y, m, d) +if c == 0: + print("MONDAY") +elif c == 1: + print("TUESDAY") +elif c == 2: + print("WEDNESDAY") +elif c==3: + print("THURSDAY") +elif c==4: + print("FRIDAY") +elif c== 5: + print("SATURDAY") +elif c==6: + print("SUNDAY") diff --git a/Hackerrank/Practice/Python/8.Date and time/64.Time Delta.py b/Hackerrank/Practice/Python/8.Date and time/64.Time Delta.py new file mode 100644 index 00000000..a9858ccf --- /dev/null +++ b/Hackerrank/Practice/Python/8.Date and time/64.Time Delta.py @@ -0,0 +1,32 @@ +import math +import os +import random +import re +import sys +from datetime import* + +# Complete the time_delta function below. +def time_delta(t1, t2): + time_formatt='%a %d %b %Y %H:%M:%S %z' + t1=datetime.strptime(t1,time_formatt) + t2=datetime.strptime(t2,time_formatt) + absolute_difference=str(int(abs((t1-t2).total_seconds()))) + return absolute_difference + + + +if __name__ == '__main__': + fptr = open(os.environ['OUTPUT_PATH'], 'w') + + t = int(input()) + + for t_itr in range(t): + t1 = input() + + t2 = input() + + delta = time_delta(t1, t2) + + fptr.write(delta + '\n') + + fptr.close() diff --git a/Hackerrank/Practice/Python/9.erros and exceptions/65.Exceptions.py b/Hackerrank/Practice/Python/9.erros and exceptions/65.Exceptions.py new file mode 100644 index 00000000..e164f05c --- /dev/null +++ b/Hackerrank/Practice/Python/9.erros and exceptions/65.Exceptions.py @@ -0,0 +1,7 @@ +# Enter your code here. Read input from STDIN. Print output to STDOUT +for i in range(int(input())): + try: + a,b=map(int,input().split()) + print(a//b) + except Exception as e: + print("Error Code:",e) diff --git a/Hackerrank/Practice/Python/9.erros and exceptions/66.Incorrect Regex.py b/Hackerrank/Practice/Python/9.erros and exceptions/66.Incorrect Regex.py new file mode 100644 index 00000000..7909a898 --- /dev/null +++ b/Hackerrank/Practice/Python/9.erros and exceptions/66.Incorrect Regex.py @@ -0,0 +1,8 @@ +# Enter your code here. Read input from STDIN. Print output to STOUT +import re +for _ in range(int(input())): + try: + re.compile(input()) + print (True) + except re.error: + print (False) diff --git a/Hackerrank/Practice/Python/README.md b/Hackerrank/Practice/Python/README.md new file mode 100644 index 00000000..9509c54d --- /dev/null +++ b/Hackerrank/Practice/Python/README.md @@ -0,0 +1,205 @@ +# Hackerrank + +- [Python](#python) + +## Python
+ +> 1.Introduction
+ +| Subdomain | Difficulty | Problem link | Solution | +| :----------: | :--------: | :-----------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Introduction | Easy | [Say "Hello, World!" With Python](https://www.hackerrank.com/challenges/py-hello-world/problem) | [Say _Hello, World!_ With Python.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/1.introduction/01.Say%20_Hello%2C%20World!_%20With%20Python.py) | +| Introduction | Easy | [Python If-Else](https://www.hackerrank.com/challenges/py-if-else/problem) | [Python If-Else.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/1.introduction/02.Python%20If-Else.py) | +| Introduction | Easy | [Arithmetic Operators](https://www.hackerrank.com/challenges/python-arithmetic-operators/problem) | [Arithmetic Operators.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/1.introduction/03.Arithmetic%20Operators.py) | +| Introduction | Easy | [Python: Division](https://www.hackerrank.com/challenges/python-division/problem) | [Python\_ Division.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/1.introduction/04.Python_%20Division.py) | +| Introduction | Easy | [Loops](https://www.hackerrank.com/challenges/python-loops/problem) | [Loops.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/1.introduction/05.Loops.py) | +| Introduction | Medium | [Write a function](https://www.hackerrank.com/challenges/write-a-function/problem) | [Write a function.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/1.introduction/06.Write%20a%20function.py) | +| Introduction | Easy | [Print Function](https://www.hackerrank.com/challenges/python-print/problem) | [Print Function.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/1.introduction/07.Print%20Function.py) | + +> 2.Basic Data Types
+ +| Subdomain | Difficulty | Problem link | Solution | +| :--------------: | :--------: | :-------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Basic Data Types | Easy | [List Comprehensions](https://www.hackerrank.com/challenges/list-comprehensions/problem) | [List Comprehensions.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/2.basic%20data%20types/08.List%20Comprehensions.py) | +| Basic Data Types | Easy | [Find the Runner-Up Score!](https://www.hackerrank.com/challenges/find-second-maximum-number-in-a-list/problem) | [.Find the Runner-Up Score!.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/2.basic%20data%20types/09.Find%20the%20Runner-Up%20Score!.py) | +| Basic Data Types | Easy | [Nested Lists](https://www.hackerrank.com/challenges/nested-list/problem) | [Nested Lists.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/2.basic%20data%20types/10.Nested%20Lists.py) | +| Basic Data Types | Easy | [Finding the percentage](https://www.hackerrank.com/challenges/finding-the-percentage/problem) | [Finding the percentage.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/2.basic%20data%20types/11.Finding%20the%20percentage.py) | +| Basic Data Types | Easy | [Lists](https://www.hackerrank.com/challenges/python-lists/problem) | [Lists.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/2.basic%20data%20types/12.Lists.py) | +| Basic Data Types | Easy | [Tuples](https://www.hackerrank.com/challenges/python-tuples/problem) | [Tuples.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/2.basic%20data%20types/13.Tuples.py) | + +> 3.String
+ +| Subdomain | Difficulty | Problem link | Solution | +| :-------: | :--------: | :-------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Strings | Easy | [sWAP cASE](https://www.hackerrank.com/challenges/swap-case/problem) | [SWAp cASE.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/14.SWAp%20cASE.py) | +| Strings | Easy | [String Split and Join](https://www.hackerrank.com/challenges/python-string-split-and-join/problem) | [String Split and join.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/15.String%20Split%20and%20join.py) | +| Strings | Easy | [What's Your Name?](https://www.hackerrank.com/challenges/whats-your-name/problem) | [What's Your Name\_.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/16.What's%20Your%20Name_.py) | +| Strings | Easy | [Mutations](https://www.hackerrank.com/challenges/python-mutations/problem) | [Mutations.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/17.Mutations.py) | +| Strings | Easy | [Find a string](https://www.hackerrank.com/challenges/find-a-string/problem) | [Find a string.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/18.Find%20a%20string.py) | +| Strings | Easy | [String Validators](https://www.hackerrank.com/challenges/string-validators/problem) | [String Validators.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/19.String%20Validators.py) | +| Strings | Easy | [Text Alignment](https://www.hackerrank.com/challenges/text-alignment/problem) | [Text Alignment.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/20.Text%20Alignment.py) | +| Strings | Easy | [Text Wrap](https://www.hackerrank.com/challenges/text-wrap/problem) | [Text Wrap.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/21.Text%20Wrap.py) | +| Strings | Easy | [Designer Door Mat](https://www.hackerrank.com/challenges/designer-door-mat/problem) | [Designer Door Mat.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/22.Designer%20Door%20Mat.py) | +| Strings | Easy | [String Formatting](https://www.hackerrank.com/challenges/python-string-formatting/problem) | [String Formatting.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/23.String%20Formatting.py) | +| Strings | Easy | [Alphabet Rangoli](https://www.hackerrank.com/challenges/alphabet-rangoli/problem) | [Alphabet Rangoli.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/24.Alphabet%20Rangoli.py) | +| Strings | Easy | [Capitalize!](https://www.hackerrank.com/challenges/capitalize/problem) | [Capitalize!.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/25.Capitalize!.py) | +| Strings | Medium | [The Minion Game](https://www.hackerrank.com/challenges/the-minion-game/problem) | [The Minion Game.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/26.The%20Minion%20Game.py) | +| Strings | Medium | [Merge the Tools!](https://www.hackerrank.com/challenges/merge-the-tools/problem) | [Merge the Tools!.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/3.string/27.Merge%20the%20Tools!.py) | + +> 4.Sets
+ +| Subdomain | Difficulty | Problem link | Solution | +| :-------: | :--------: | :--------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Sets | Easy | [Introduction to Sets](https://www.hackerrank.com/challenges/py-introduction-to-sets/problem) | [Introduction to Sets.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/4.sets/28.Introduction%20to%20Sets.py) | +| Sets | Medium | [No Idea!](https://www.hackerrank.com/challenges/no-idea/problem) | [No Idea!.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/4.sets/29.No%20Idea!.py) | +| Sets | Easy | [Symmetric Difference](https://www.hackerrank.com/challenges/symmetric-difference/problem) | [Symmetric Difference.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/4.sets/30.Symmetric%20Difference.py) | +| Sets | Easy | [Set .add()](https://www.hackerrank.com/challenges/py-set-add/problem) | [Set .add().py]() | +| Sets | Easy | [Set .discard(), .remove() & .pop()](https://www.hackerrank.com/challenges/py-set-discard-remove-pop/problem) | [Set .discard(), .remove() & .pop().py]() | +| Sets | Easy | [Set .union() Operation](https://www.hackerrank.com/challenges/py-set-union/problem) | [Set .union() Operation.py]() | +| Sets | Easy | [Set .intersection() Operation](https://www.hackerrank.com/challenges/py-set-intersection-operation/problem) | [Set .intersection() Operation.py ]() | +| Sets | Easy | [Set .difference() Operation](https://www.hackerrank.com/challenges/py-set-difference-operation/problem) | [Set .difference() Operation.py ]() | +| Sets | Easy | [Set .symmetric_difference() Operation](https://www.hackerrank.com/challenges/py-set-symmetric-difference-operation/problem) | [Set .symmetric_difference() Operation.py ]() | +| Sets | Easy | [Set Mutations](https://www.hackerrank.com/challenges/py-set-mutations/problem) | [Set Mutations.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/4.sets/37.Set%20Mutations.py) | +| Sets | Easy | [The Captain's Room](https://www.hackerrank.com/challenges/py-the-captains-room/problem) | [The Captain's Room.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/4.sets/38.The%20Captain's%20Room.py) | +| Sets | Easy | [Check Subset](https://www.hackerrank.com/challenges/py-check-subset/problem) | [The Captain's Room.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/4.sets/39.Check%20Subset.py) | +| Sets | Easy | [Check Strict Superset](https://www.hackerrank.com/challenges/py-check-strict-superset/problem) | [Check Strict Superset.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/4.sets/40.Check%20Strict%20Superset.py) | + +> 5.Math
+ +| Subdomain | Difficulty | Problem link | Solution | +| :-------: | :--------: | :-----------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Math | Easy | [Polar Coordinates](https://www.hackerrank.com/challenges/polar-coordinates/problem) | [polar-coordinates.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/5.math/41.Polar%20Coordinates.py) | +| Math | Medium | [Find Angle MBC](https://www.hackerrank.com/challenges/find-angle/problem) | [find-angle.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/5.math/42.Find%20Angle%20MBC.py) | +| Math | Easy | [Mod Divmod](https://www.hackerrank.com/challenges/python-mod-divmod/problem) | [python-mod-divmod.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/5.math/43.Mod%20Divmod.py) | +| Math | Easy | [Power - Mod Power](https://www.hackerrank.com/challenges/python-power-mod-power/problem) | [python-power-mod-power.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/5.math/44.Power%20-%20Mod%20Power.py) | +| Math | Easy | [Integers Come In All Sizes](https://www.hackerrank.com/challenges/python-integers-come-in-all-sizes/problem) | [python-integers-come-in-all-sizes.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/5.math/45.Integers%20Come%20In%20All%20Sizes.py) | +| Math | Medium | [Triangle Quest](https://www.hackerrank.com/challenges/python-quest-1/problem) | [python-quest-1.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/5.math/46.Triangle%20Quest.py) | +| Math | Medium | [Triangle Quest 2](https://www.hackerrank.com/challenges/triangle-quest-2/problem) | [triangle-quest-2.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/5.math/47.Triangle%20Quest%202.py) | + +> 6.itertools
+ +| Subdomain | Difficulty | Problem link | Solution | +| :-------: | :--------: | :--------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Itertools | Easy | [itertools.product()](https://www.hackerrank.com/challenges/itertools-product/problem) | [itertools-product.py]() | +| Itertools | Easy | [itertools.permutations()](https://www.hackerrank.com/challenges/itertools-permutations/problem) | [itertools-permutations.py]() | +| Itertools | Easy | [itertools.combinations()](https://www.hackerrank.com/challenges/itertools-combinations/problem) | [itertools-combinations.py]() | +| Itertools | Easy | [itertools.combinations_with_replacement()](https://www.hackerrank.com/challenges/itertools-combinations-with-replacement/problem) | [itertools-combinations-with-replacement.py]() | +| Itertools | Medium | [Compress the String!](https://www.hackerrank.com/challenges/compress-the-string/problem) | [compress-the-string.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/6.itertools/52.Compress%20the%20String!.py) | +| Itertools | Medium | [Iterables and Iterators](https://www.hackerrank.com/challenges/iterables-and-iterators/problem) | [iterables-and-iterators.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/6.itertools/53.Iterables%20and%20Iterators.py) | +| Itertools | Hard | [Maximize It!](https://www.hackerrank.com/challenges/maximize-it/problem) | [maximize-it.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/6.itertools/54.Maximize%20It!.py) | + +> 7.collections
+ +| Subdomain | Difficulty | Problem link | Solution | +| :---------: | :--------: | :---------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Collections | Easy | [collections.Counter()](https://www.hackerrank.com/challenges/collections-counter/problem) | [collections-counter.py]() | +| Collections | Easy | [DefaultDict Tutorial](https://www.hackerrank.com/challenges/defaultdict-tutorial/problem) | [defaultdict-tutorial.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/7.collections/56.DefaultDict%20Tutorial.py) | +| Collections | Easy | [Collections.namedtuple()](https://www.hackerrank.com/challenges/py-collections-namedtuple/problem) | [py-collections-namedtuple.py]() | +| Collections | Easy | [Collections.OrderedDict()](https://www.hackerrank.com/challenges/py-collections-ordereddict/problem) | [py-collections-ordereddict.py]() | +| Collections | Medium | [Word Order](https://www.hackerrank.com/challenges/word-order/problem) | [word-order.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/7.collections/59.Word%20Order.py) | +| Collections | Easy | [Collections.deque()](https://www.hackerrank.com/challenges/py-collections-deque/problem) | [py-collections-deque.py]() | +| Collections | Medium | [Company Logo](https://www.hackerrank.com/challenges/most-commons/problem) | [most-commons.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/7.collections/61.Company%20Logo.py) | +| Collections | Medium | [Piling Up!](https://www.hackerrank.com/challenges/piling-up/problem) | [piling-up.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/7.collections/62.Piling%20Up!.py) | + +> 8.Date and time
+ +| Subdomain | Difficulty | Problem link | Solution | +| :-----------: | :--------: | :------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Date and Time | Easy | [Calendar Module](https://www.hackerrank.com/challenges/calendar-module/problem) | [calendar-module.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/8.Date%20and%20time/63.Calendar%20Module.py) | +| Date and Time | Medium | [Time Delta](https://www.hackerrank.com/challenges/python-time-delta/problem) | [python-time-delta.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/8.Date%20and%20time/64.Time%20Delta.py) | + +> 9.erros and exceptions
+ +| Subdomain | Difficulty | Problem link | Solution | +| :-------------------: | :--------: | :------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Errors and Exceptions | Easy | [Exceptions](https://www.hackerrank.com/challenges/exceptions/problem) | [exceptions.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/9.erros%20and%20exceptions/65.Exceptions.py) | +| Errors and Exceptions | Easy | [Incorrect Regex](https://www.hackerrank.com/challenges/incorrect-regex/problem) | [incorrect-regex.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/9.erros%20and%20exceptions/66.Incorrect%20Regex.py) | + +> 10.Bulid-ins
+ +| Subdomain | Difficulty | Problem link | Solution | +| :-------: | :--------: | :----------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------: | +| Built-Ins | Easy | [Zipped!](https://www.hackerrank.com/challenges/zipped/problem) | [zipped.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/10.Built-Ins/69.Zipped!.py) | +| Built-Ins | Easy | [Input()](https://www.hackerrank.com/challenges/input/problem) | [input.py]() | +| Built-Ins | Easy | [Python Evaluation](https://www.hackerrank.com/challenges/python-eval/problem) | [python-eval.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/10.Built-Ins/71.Python%20Evaluation.py) | +| Built-Ins | Medium | [Athlete Sort](https://www.hackerrank.com/challenges/python-sort-sort/problem) | [python-sort-sort.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/10.Built-Ins/72.Athlete%20Sort.py) | +| Built-Ins | Easy | [Any or All](https://www.hackerrank.com/challenges/any-or-all/problem) | [any-or-all.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/10.Built-Ins/73.Any%20or%20All.py) | +| Built-Ins | Medium | [ginortS](https://www.hackerrank.com/challenges/ginorts/problem) | [ginorts.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/10.Built-Ins/74.ginortS.py) | + +> 11.Classes
+ +| Subdomain | Difficulty | Problem link | Solution | +| :-------: | :--------: | :-------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Classes | Medium | [Classes: Dealing with Complex Numbers](https://www.hackerrank.com/challenges/class-1-dealing-with-complex-numbers/problem) | [class-1-dealing-with-complex-numbers.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/11.Classes/75.Classes_%20Dealing%20with%20Complex%20Numbers.py) | +| Classes | Easy | [Class 2 - Find the Torsional Angle](https://www.hackerrank.com/challenges/class-2-find-the-torsional-angle/problem) | [class-2-find-the-torsional-angle.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/11.Classes/76.Class%202%20-%20Find%20the%20Torsional%20Angle.py) | + +> 12.Python functional
+ +| Subdomain | Difficulty | Problem link | Solution | +| :----------------: | :--------: | :----------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Python Functionals | Easy | [Map and Lambda Function](https://www.hackerrank.com/challenges/map-and-lambda-expression/problem) | [map-and-lambda-expression.py](https://github.com/Kushal997-das/Competitive-Programming/tree/master/Hackerrank_python/12.Python%20Functionals) | +| Python Functionals | Medium | [Validating Email Addresses With a Filter](https://www.hackerrank.com/challenges/validate-list-of-email-address-with-filter/problem) | [validate-list-of-email-address-with-filter.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/12.Python%20Functionals/78.Validating%20Email%20Addresses%20With%20a%20Filter.py) | +| Python Functionals | Medium | [Reduce Function](https://www.hackerrank.com/challenges/reduce-function/problem) | [reduce-function.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/12.Python%20Functionals/79.Reduce%20Function.py) | + +> 13.Regex and Parsing
+ +| Subdomain | Difficulty | Problem link | Solution | +| :---------------: | :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Regex and Parsing | Easy | [Detect Floating Point Number](https://www.hackerrank.com/challenges/introduction-to-regex/problem) | [introduction-to-regex.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/80.Detect%20Floating%20Point%20Number.py) | +| Regex and Parsing | Easy | [Re.split()](https://www.hackerrank.com/challenges/re-split/problem) | [re-split.py]() | +| Regex and Parsing | Easy | [Group(), Groups() & Groupdict()](https://www.hackerrank.com/challenges/re-group-groups/problem) | [re-group-groups.py]() | +| Regex and Parsing | Easy | [Re.findall() & Re.finditer()](https://www.hackerrank.com/challenges/re-findall-re-finditer/problem) | [re-findall-re-finditer.py]() | +| Regex and Parsing | Easy | [Re.start() & Re.end()](https://www.hackerrank.com/challenges/re-start-re-end/problem) | [re-start-re-end.py]() | +| Regex and Parsing | Medium | [Regex Substitution](https://www.hackerrank.com/challenges/re-sub-regex-substitution/problem) | [re-sub-regex-substitution.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/85.Regex%20Substitution.py) | +| Regex and Parsing | Easy | [Validating Roman Numerals](https://www.hackerrank.com/challenges/validate-a-roman-number/problem) | [validate-a-roman-number.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/86.Validating%20Roman%20Numerals.py) | +| Regex and Parsing | Easy | [Validating phone numbers](https://www.hackerrank.com/challenges/validating-the-phone-number/problem) | [validating-the-phone-number.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/87.Validating%20phone%20numbers.py) | +| Regex and Parsing | Easy | [Validating and Parsing Email Addresses](https://www.hackerrank.com/challenges/validating-named-email-addresses/problem) | [validating-named-email-addresses.py](https://github.com/Kushal997das/CompetitiveProgramming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/88.Validating%20and%20Parsing%20Email%20Addresses.py) | +| Regex and Parsing | Easy | [Hex Color Code](https://www.hackerrank.com/challenges/hex-color-code/problem) | [hex-color-code.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/89.Hex%20Color%20Code.py) | +| Regex and Parsing | Easy | [HTML Parser - Part 1](https://www.hackerrank.com/challenges/html-parser-part-1/problem) | [html-parser-part-1.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/90.HTML%20Parser%20-%20Part%201.py) | +| Regex and Parsing | Easy | [HTML Parser - Part 2](https://www.hackerrank.com/challenges/html-parser-part-2/problem) | [html-parser-part-2.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/91.HTML%20Parser%20-%20Part%202.py) | +| Regex and Parsing | Easy | [Detect HTML Tags, Attributes and Attribute Values](https://www.hackerrank.com/challenges/detect-html-tags-attributes-and-attribute-values/problem) | [detect-html-tags-attributes-and-attribute-values.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/92.Detect%20HTML%20Tags%2C%20Attributes%20and%20Attribute%20Values.py) | +| Regex and Parsing | Easy | [Validating UID](https://www.hackerrank.com/challenges/validating-uid/problem) | [validating-uid.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/93.Validating%20UID.py) | +| Regex and Parsing | Medium | [Validating Credit Card Numbers](https://www.hackerrank.com/challenges/validating-credit-card-number/problem) | [validating-credit-card-number.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/94.Validating%20Credit%20Card%20Numbers.py) | +| Regex and Parsing | Hard | [Validating Postal Codes](https://www.hackerrank.com/challenges/validating-postalcode/problem) | [validating-postalcode.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/95.Validating%20Postal%20Codes.py) | +| Regex and Parsing | Hard | [Matrix Script](https://www.hackerrank.com/challenges/matrix-script/problem) | [matrix-script.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/13.Regex%20and%20Parsing/96.Matrix%20Script.py) | + +> 14.Closures and Decorators
+ +| Subdomain | Difficulty | Problem link | Solution | +| :---------------------: | :--------: | :------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Closures and Decorators | Easy | [Standardize Mobile Number Using Decorators](https://www.hackerrank.com/challenges/standardize-mobile-number-using-decorators/problem) | [standardize-mobile-number-using-decorators.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/14.Closures%20and%20Decorators/99.Standardize%20Mobile%20Number%20Using%20Decorators.py) | +| Closures and Decorators | Easy | [Decorators 2 - Name Directory](https://www.hackerrank.com/challenges/decorators-2-name-directory/problem) | [Decorators 2 - Name Directory.py ](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/14.Closures%20and%20Decorators/991.Decorators%202%20-%20Name%20Directory.py) | + +> 15.numpy
+ +| Subdomain | Difficulty | Problem link | Solution | +| :-------: | :--------: | :---------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| Numpy | Easy | [Arrays](https://www.hackerrank.com/challenges/np-arrays/problem) | [np-arrays.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/1.Arrays.py) | +| Numpy | Easy | [Shape and Reshape](https://www.hackerrank.com/challenges/np-shape-reshape/problem) | [np-shape-reshape.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/2.Shape%20and%20Reshape.py) | +| Numpy | Easy | [Transpose and Flatten](https://www.hackerrank.com/challenges/np-transpose-and-flatten/problem) | [np-transpose-and-flatten.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/3.Transpose%20and%20Flatten.py) | +| Numpy | Easy | [Concatenate](https://www.hackerrank.com/challenges/np-concatenate/problem) | [np-concatenate.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/4.Concatenate.py) | +| Numpy | Easy | [Zeros and Ones](https://www.hackerrank.com/challenges/np-zeros-and-ones/problem) | [np-zeros-and-ones.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/5.Zeros%20and%20Ones.py) | +| Numpy | Easy | [Eye and Identity](https://www.hackerrank.com/challenges/np-eye-and-identity/problem) | [np-eye-and-identity.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/6.Eye%20and%20Identity.py) | +| Numpy | Easy | [Array Mathematics](https://www.hackerrank.com/challenges/np-array-mathematics/problem) | [np-array-mathematics.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/7.Array%20Mathematics.py) | +| Numpy | Easy | [Floor, Ceil and Rint](https://www.hackerrank.com/challenges/floor-ceil-and-rint/problem) | [floor-ceil-and-rint.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/8.Floor%2C%20Ceil%20and%20Rint.py) | +| Numpy | Easy | [Sum and Prod](https://www.hackerrank.com/challenges/np-sum-and-prod/problem) | [np-sum-and-prod.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/9.Sum%20and%20Prod.py) | +| Numpy | Easy | [Min and Max](https://www.hackerrank.com/challenges/np-min-and-max/problem) | [np-min-and-max.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/10.Min%20and%20Max.py) | +| Numpy | Easy | [Mean, Var, and Std](https://www.hackerrank.com/challenges/np-mean-var-and-std/problem) | [np-mean-var-and-std.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/11.Mean%2C%20Var%2C%20and%20Std%20.py) | +| Numpy | Easy | [Dot and Cross](https://www.hackerrank.com/challenges/np-dot-and-cross/problem) | [np-dot-and-cross.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/12.Dot%20and%20Cross.py) | +| Numpy | Easy | [Inner and Outer](https://www.hackerrank.com/challenges/np-inner-and-outer/problem) | [np-inner-and-outer.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/13.Inner%20and%20Outer.py) | +| Numpy | Easy | [Polynomials](https://www.hackerrank.com/challenges/np-polynomials/problem) | [np-polynomials.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/14.Polynomials.py) | +| Numpy | Easy | [Linear Algebra](https://www.hackerrank.com/challenges/np-linear-algebra/problem) | [np-linear-algebra.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/15.numpy/15.Linear%20Algebra.py) | + +> 16.XML
+ +| Subdomain | Difficulty | Problem link | Solution | +| :-------: | :--------: | :--------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| XML | Easy | [XML 1 - Find the Score](https://www.hackerrank.com/challenges/xml-1-find-the-score/problem) | [xml-1-find-the-score.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/16.XML/97.XML%201%20-%20Find%20the%20Score.py) | +| XML | Easy | [XML2 - Find the Maximum Depth](https://www.hackerrank.com/challenges/xml2-find-the-maximum-depth/problem) | [xml2-find-the-maximum-depth.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/16.XML/98.XML2%20-%20Find%20the%20Maximum%20Depth.py) | + +> 17.Debugging
+ +| Subdomain | Difficulty | Problem link | Solution | +| :-------: | :--------: | :----------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------: | +| Debugging | Medium | [Words Score](https://www.hackerrank.com/challenges/words-score/problem) | [words-score.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/17.debugging/1.Words%20Score.py) | +| Debugging | Medium | [Default Arguments](https://www.hackerrank.com/challenges/default-arguments/problem) | [default-arguments.py](https://github.com/Kushal997-das/Competitive-Programming/blob/master/Hackerrank_python/17.debugging/2.Default%20Arguments.py) | diff --git a/Hiring Challenges/.DS_Store b/Hiring Challenges/.DS_Store deleted file mode 100644 index 9c6d6922..00000000 Binary files a/Hiring Challenges/.DS_Store and /dev/null differ diff --git a/Hiring Challenges/Amazon/.DS_Store b/Hiring Challenges/Amazon/.DS_Store deleted file mode 100644 index f05bca6e..00000000 Binary files a/Hiring Challenges/Amazon/.DS_Store and /dev/null differ diff --git a/Hiring Challenges/Amazon/Amazon All India Campus Programming Challenge/.DS_Store b/Hiring Challenges/Amazon/Amazon All India Campus Programming Challenge/.DS_Store deleted file mode 100644 index e118af22..00000000 Binary files a/Hiring Challenges/Amazon/Amazon All India Campus Programming Challenge/.DS_Store and /dev/null differ diff --git a/Hiring Challenges/Amazon/Amazon SDE Hiring Challenge/.DS_Store b/Hiring Challenges/Amazon/Amazon SDE Hiring Challenge/.DS_Store deleted file mode 100644 index 7c60de86..00000000 Binary files a/Hiring Challenges/Amazon/Amazon SDE Hiring Challenge/.DS_Store and /dev/null differ diff --git a/Hiring Challenges/Amazon/Amazon SDE Hiring Challenge/README.md b/Hiring Challenges/Amazon/Amazon SDE Hiring Challenge/README.md index ad9318e9..b6587517 100644 --- a/Hiring Challenges/Amazon/Amazon SDE Hiring Challenge/README.md +++ b/Hiring Challenges/Amazon/Amazon SDE Hiring Challenge/README.md @@ -5,14 +5,14 @@ Now Samu is confused, because although she want to follow her strategy strictly You are provided description about all N shops i.e costs of all three items in each shop. You need to help Samu find minimum money that she needs to spend such that she buys exactly one item from every shop. -Input Format: +Input Format: First line contain number of test cases T. Each test case in its first line contain N denoting the number of shops in Super Market. Then each of next N lines contains three space separated integers denoting cost of shirts, pants and shoes in that particular shop. Output Format: For each test case, output the minimum cost of shopping taking the mentioned conditions into account in a separate line. Constraints : -1 ≤ T ≤ 10 +1 ≤ T ≤ 10 1 ≤ N ≤ 105 Cost of each item (shirt/pant/shoe) does not exceed 104 diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/.DS_Store b/Hiring Challenges/Bosch Blockchain Developer Hiring/.DS_Store deleted file mode 100644 index 6d045b4b..00000000 Binary files a/Hiring Challenges/Bosch Blockchain Developer Hiring/.DS_Store and /dev/null differ diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/.DS_Store b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/.DS_Store deleted file mode 100644 index 2f9542f3..00000000 Binary files a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/.DS_Store and /dev/null differ diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/contracts/.DS_Store b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/contracts/.DS_Store deleted file mode 100644 index e766a73b..00000000 Binary files a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/contracts/.DS_Store and /dev/null differ diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/migrations/2_deploy_contracts.js b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/migrations/2_deploy_contracts.js deleted file mode 100755 index 3e140132..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/migrations/2_deploy_contracts.js +++ /dev/null @@ -1,16 +0,0 @@ -const PropertyRegistration = artifacts.require("PropertyRegistration"); -const fs = require('fs'); - -module.exports = function (deployer) { - deployer.deploy(PropertyRegistration).then(() => { - let config = { - localhost: { - url: 'http://localhost:7545', - serverURL: 'http://localhost:3000', - appAddress: PropertyRegistration.address - } - }; - fs.writeFileSync(__dirname + '/../src/dapp/config.json', JSON.stringify(config, null, '\t'), 'utf-8'); - fs.writeFileSync(__dirname + '/../src/server/config.json', JSON.stringify(config, null, '\t'), 'utf-8'); - }); -}; \ No newline at end of file diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/package-lock.json b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/package-lock.json deleted file mode 100644 index 7727d3fd..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/package-lock.json +++ /dev/null @@ -1,10229 +0,0 @@ -{ - "name": "bosch-blockchain-developer-hiring-round-2", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@ant-design/icons": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-1.2.1.tgz", - "integrity": "sha512-gQx3nH6m1xvebOWh5xibhzVK02aoqHY7JUXUS4doAidSDRWsj5iwKC8Gq9DemDZ4T+bW6xO7jJZN1UsbvcW7Uw==" - }, - "@ant-design/icons-react": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ant-design/icons-react/-/icons-react-1.1.2.tgz", - "integrity": "sha512-7Fgt9d8ABgxrhZxsFjHk/VpPcxodQJJhbJO8Lsh7u58pGN4NoxxW++92naeGTXCyqZsbDPBReP+SC0bdBtbsGQ==", - "requires": { - "ant-design-palettes": "^1.1.3", - "babel-runtime": "^6.26.0" - } - }, - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/core": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz", - "integrity": "sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.3.4", - "@babel/helpers": "^7.2.0", - "@babel/parser": "^7.3.4", - "@babel/template": "^7.2.2", - "@babel/traverse": "^7.3.4", - "@babel/types": "^7.3.4", - "convert-source-map": "^1.1.0", - "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.11", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz", - "integrity": "sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.3.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", - "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz", - "integrity": "sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0", - "esutils": "^2.0.0" - } - }, - "@babel/helper-call-delegate": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", - "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.0.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-define-map": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", - "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/types": "^7.0.0", - "lodash": "^4.17.10" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", - "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", - "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", - "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/template": "^7.2.2", - "@babel/types": "^7.2.2", - "lodash": "^4.17.10" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", - "dev": true - }, - "@babel/helper-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", - "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-wrap-function": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-replace-supers": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.3.4.tgz", - "integrity": "sha512-pvObL9WVf2ADs+ePg0jrqlhHoxRXlOa+SHRHzAXIz2xkYuOHfGl+fKxPMaS4Fq+uje8JQPobnertBBvyrWnQ1A==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.0.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.3.4", - "@babel/types": "^7.3.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", - "dev": true, - "requires": { - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-wrap-function": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", - "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.2.0" - } - }, - "@babel/helpers": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz", - "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==", - "dev": true, - "requires": { - "@babel/template": "^7.1.2", - "@babel/traverse": "^7.1.5", - "@babel/types": "^7.3.0" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz", - "integrity": "sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", - "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0", - "@babel/plugin-syntax-async-generators": "^7.2.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", - "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.2.0" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.4.tgz", - "integrity": "sha512-j7VQmbbkA+qrzNqbKHrBsW3ddFnOeva6wzSe/zB7T+xaxGc+RCpwo44wCmRixAIGRoIpmVgvzFzNJqQcO3/9RA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz", - "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0", - "regexpu-core": "^4.2.0" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", - "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", - "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", - "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", - "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", - "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.3.4.tgz", - "integrity": "sha512-Y7nCzv2fw/jEZ9f678MuKdMo99MFDJMT/PvD9LisrR5JDFcJH6vYeH6RnjVt3p5tceyGRvTtEN0VOlU+rgHZjA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", - "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.3.4.tgz", - "integrity": "sha512-blRr2O8IOZLAOJklXLV4WhcEzpYafYQKSGT3+R26lWG41u/FODJuBggehtOwilVAcFu393v3OFj+HmaE6tVjhA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "lodash": "^4.17.11" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.3.4.tgz", - "integrity": "sha512-J9fAvCFBkXEvBimgYxCjvaVDzL6thk0j0dBvCeZmIUDBwyt+nv6HfbImsSrWsYXfDNDivyANgJlFXDUWRTZBuA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-define-map": "^7.1.0", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.3.4", - "@babel/helper-split-export-declaration": "^7.0.0", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", - "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", - "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz", - "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0", - "regexpu-core": "^4.1.3" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", - "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", - "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", - "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz", - "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", - "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", - "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", - "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.3.4.tgz", - "integrity": "sha512-VZ4+jlGOF36S7TjKs8g4ojp4MEI+ebCQZdswWb/T9I4X84j8OtFAyjXjt/M16iIm5RIZn0UMQgg/VgIwo/87vw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", - "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.3.0.tgz", - "integrity": "sha512-NxIoNVhk9ZxS+9lSoAQ/LM0V2UEvARLttEHUrRDGKFaAxOYQcrkN/nLRE+BbbicCAvZPl7wMP0X60HsHE5DtQw==", - "dev": true, - "requires": { - "regexp-tree": "^0.1.0" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", - "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", - "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.1.0" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.3.3.tgz", - "integrity": "sha512-IrIP25VvXWu/VlBWTpsjGptpomtIkYrN/3aDp4UKm7xK6UxZY88kcJ1UwETbzHAlwN21MnNfwlar0u8y3KpiXw==", - "dev": true, - "requires": { - "@babel/helper-call-delegate": "^7.1.0", - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz", - "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz", - "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==", - "dev": true, - "requires": { - "@babel/helper-builder-react-jsx": "^7.3.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz", - "integrity": "sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz", - "integrity": "sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.3.4.tgz", - "integrity": "sha512-hvJg8EReQvXT6G9H2MvNPXkv9zK36Vxa1+csAVTpE1J3j0zlHplw76uudEbJxgvqZzAq9Yh45FLD4pk5mKRFQA==", - "dev": true, - "requires": { - "regenerator-transform": "^0.13.4" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", - "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", - "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", - "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", - "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", - "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", - "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0", - "regexpu-core": "^4.1.3" - } - }, - "@babel/preset-env": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz", - "integrity": "sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.3.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.3.4", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.3.4", - "@babel/plugin-transform-classes": "^7.3.4", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.2.0", - "@babel/plugin-transform-dotall-regex": "^7.2.0", - "@babel/plugin-transform-duplicate-keys": "^7.2.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.2.0", - "@babel/plugin-transform-function-name": "^7.2.0", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "@babel/plugin-transform-modules-systemjs": "^7.3.4", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", - "@babel/plugin-transform-new-target": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.2.0", - "@babel/plugin-transform-parameters": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.3.4", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.2.0", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.2.0", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.2.0", - "browserslist": "^4.3.4", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.3.0" - } - }, - "@babel/preset-react": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz", - "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0" - } - }, - "@babel/runtime": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz", - "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.12.0" - } - }, - "@babel/template": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", - "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.2.2", - "@babel/types": "^7.2.2" - } - }, - "@babel/traverse": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz", - "integrity": "sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.3.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/parser": "^7.3.4", - "@babel/types": "^7.3.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.11" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", - "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - } - }, - "@types/bn.js": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.4.tgz", - "integrity": "sha512-AO8WW+aRcKWKQAYTfKLzwnpL6U+TfPqS+haRrhCy5ff04Da8WZud3ZgVjspQXaEXJDcTlsjUEVvL39wegDek5w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "10.14.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.1.tgz", - "integrity": "sha512-Rymt08vh1GaW4vYB6QP61/5m/CFLGnFZP++bJpWbiNxceNa6RBipDmb413jvtSf/R1gg5a/jQVl2jY4XVRscEA==", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.0.tgz", - "integrity": "sha512-eItQyV43bj4rR3JPV0Skpl1SncRCdziTEK9/v8VwXmV6d/qOUO8/EuWeHBbCZcsfSHfzI5UyMJLCSXtxxznyZg==" - }, - "@types/react": { - "version": "16.8.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.8.tgz", - "integrity": "sha512-xwEvyet96u7WnB96kqY0yY7qxx/pEpU51QeACkKFtrgjjXITQn0oO1iwPEraXVgh10ZFPix7gs1R4OJXF7P5sg==", - "requires": { - "@types/prop-types": "*", - "csstype": "^2.2.0" - } - }, - "@types/react-slick": { - "version": "0.23.3", - "resolved": "https://registry.npmjs.org/@types/react-slick/-/react-slick-0.23.3.tgz", - "integrity": "sha512-B6wU5ynINOolrByhoeJ448qZPjCFPcuhyQI5sjihjG8gQJuoTH6a4YQhuDm4umvbRVielJQANhptc8hmxA85IA==", - "requires": { - "@types/react": "*" - } - }, - "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "dev": true, - "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" - } - }, - "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", - "dev": true - }, - "add-dom-event-listener": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz", - "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==", - "requires": { - "object-assign": "4.x" - } - }, - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=", - "dev": true - }, - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "ajv-keywords": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", - "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", - "dev": true - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "ant-design-palettes": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ant-design-palettes/-/ant-design-palettes-1.1.3.tgz", - "integrity": "sha512-UpkkTp8egEN21KZNvY7sTcabLlkHvLvS71EVPk4CYi77Z9AaGGCaVn7i72tbOgWDrQp2wjIg8WgMbKBdK7GtWA==", - "requires": { - "tinycolor2": "^1.4.1" - } - }, - "antd": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/antd/-/antd-3.15.0.tgz", - "integrity": "sha512-gSoVmQN7rfYmhfpv0dL2sL9gk0Pu9JHgGiExjLJZaSnbPjpCOTAYjIzxG/oo8GzCSeK5abgN5F1saWR5ggLVFQ==", - "requires": { - "@ant-design/icons": "~1.2.0", - "@ant-design/icons-react": "~1.1.2", - "@types/react-slick": "^0.23.3", - "array-tree-filter": "^2.1.0", - "babel-runtime": "6.x", - "classnames": "~2.2.6", - "copy-to-clipboard": "^3.0.8", - "create-react-class": "^15.6.3", - "create-react-context": "0.2.2", - "css-animation": "^1.5.0", - "dom-closest": "^0.2.0", - "enquire.js": "^2.1.6", - "lodash": "^4.17.11", - "moment": "^2.24.0", - "omit.js": "^1.0.0", - "prop-types": "^15.6.2", - "raf": "^3.4.0", - "rc-animate": "^2.5.4", - "rc-calendar": "~9.10.3", - "rc-cascader": "~0.17.0", - "rc-checkbox": "~2.1.5", - "rc-collapse": "~1.11.1", - "rc-dialog": "~7.3.0", - "rc-drawer": "~1.7.6", - "rc-dropdown": "~2.4.1", - "rc-editor-mention": "^1.1.7", - "rc-form": "^2.4.0", - "rc-input-number": "~4.4.0", - "rc-menu": "~7.4.12", - "rc-notification": "~3.3.0", - "rc-pagination": "~1.17.7", - "rc-progress": "~2.3.0", - "rc-rate": "~2.5.0", - "rc-select": "~9.0.0", - "rc-slider": "~8.6.5", - "rc-steps": "~3.3.0", - "rc-switch": "~1.9.0", - "rc-table": "~6.4.0", - "rc-tabs": "~9.6.0", - "rc-time-picker": "~3.6.1", - "rc-tooltip": "~3.7.3", - "rc-tree": "~1.14.6", - "rc-tree-select": "~2.6.0", - "rc-trigger": "^2.6.2", - "rc-upload": "~2.6.0", - "rc-util": "^4.5.1", - "react-lazy-load": "^3.0.13", - "react-lifecycles-compat": "^3.0.4", - "react-slick": "~0.23.2", - "resize-observer-polyfill": "^1.5.0", - "shallowequal": "^1.1.0", - "warning": "~4.0.2" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "ast-types": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", - "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "async-each": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.2.tgz", - "integrity": "sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg==", - "dev": true - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true - }, - "async-validator": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz", - "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", - "requires": { - "babel-runtime": "6.x" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - } - } - }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-loader": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.5.tgz", - "integrity": "sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw==", - "dev": true, - "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "util.promisify": "^1.0.0" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", - "dev": true - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true - }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "dev": true, - "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "dev": true, - "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "dev": true, - "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" - } - }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - }, - "dependencies": { - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz", - "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "bluebird": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "body-parser": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", - "requires": { - "bytes": "3.0.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", - "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "~1.6.16" - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - }, - "dependencies": { - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - } - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sha3": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/browserify-sha3/-/browserify-sha3-0.0.4.tgz", - "integrity": "sha1-CGxHuMgjFsnUcCLCYYWVRXbdjiY=", - "dev": true, - "requires": { - "js-sha3": "^0.6.1", - "safe-buffer": "^5.1.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.1.tgz", - "integrity": "sha512-/pPw5IAUyqaQXGuD5vS8tcbudyPZ241jk1W5pQBsGDfcjNQt7p8qxZhgMNuygDShte1PibLFexecWUPgmVLfrg==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000949", - "electron-to-chromium": "^1.3.116", - "node-releases": "^1.1.11" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cacache": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", - "dev": true, - "requires": { - "bluebird": "^3.5.3", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "camelcase": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.2.0.tgz", - "integrity": "sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30000949", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000949.tgz", - "integrity": "sha512-jIF/jphmuJ7oAWmfYO0qAxRAvCa0zNquALO6Ykfe6qo8qwh882Cgcs+OWmm21L3x6nu4TVLFeEZ9/q6VuKCfSg==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.2.tgz", - "integrity": "sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.0" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", - "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-classes": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz", - "integrity": "sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=", - "requires": { - "component-indexof": "0.0.3" - } - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "component-indexof": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz", - "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=" - }, - "compressible": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.16.tgz", - "integrity": "sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA==", - "dev": true, - "requires": { - "mime-db": ">= 1.38.0 < 2" - } - }, - "compression": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", - "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.14", - "debug": "2.6.9", - "on-headers": "~1.0.1", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-to-clipboard": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.0.8.tgz", - "integrity": "sha512-c3GdeY8qxCHGezVb1EFQfHYK/8NZRemgcTIzPq7PuxjHAf/raKibn2QdhHPb/y6q74PMgH6yizaDZlRmw6QyKw==", - "requires": { - "toggle-selection": "^1.0.3" - } - }, - "core-js": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-react-class": { - "version": "15.6.3", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", - "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", - "requires": { - "fbjs": "^0.8.9", - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "create-react-context": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.2.tgz", - "integrity": "sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A==", - "requires": { - "fbjs": "^0.8.0", - "gud": "^1.0.0" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css-animation": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/css-animation/-/css-animation-1.5.0.tgz", - "integrity": "sha512-hWYoWiOZ7Vr20etzLh3kpWgtC454tW5vn4I6rLANDgpzNSkO7UfOqyCEeaoBSG9CYWQpRkFWTWbWW8o3uZrNLw==", - "requires": { - "babel-runtime": "6.x", - "component-classes": "^1.2.5" - } - }, - "css-loader": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz", - "integrity": "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==", - "dev": true, - "requires": { - "camelcase": "^5.2.0", - "icss-utils": "^4.1.0", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.14", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^2.0.6", - "postcss-modules-scope": "^2.1.0", - "postcss-modules-values": "^2.0.0", - "postcss-value-parser": "^3.3.0", - "schema-utils": "^1.0.0" - } - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "csstype": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.3.tgz", - "integrity": "sha512-rINUZXOkcBmoHWEyu7JdHu5JMzkGRoMX4ov9830WNgxf5UYxcBUO0QTKAqeJ5EZfSdlrcJYkC8WwfVW7JYi4yg==" - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "decompress": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz", - "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", - "dev": true, - "requires": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "dependencies": { - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dev": true, - "requires": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - } - }, - "decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "dependencies": { - "file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "dev": true - } - } - }, - "decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dev": true, - "requires": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - } - }, - "decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", - "dev": true, - "requires": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", - "dev": true - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "dom-align": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.8.2.tgz", - "integrity": "sha512-17vInOylbB7H4qua7QRsmQT05FFTZemO8BhnOPgF9BPqjAPDyQr/9V8fmJbn05vQ31m2gu3EJSSYN2u94szUZg==" - }, - "dom-closest": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-closest/-/dom-closest-0.2.0.tgz", - "integrity": "sha1-69n5HRvyLo1vR3h2u80+yQIWwM8=", - "requires": { - "dom-matches": ">=1.0.1" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "requires": { - "utila": "~0.4" - } - }, - "dom-matches": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-matches/-/dom-matches-2.0.0.tgz", - "integrity": "sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw=" - }, - "dom-scroll-into-view": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz", - "integrity": "sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4=" - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "dev": true, - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "dom-walk": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", - "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", - "dev": true - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "draft-js": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.10.5.tgz", - "integrity": "sha512-LE6jSCV9nkPhfVX2ggcRLA4FKs6zWq9ceuO/88BpXdNCS7mjRTgs0NsV6piUCJX9YxMsB9An33wnkMmU2sD2Zg==", - "requires": { - "fbjs": "^0.8.15", - "immutable": "~3.7.4", - "object-assign": "^4.1.0" - }, - "dependencies": { - "immutable": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", - "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=" - } - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.3.116", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.116.tgz", - "integrity": "sha512-NKwKAXzur5vFCZYBHpdWjTMO8QptNLNP80nItkSIgUOapPAo9Uia+RvkCaZJtO7fhQaVElSvBPWEc2ku6cKsPA==", - "dev": true - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "enquire.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz", - "integrity": "sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ=" - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-templates": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", - "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=", - "dev": true, - "requires": { - "recast": "~0.11.12", - "through": "~2.3.6" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dev": true, - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true - } - } - }, - "eth-lib": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", - "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "keccakjs": "^0.2.1", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethers": { - "version": "4.0.26", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.26.tgz", - "integrity": "sha512-3hK4S8eAGhuWZ/feip5z17MswjGgjb4lEPJqWO/O0dNqToYLSHhvu6gGQPs8d9f+XfpEB2EYexfF0qjhWiZjUA==", - "dev": true, - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=", - "dev": true - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", - "dev": true - } - } - }, - "ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dev": true, - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true - } - } - }, - "eventemitter3": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", - "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", - "dev": true - }, - "eventlistener": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/eventlistener/-/eventlistener-0.0.1.tgz", - "integrity": "sha1-7Suqu4UiJ68rz4iRUscsY8pTLrg=" - }, - "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", - "dev": true - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "express": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", - "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.3", - "content-disposition": "0.5.2", - "content-type": "~1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.4", - "qs": "6.5.2", - "range-parser": "~1.2.0", - "safe-buffer": "5.1.2", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - } - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", - "dev": true - }, - "file-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", - "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" - } - }, - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", - "dev": true - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", - "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", - "dev": true, - "requires": { - "debug": "^3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", - "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "dev": true, - "requires": { - "min-document": "^2.19.0", - "process": "~0.5.1" - }, - "dependencies": { - "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", - "dev": true - } - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", - "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", - "dev": true - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "gud": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", - "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" - }, - "hammerjs": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", - "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" - }, - "handle-thing": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", - "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", - "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", - "requires": { - "react-is": "^16.7.0" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", - "dev": true - }, - "html-loader": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.5.5.tgz", - "integrity": "sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog==", - "dev": true, - "requires": { - "es6-templates": "^0.2.3", - "fastparse": "^1.1.1", - "html-minifier": "^3.5.8", - "loader-utils": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", - "dev": true, - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - } - } - }, - "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", - "dev": true, - "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - } - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.2.0.tgz", - "integrity": "sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=", - "dev": true - }, - "http-parser-js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", - "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", - "dev": true - }, - "http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", - "dev": true, - "requires": { - "eventemitter3": "^3.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "icss-utils": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.0.tgz", - "integrity": "sha512-3DEun4VOeMvSczifM3F2cKQrDQ5Pj6WKhkOq6HD4QTnDUAq8MQRxy5TX6Sy1iY6WPBe4gQ3p5vTECjbIkglkkQ==", - "dev": true, - "requires": { - "postcss": "^7.0.14" - } - }, - "idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dev": true, - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true - } - } - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "internal-ip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.2.0.tgz", - "integrity": "sha512-ZY8Rk+hlvFeuMmG5uH1MXhhdeMntmIaxaInvAmzMq/SHV8rv4Kh+6GiQNNDQd0wZFrcO+FiTBo8lui/osKOyJw==", - "dev": true, - "requires": { - "default-gateway": "^4.0.1", - "ipaddr.js": "^1.9.0" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", - "dev": true - } - } - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "dev": true - }, - "is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "ismobilejs": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-0.5.1.tgz", - "integrity": "sha512-QX4STsOcBYqlTjVGuAdP1MiRVxtiUbRHOKH0v7Gn1EvfUVIQnrSdgCM4zB4VCZuIejnb2NUMUx0Bwd3EIG6yyA==" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true - }, - "js-sha3": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.6.1.tgz", - "integrity": "sha1-W4n3enR3Z5h39YxKB1JAk0sflcA=", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json2mq": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", - "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=", - "requires": { - "string-convert": "^0.2.0" - } - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "keccakjs": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/keccakjs/-/keccakjs-0.2.3.tgz", - "integrity": "sha512-BjLkNDcfaZ6l8HBG9tH0tpmDv3sS2mA7FNQxFHpCdzP3Gb2MVruXBSuoM66SnVxKJpAr5dKGdkHD+bDokt8fTg==", - "dev": true, - "requires": { - "browserify-sha3": "^0.0.4", - "sha3": "^1.2.2" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, - "loglevel": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", - "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mem": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.2.0.tgz", - "integrity": "sha512-5fJxa68urlY0Ir8ijatKa3eRz5lwXnRCTvo9+TbTGAuTFJOwpGcY0X05moBd0nW45965Njt4CDI2GFQoG8DvqA==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true - }, - "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" - }, - "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", - "requires": { - "mime-db": "~1.38.0" - } - }, - "mimic-fn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.0.0.tgz", - "integrity": "sha512-jbex9Yd/3lmICXwYT6gA/j2mNQGU48wCh/VzRd+/Y/PjYQtlg1gLMdZqvu9s/xH7qKvngxRObl56XZR609IMbA==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, - "requires": { - "dom-walk": "^0.1.0" - } - }, - "mini-store": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mini-store/-/mini-store-2.0.0.tgz", - "integrity": "sha512-EG0CuwpQmX+XL4QVS0kxNwHW5ftSbhygu1qxQH0pipugjnPkbvkalCdQbEihMwtQY6d3MTN+MS0q+aurs+RfLQ==", - "requires": { - "hoist-non-react-statics": "^2.3.1", - "prop-types": "^15.6.0", - "react-lifecycles-compat": "^3.0.4", - "shallowequal": "^1.0.2" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "minipass": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", - "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", - "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "dev": true, - "requires": { - "mkdirp": "*" - } - }, - "mock-fs": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.8.0.tgz", - "integrity": "sha512-Gwj4KnJOW15YeTJKO5frFd/WDO5Mc0zxXqL9oHx3+e9rBqW8EVARqQHSaIXznUdljrD6pvbNGW2ZGXKPEfYJfw==", - "dev": true - }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "mutationobserver-shim": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz", - "integrity": "sha512-gciOLNN8Vsf7YzcqRjKzlAJ6y7e+B86u7i3KXes0xfxx/nfLmozlW1Vn+Sc9x3tPIePFgc1AeIFhtRgkqTjzDQ==" - }, - "nan": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.1.tgz", - "integrity": "sha512-I6YB/YEuDeUZMmhscXKxGgZlFnhsn5y0hgOZBadkzfTRrZBtJDZeg6eQf7PYMIEclwmorTKK8GztsyOUSVBREA==" - }, - "nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - }, - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node-forge": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", - "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", - "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-releases": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.11.tgz", - "integrity": "sha512-8v1j5KfP+s5WOTa1spNUAOfreajQPN12JXbRR0oDE+YrJBQCXBnNqUDj27EKpPLOoSiU3tKi3xGPB+JaOdUEQQ==", - "dev": true, - "requires": { - "semver": "^5.3.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dev": true, - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", - "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "oboe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", - "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", - "dev": true, - "requires": { - "http-https": "^1.0.0" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "omit.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-1.0.0.tgz", - "integrity": "sha512-O1rwbvEfAdhtonTv+v6IQeMOKTi/wlHcXpI3hehyPDlujkjSBQC6Vtzg0mdy+v2KVDmuPf7hAbHlTBM6q1bUHQ==", - "requires": { - "babel-runtime": "^6.23.0" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", - "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", - "dev": true - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-headers": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz", - "integrity": "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==", - "dev": true, - "requires": { - "for-each": "^0.3.3", - "string.prototype.trim": "^1.1.2" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "portfinder": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", - "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", - "dev": true, - "requires": { - "async": "^1.5.2", - "debug": "^2.2.0", - "mkdirp": "0.5.x" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", - "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "dev": true, - "requires": { - "postcss": "^7.0.5" - } - }, - "postcss-modules-local-by-default": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz", - "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==", - "dev": true, - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0", - "postcss-value-parser": "^3.3.1" - } - }, - "postcss-modules-scope": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz", - "integrity": "sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A==", - "dev": true, - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - } - }, - "postcss-modules-values": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz", - "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==", - "dev": true, - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^7.0.6" - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "prettier": { - "version": "1.16.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz", - "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==" - }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "dev": true, - "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" - } - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.8.0" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "querystringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz", - "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", - "dev": true - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "randomhex": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", - "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=", - "dev": true - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "unpipe": "1.0.0" - } - }, - "rc-align": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-2.4.5.tgz", - "integrity": "sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw==", - "requires": { - "babel-runtime": "^6.26.0", - "dom-align": "^1.7.0", - "prop-types": "^15.5.8", - "rc-util": "^4.0.4" - } - }, - "rc-animate": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-2.6.0.tgz", - "integrity": "sha512-JXDycchgbOI+7T/VKmFWnAIn042LLScK1fNkmNunb0jz5q5aPGCAybx2bTo7X5t31Jkj9OsxKNb/vZPDPWufCg==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.6", - "css-animation": "^1.3.2", - "prop-types": "15.x", - "raf": "^3.4.0", - "react-lifecycles-compat": "^3.0.4" - } - }, - "rc-calendar": { - "version": "9.10.10", - "resolved": "https://registry.npmjs.org/rc-calendar/-/rc-calendar-9.10.10.tgz", - "integrity": "sha512-WFnxpXGzIt2cPCJjFmrju/w2jZHAO9jW3JSDZovaJuBtVciu1p8brL6PSjWCo4flD3jVurL9LO8tJwgajELj2w==", - "requires": { - "babel-runtime": "6.x", - "classnames": "2.x", - "moment": "2.x", - "prop-types": "^15.5.8", - "rc-trigger": "^2.2.0", - "rc-util": "^4.1.1", - "react-lifecycles-compat": "^3.0.4" - } - }, - "rc-cascader": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-0.17.1.tgz", - "integrity": "sha512-JED1iOLpj1+uob+0Asd4zwhhMRp3gLs2iYOY2/0OsdEsPc8Qj6TUwj8+isVtqyXiwGWG3vo8XgO6KCM/i7ZFqQ==", - "requires": { - "array-tree-filter": "^2.1.0", - "prop-types": "^15.5.8", - "rc-trigger": "^2.2.0", - "rc-util": "^4.0.4", - "react-lifecycles-compat": "^3.0.4", - "shallow-equal": "^1.0.0", - "warning": "^4.0.1" - } - }, - "rc-checkbox": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.1.6.tgz", - "integrity": "sha512-+VxQbt2Cwe1PxCvwosrAYXT6EQeGwrbLJB2K+IPGCSRPCKnk9zcub/0eW8A4kxjyyfh60PkwsAUZ7qmB31OmRA==", - "requires": { - "babel-runtime": "^6.23.0", - "classnames": "2.x", - "prop-types": "15.x", - "rc-util": "^4.0.4" - } - }, - "rc-collapse": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-1.11.1.tgz", - "integrity": "sha512-9HA8f7aWE0yabnzfE2v/7IyMb6dTmj052A9cyEMB0aT1sdLESpetMAzT3FkLcPT5fl7YNRkyVZ3zwkC5qMmzmA==", - "requires": { - "classnames": "2.x", - "css-animation": "1.x", - "prop-types": "^15.5.6", - "rc-animate": "2.x", - "react-is": "^16.7.0", - "shallowequal": "^1.1.0" - } - }, - "rc-dialog": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-7.3.0.tgz", - "integrity": "sha512-YLQHqZuU0cO02LUwhCsCCtvSw24SKLrT4DkNHCNGGcH9YpZP/IOFaH4zVUmXGEQiwyt0D1f3volHthMCKzLzMg==", - "requires": { - "babel-runtime": "6.x", - "rc-animate": "2.x", - "rc-util": "^4.4.0" - } - }, - "rc-drawer": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-1.7.7.tgz", - "integrity": "sha512-7dESNkClYdWGSdBdwcfeOz6DUCqzrW44QT013fsTBJIiWNLSLgDV5KoHKXG8VTJWU4mBn7M5Lqgyr94CRZcxGA==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.5", - "prop-types": "^15.5.0", - "rc-util": "^4.5.1" - } - }, - "rc-dropdown": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-2.4.1.tgz", - "integrity": "sha512-p0XYn0wrOpAZ2fUGE6YJ6U8JBNc5ASijznZ6dkojdaEfQJAeZtV9KMEewhxkVlxGSbbdXe10ptjBlTEW9vEwEg==", - "requires": { - "babel-runtime": "^6.26.0", - "classnames": "^2.2.6", - "prop-types": "^15.5.8", - "rc-trigger": "^2.5.1", - "react-lifecycles-compat": "^3.0.2" - } - }, - "rc-editor-core": { - "version": "0.8.9", - "resolved": "https://registry.npmjs.org/rc-editor-core/-/rc-editor-core-0.8.9.tgz", - "integrity": "sha512-fGTkTm96Kil/i9n5a3JwAzJcl2TkfjO1r1WBWf6NIOxXiJXpC3Lajkf3j6E5K7iz5AW0QRaSGnNQFBrwvXKKWA==", - "requires": { - "babel-runtime": "^6.26.0", - "classnames": "^2.2.5", - "draft-js": "^0.10.0", - "immutable": "^3.7.4", - "lodash": "^4.16.5", - "prop-types": "^15.5.8", - "setimmediate": "^1.0.5" - } - }, - "rc-editor-mention": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/rc-editor-mention/-/rc-editor-mention-1.1.12.tgz", - "integrity": "sha512-cPm2rQ7P+hXaKMsO0ajVv08QlTDcSPVtw8/lVr9D+QzQKRPChCqLw9rVGOa4YGYTeS3gVe8lBfLr8a9JKFk3gA==", - "requires": { - "babel-runtime": "^6.23.0", - "classnames": "^2.2.5", - "dom-scroll-into-view": "^1.2.0", - "draft-js": "~0.10.0", - "immutable": "^3.7.4", - "prop-types": "^15.5.8", - "rc-animate": "^2.3.0", - "rc-editor-core": "~0.8.3" - } - }, - "rc-form": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/rc-form/-/rc-form-2.4.3.tgz", - "integrity": "sha512-59KeQat5TU4YzpfXYpFlyQ1/5uFXm0SV7VokRr+i8bPMhimpKpZl5gt0J7dNiKLTsGnkCqBLSL88d9ufPJ+EQQ==", - "requires": { - "async-validator": "~1.8.5", - "babel-runtime": "6.x", - "create-react-class": "^15.5.3", - "dom-scroll-into-view": "1.x", - "hoist-non-react-statics": "^3.3.0", - "lodash": "^4.17.4", - "warning": "^4.0.3" - } - }, - "rc-hammerjs": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/rc-hammerjs/-/rc-hammerjs-0.6.9.tgz", - "integrity": "sha512-4llgWO3RgLyVbEqUdGsDfzUDqklRlQW5VEhE3x35IvhV+w//VPRG34SBavK3D2mD/UaLKaohgU41V4agiftC8g==", - "requires": { - "babel-runtime": "6.x", - "hammerjs": "^2.0.8", - "prop-types": "^15.5.9" - } - }, - "rc-input-number": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-4.4.0.tgz", - "integrity": "sha512-AsXLVaQZ7rCU71B8zzP3nviL8/CkFGDcp5kIlpMzBdGIHoLyRnXcxei3itH9PfFSgMBixEnb5hFVoTikFbNWSQ==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.0", - "is-negative-zero": "^2.0.0", - "prop-types": "^15.5.7", - "rc-util": "^4.5.1", - "rmc-feedback": "^2.0.0" - } - }, - "rc-menu": { - "version": "7.4.21", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-7.4.21.tgz", - "integrity": "sha512-TfcwybKLuw2WhEkplYH7iFMGlDbH6KhPcd+gv5J2oLQcgiGeUECzyOWSVaFRRlkpB7g2eNzXbha/AXN/Xyzvnw==", - "requires": { - "babel-runtime": "6.x", - "classnames": "2.x", - "dom-scroll-into-view": "1.x", - "ismobilejs": "^0.5.1", - "mini-store": "^2.0.0", - "mutationobserver-shim": "^0.3.2", - "prop-types": "^15.5.6", - "rc-animate": "2.x", - "rc-trigger": "^2.3.0", - "rc-util": "^4.1.0", - "resize-observer-polyfill": "^1.5.0" - } - }, - "rc-notification": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-3.3.1.tgz", - "integrity": "sha512-U5+f4BmBVfMSf3OHSLyRagsJ74yKwlrQAtbbL5ijoA0F2C60BufwnOcHG18tVprd7iaIjzZt1TKMmQSYSvgrig==", - "requires": { - "babel-runtime": "6.x", - "classnames": "2.x", - "prop-types": "^15.5.8", - "rc-animate": "2.x", - "rc-util": "^4.0.4" - } - }, - "rc-pagination": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-1.17.8.tgz", - "integrity": "sha512-duEV+K/b/nZNGr943+TMCEcY4xWkjAkpKW0Vr7fSR8wQk0DY7aTJC+k+vjl4X2EzEmPXqy85hibzpsO9vydKAw==", - "requires": { - "babel-runtime": "6.x", - "prop-types": "^15.5.7", - "react-lifecycles-compat": "^3.0.4" - } - }, - "rc-progress": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-2.3.0.tgz", - "integrity": "sha512-hYBKFSsNgD7jsF8j+ZC1J8y5UIC2X/ktCYI/OQhQNSX6mGV1IXnUCjAd9gbLmzmpChPvKyymRNfckScUNiTpFQ==", - "requires": { - "babel-runtime": "6.x", - "prop-types": "^15.5.8" - } - }, - "rc-rate": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.5.0.tgz", - "integrity": "sha512-aXX5klRqbVZxvLghcKnLqqo7LvLVCHswEDteWsm5Gb7NBIPa1YKTcAbvb5SZ4Z4i4EeRoZaPwygRAWsQgGtbKw==", - "requires": { - "classnames": "^2.2.5", - "prop-types": "^15.5.8", - "rc-util": "^4.3.0", - "react-lifecycles-compat": "^3.0.4" - } - }, - "rc-select": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-9.0.2.tgz", - "integrity": "sha512-lwFz/aINmbznQmKvq/jFipc922h+RhA+iKCicxAglTqC4qmXg2REKWzviT5Tk0kqVe4mHcfNX8PyvMEHSmkaLA==", - "requires": { - "babel-runtime": "^6.23.0", - "classnames": "2.x", - "component-classes": "1.x", - "dom-scroll-into-view": "1.x", - "prop-types": "^15.5.8", - "raf": "^3.4.0", - "rc-animate": "2.x", - "rc-menu": "^7.3.0", - "rc-trigger": "^2.5.4", - "rc-util": "^4.0.4", - "react-lifecycles-compat": "^3.0.2", - "warning": "^4.0.2" - } - }, - "rc-slider": { - "version": "8.6.7", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-8.6.7.tgz", - "integrity": "sha512-QIFWMnK1VLc4TtJSZJgjhI6UOhN8eg53EM2La+eRa8rSPZwJT3rIWfZnTZs7OV7zXG/AiLWN4G+oGxuMcEFpsg==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.5", - "prop-types": "^15.5.4", - "rc-tooltip": "^3.7.0", - "rc-util": "^4.0.4", - "shallowequal": "^1.0.1", - "warning": "^4.0.3" - } - }, - "rc-steps": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-3.3.1.tgz", - "integrity": "sha512-LGzmPYS9ETePo+6YbHlFukCdcKppeBZXO49ZxewaC7Cba00q0zrMXlexquZ4fm+9iz0IkpzwgmenvjsVWCmGOw==", - "requires": { - "babel-runtime": "^6.23.0", - "classnames": "^2.2.3", - "lodash": "^4.17.5", - "prop-types": "^15.5.7" - } - }, - "rc-switch": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-1.9.0.tgz", - "integrity": "sha512-Isas+egaK6qSk64jaEw4GgPStY4umYDbT7ZY93bZF1Af+b/JEsKsJdNOU2qG3WI0Z6tXo2DDq0kJCv8Yhu0zww==", - "requires": { - "classnames": "^2.2.1", - "prop-types": "^15.5.6", - "react-lifecycles-compat": "^3.0.4" - } - }, - "rc-table": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-6.4.3.tgz", - "integrity": "sha512-4/f7mS87EtNxM2vhIaA7I1J8hPZ5OiOQwmjac7RJTmGOFVA8PJDGwEipeyU/eC9RM7f3v4Lc+a05KCfIbRU4tg==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.5", - "component-classes": "^1.2.6", - "lodash": "^4.17.5", - "mini-store": "^2.0.0", - "prop-types": "^15.5.8", - "rc-util": "^4.0.4", - "react-lifecycles-compat": "^3.0.2", - "shallowequal": "^1.0.2", - "warning": "^3.0.0" - }, - "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "rc-tabs": { - "version": "9.6.2", - "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-9.6.2.tgz", - "integrity": "sha512-yYyL/94ZW+C2RxIaY85fiNQi7NJ+y2aDpy4A/yr7IWOdgKspgF0G8JPDFf9SS2vlEdeZFL+y+kDFRjxkZuP6UA==", - "requires": { - "babel-runtime": "6.x", - "classnames": "2.x", - "create-react-context": "0.2.2", - "lodash": "^4.17.5", - "prop-types": "15.x", - "raf": "^3.4.1", - "rc-hammerjs": "~0.6.0", - "rc-util": "^4.0.4", - "warning": "^3.0.0" - }, - "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "rc-time-picker": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rc-time-picker/-/rc-time-picker-3.6.2.tgz", - "integrity": "sha512-SyGEVXO0ImeG2mz+7fkVmDoVM0+OrX6uYGpKYijNr/lAah7c5p310ZR6fVrblXOl4TpqVnfWR67RMJ3twAyM7w==", - "requires": { - "classnames": "2.x", - "moment": "2.x", - "prop-types": "^15.5.8", - "rc-trigger": "^2.2.0" - } - }, - "rc-tooltip": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-3.7.3.tgz", - "integrity": "sha512-dE2ibukxxkrde7wH9W8ozHKUO4aQnPZ6qBHtrTH9LoO836PjDdiaWO73fgPB05VfJs9FbZdmGPVEbXCeOP99Ww==", - "requires": { - "babel-runtime": "6.x", - "prop-types": "^15.5.8", - "rc-trigger": "^2.2.2" - } - }, - "rc-tree": { - "version": "1.14.10", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-1.14.10.tgz", - "integrity": "sha512-iOn7+SpWzM4OQoF/7wJeFiuRpBGJ3ndTe6YVGnfIhsWqDd7S6a7z0anDQcBpPsW/PvisjNDXr4zKchZvx+0iCA==", - "requires": { - "babel-runtime": "^6.23.0", - "classnames": "2.x", - "prop-types": "^15.5.8", - "rc-animate": "^3.0.0-rc.5", - "rc-util": "^4.5.1", - "react-lifecycles-compat": "^3.0.4", - "warning": "^3.0.0" - }, - "dependencies": { - "rc-animate": { - "version": "3.0.0-rc.6", - "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.0.0-rc.6.tgz", - "integrity": "sha512-oBLPpiT6Q4t6YvD/pkLcmofBP1p01TX0Otse8Q4+Mxt8J+VSDflLZGIgf62EwkvRwsQUkLPjZVFBsldnPKLzjg==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.5", - "component-classes": "^1.2.6", - "fbjs": "^0.8.16", - "prop-types": "15.x", - "raf": "^3.4.0", - "rc-util": "^4.5.0", - "react-lifecycles-compat": "^3.0.4" - } - }, - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "rc-tree-select": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-2.6.1.tgz", - "integrity": "sha512-ZNGZMKIIwikgqvpbC8YJlv33OeGWlHiVbr42IXYTmVORoO3QpJuZPW95sF/Yhpjk86DgjuuM3HreoLPAOZCVQQ==", - "requires": { - "classnames": "^2.2.1", - "dom-scroll-into-view": "^1.2.1", - "prop-types": "^15.5.8", - "raf": "^3.4.0", - "rc-animate": "^3.0.0-rc.4", - "rc-tree": "~1.15.0", - "rc-trigger": "^3.0.0-rc.2", - "rc-util": "^4.5.0", - "react-lifecycles-compat": "^3.0.4", - "shallowequal": "^1.0.2", - "warning": "^4.0.1" - }, - "dependencies": { - "rc-animate": { - "version": "3.0.0-rc.6", - "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.0.0-rc.6.tgz", - "integrity": "sha512-oBLPpiT6Q4t6YvD/pkLcmofBP1p01TX0Otse8Q4+Mxt8J+VSDflLZGIgf62EwkvRwsQUkLPjZVFBsldnPKLzjg==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.5", - "component-classes": "^1.2.6", - "fbjs": "^0.8.16", - "prop-types": "15.x", - "raf": "^3.4.0", - "rc-util": "^4.5.0", - "react-lifecycles-compat": "^3.0.4" - } - }, - "rc-tree": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-1.15.2.tgz", - "integrity": "sha512-VPXLA/GdV6U9N8evpl4rmjRsBkw5BoweqWjcVBVwYGzBtonNIFpdc+bnb7TDmd6S3mKOM7mXPbiSr2GKYdj4hA==", - "requires": { - "babel-runtime": "^6.23.0", - "classnames": "2.x", - "prop-types": "^15.5.8", - "rc-animate": "^3.0.0-rc.5", - "rc-util": "^4.5.1", - "react-lifecycles-compat": "^3.0.4", - "warning": "^3.0.0" - }, - "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "rc-trigger": { - "version": "3.0.0-rc.3", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-3.0.0-rc.3.tgz", - "integrity": "sha512-4vB6cpxcUdm2qO5VtB9q1TZz0MoWm9BzFLvGknulphGrl1qI6uxUsPDCvqnmujdpDdAKGGfjxntFpA7RtAwkFQ==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.6", - "prop-types": "15.x", - "raf": "^3.4.0", - "rc-align": "^2.4.1", - "rc-animate": "^3.0.0-rc.1", - "rc-util": "^4.4.0" - } - } - } - }, - "rc-trigger": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.2.tgz", - "integrity": "sha512-op4xCu95/gdHVaysyxxiYxbY+Z+UcIBSUY9nQfLqm1FlitdtnAN+owD5iMPfnnsRXntgcQ5+RdYKNUFQT5DjzA==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.6", - "prop-types": "15.x", - "rc-align": "^2.4.0", - "rc-animate": "2.x", - "rc-util": "^4.4.0" - } - }, - "rc-upload": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-2.6.3.tgz", - "integrity": "sha512-wM57UH/EEqW2/EcWz5nwnU07d4LHDHjBgxRin2Q56TW9JcFVnaQVq/JHycVFumsgSFV5CZfNW8PBROsKT9VFMw==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.5", - "prop-types": "^15.5.7", - "warning": "4.x" - } - }, - "rc-util": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.6.0.tgz", - "integrity": "sha512-rbgrzm1/i8mgfwOI4t1CwWK7wGe+OwX+dNa7PVMgxZYPBADGh86eD4OcJO1UKGeajIMDUUKMluaZxvgraQIOmw==", - "requires": { - "add-dom-event-listener": "^1.1.0", - "babel-runtime": "6.x", - "prop-types": "^15.5.10", - "shallowequal": "^0.2.2" - }, - "dependencies": { - "shallowequal": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz", - "integrity": "sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4=", - "requires": { - "lodash.keys": "^3.1.2" - } - } - } - }, - "react": { - "version": "16.8.4", - "resolved": "https://registry.npmjs.org/react/-/react-16.8.4.tgz", - "integrity": "sha512-0GQ6gFXfUH7aZcjGVymlPOASTuSjlQL4ZtVC5YKH+3JL6bBLCVO21DknzmaPlI90LN253ojj02nsapy+j7wIjg==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.13.4" - } - }, - "react-dom": { - "version": "16.8.4", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.4.tgz", - "integrity": "sha512-Ob2wK7XG2tUDt7ps7LtLzGYYB6DXMCLj0G5fO6WeEICtT4/HdpOi7W/xLzZnR6RCG1tYza60nMdqtxzA8FaPJQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.13.4" - } - }, - "react-is": { - "version": "16.8.4", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.4.tgz", - "integrity": "sha512-PVadd+WaUDOAciICm/J1waJaSvgq+4rHE/K70j0PFqKhkTBsPv/82UGQJNXAngz1fOQLLxI6z1sEDmJDQhCTAA==" - }, - "react-lazy-load": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/react-lazy-load/-/react-lazy-load-3.0.13.tgz", - "integrity": "sha1-OwqS0zbUPT8Nc8vm81sXBQsIuCQ=", - "requires": { - "eventlistener": "0.0.1", - "lodash.debounce": "^4.0.0", - "lodash.throttle": "^4.0.0", - "prop-types": "^15.5.8" - } - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-slick": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/react-slick/-/react-slick-0.23.2.tgz", - "integrity": "sha512-fM6DXX7+22eOcYE9cgaXUfioZL/Zw6fwS6aPMDBt0kLHl4H4fFNEbp4JsJQdEWMLUNFtUytNcvd9KRml22Tp5w==", - "requires": { - "classnames": "^2.2.5", - "enquire.js": "^2.1.6", - "json2mq": "^0.2.0", - "lodash.debounce": "^4.0.8", - "prettier": "^1.14.3", - "resize-observer-polyfill": "^1.5.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "recast": { - "version": "0.11.23", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", - "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", - "dev": true, - "requires": { - "ast-types": "0.9.6", - "esprima": "~3.1.0", - "private": "~0.1.5", - "source-map": "~0.5.0" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.0.2.tgz", - "integrity": "sha512-SbA/iNrBUf6Pv2zU8Ekv1Qbhv92yxL4hiDa2siuxs4KKn4oOoMDHXjAf7+Nz9qinUQ46B1LcWEi/PhJfPWpZWQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.4.tgz", - "integrity": "sha512-T0QMBjK3J0MtxjPmdIMXm72Wvj2Abb0Bd4HADdfijwMdoIsyQZ6fWC7kDFhk2YinBBEMZDL7Y7wh0J1sGx3S4A==", - "dev": true, - "requires": { - "private": "^0.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp-tree": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.5.tgz", - "integrity": "sha512-nUmxvfJyAODw+0B13hj8CFVAxhe7fDEAgJgaotBu3nnR+IgGgZq59YedJP5VYTlkEfqjuK6TuRpnymKdatLZfQ==", - "dev": true - }, - "regexpu-core": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", - "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.0.2", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" - } - }, - "regjsgen": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", - "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", - "dev": true - }, - "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "renderkid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", - "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", - "dev": true, - "requires": { - "css-select": "^1.1.0", - "dom-converter": "^0.2", - "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, - "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rmc-feedback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/rmc-feedback/-/rmc-feedback-2.0.0.tgz", - "integrity": "sha512-5PWOGOW7VXks/l3JzlOU9NIxRpuaSS8d9zA3UULUCuTKnpwBHNvv1jSJzxgbbCQeYzROWUpgKI4za3X4C/mKmQ==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.5" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "scheduler": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.4.tgz", - "integrity": "sha512-cvSOlRPxOHs5dAhP9yiS/6IDmVAVxmk33f0CtTJRkmUWcb1Us+t7b1wqdzoC0REw2muC9V5f1L/w5R5uKGaepA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "scrypt": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", - "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", - "dev": true, - "requires": { - "nan": "^2.0.8" - } - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "scrypt.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz", - "integrity": "sha1-r40UZbcemZARC+38WTuUeeA6ito=", - "dev": true, - "requires": { - "scrypt": "^6.0.2", - "scryptsy": "^1.2.1" - } - }, - "scryptsy": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", - "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", - "dev": true, - "requires": { - "pbkdf2": "^3.0.3" - } - }, - "seek-bzip": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", - "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", - "dev": true, - "requires": { - "commander": "~2.8.1" - }, - "dependencies": { - "commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "dev": true, - "requires": { - "graceful-readlink": ">= 1.0.0" - } - } - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz", - "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==", - "dev": true, - "requires": { - "node-forge": "0.7.5" - } - }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - }, - "dependencies": { - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz", - "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==", - "dev": true - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - } - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" - } - }, - "servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dev": true, - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "sha3": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-1.2.2.tgz", - "integrity": "sha1-pmxQmN5MJbyIM27ItIF9AFvKe6k=", - "dev": true, - "requires": { - "nan": "2.10.0" - }, - "dependencies": { - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true - } - } - }, - "shallow-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.1.0.tgz", - "integrity": "sha512-0SW1nWo1hnabO62SEeHsl8nmTVVEzguVWZCj5gaQrgWAxz/BaCja4OWdJBWLVPDxdtE/WU7c98uUCCXyPHSCvw==" - }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", - "dev": true - }, - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "dev": true, - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "dev": true, - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" - } - }, - "sockjs-client": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", - "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", - "dev": true, - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz", - "integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz", - "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "readable-stream": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.2.0.tgz", - "integrity": "sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "start-server-webpack-plugin": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/start-server-webpack-plugin/-/start-server-webpack-plugin-2.2.5.tgz", - "integrity": "sha512-DRCkciwCJoCFZ+wt3wWMkR1M2mpVhJbUKFXqhK3FWyIUKYb42NnocH5sMwqgo+nPNHupqNwK/v8lgfBbr2NKdg==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", - "integrity": "sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string.prototype.trim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dev": true, - "requires": { - "is-natural-number": "^4.0.1" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dev": true, - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "swarm-js": { - "version": "0.1.39", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.39.tgz", - "integrity": "sha512-QLMqL2rzF6n5s50BptyD6Oi0R1aWlJC5Y17SRIVXRj6OR1DRIPM7nepvrxxkjA1zNzFz6mUOMjfeqeDaWB7OOg==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "decompress": "^4.0.0", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request-promise": "^0.1.2" - }, - "dependencies": { - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - } - } - }, - "tapable": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", - "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", - "dev": true - }, - "tar": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", - "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - }, - "terser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", - "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", - "dev": true, - "requires": { - "commander": "^2.19.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.10" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.3.tgz", - "integrity": "sha512-GOK7q85oAb/5kE12fMuLdn2btOS9OBZn4VsecpHDywoUC/jLhSAKOiYo0ezx7ss2EXPMzyEWFoE0s1WLE+4+oA==", - "dev": true, - "requires": { - "cacache": "^11.0.2", - "find-cache-dir": "^2.0.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "terser": "^3.16.1", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "thunky": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", - "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", - "dev": true - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" - }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "truffle-hdwallet-provider": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/truffle-hdwallet-provider/-/truffle-hdwallet-provider-1.0.5.tgz", - "integrity": "sha512-T9qNm7b6MD0UPWVmmJEhgzW1DdR6mkMDijGBSbdJqYaaBLufoycE+qH3dsV+m1mLTE+ebM5RcJ4gF4oXgDW67w==", - "requires": { - "any-promise": "^1.3.0", - "bindings": "^1.3.1", - "websocket": "^1.0.28" - } - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.18" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "ua-parser-js": { - "version": "0.7.19", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.19.tgz", - "integrity": "sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==" - }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", - "dev": true, - "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, - "unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - }, - "dependencies": { - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - } - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", - "dev": true - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", - "dev": true - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", - "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", - "dev": true, - "requires": { - "querystringify": "^2.0.0", - "requires-port": "^1.0.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } - }, - "url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=", - "dev": true - }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "utf8": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", - "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", - "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "web3": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.48.tgz", - "integrity": "sha512-/HfIaRQVScZv0iy6fnEZCsXQbbOmtEB08sa2YaCkRo8nqUQo1C+55VC5sXqjrwKaDs9Xf9qxVTiUUeTbKD+KYg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "@types/node": "^10.12.18", - "web3-bzz": "1.0.0-beta.48", - "web3-core": "1.0.0-beta.48", - "web3-core-helpers": "1.0.0-beta.48", - "web3-core-method": "1.0.0-beta.48", - "web3-eth": "1.0.0-beta.48", - "web3-eth-personal": "1.0.0-beta.48", - "web3-net": "1.0.0-beta.48", - "web3-providers": "1.0.0-beta.48", - "web3-shh": "1.0.0-beta.48", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-bzz": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.48.tgz", - "integrity": "sha512-rl+z5cyBXefZ1tgmhnC4QDutCYYmURKogHSkmhoH3ow161D1P8qYrxDqNSXwNcuXyejUaaPzi5OLAlR3JTnyxw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "@types/node": "^10.12.18", - "lodash": "^4.17.11", - "swarm-js": "^0.1.39" - } - }, - "web3-core": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.48.tgz", - "integrity": "sha512-vOciU4otvpqp5rRJlfjMGuq+OqBG0EYskKwUbQY+UUM8w8g8MRKjYZGzqIMGQGQ3liIbJGQk8WtiVQjh0e5ZrQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "@types/node": "^10.12.18", - "lodash": "^4.17.11", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-core-helpers": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.48.tgz", - "integrity": "sha512-WjRKTw67IVX1k0S600c9pyp1YZib3AjSOFWAyJu5XbhtckXryZ5oQVFbJRc7XVeJWJA0yLGnqZuSUSh4ot8Byw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "lodash": "^4.17.11", - "web3-eth-iban": "1.0.0-beta.48", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-core-method": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.48.tgz", - "integrity": "sha512-/VfRiFzksrHqKbicK+Yw8SzK2hw/YXKjTQ6l/j9CVFw2FDpBqQtlo9A3qZNeoo6aIh1McTVeSSIrR9vJGFo3dw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "eventemitter3": "3.1.0", - "lodash": "^4.17.11", - "web3-core": "1.0.0-beta.48", - "web3-core-helpers": "1.0.0-beta.48", - "web3-core-promievent": "1.0.0-beta.48", - "web3-core-subscriptions": "1.0.0-beta.48", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-core-promievent": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.48.tgz", - "integrity": "sha512-GNUnYUL0PUO/QzvlYxIlZW5Pra3jyjN6uHuUSDFRp59NbknluP470nTSC/+0XkvZrVTYADf0+04yyOlVM083Ug==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "eventemitter3": "^3.1.0" - } - }, - "web3-core-subscriptions": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.48.tgz", - "integrity": "sha512-9G5hQhFuEvEtZ+e+wEulpfGQnUny7McDiQ6G3pxN6b5/Wg7MVW5Zovcm8s7kvBGISW/8UkRVOJ1vYkzjH0Y2fg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "eventemitter3": "^3.1.0", - "lodash": "^4.17.11", - "web3-core-helpers": "1.0.0-beta.48", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-eth": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.48.tgz", - "integrity": "sha512-PTSe+UAzd/HxKFzG8VVr0WePtnErHhXeRu3j2dA+Z4ucVULJcJo8r6ux+ekWKNZMxXV+gtJjoChk7WGIqXLmSw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "eth-lib": "0.2.8", - "web3-core": "1.0.0-beta.48", - "web3-core-helpers": "1.0.0-beta.48", - "web3-core-method": "1.0.0-beta.48", - "web3-core-subscriptions": "1.0.0-beta.48", - "web3-eth-abi": "1.0.0-beta.48", - "web3-eth-accounts": "1.0.0-beta.48", - "web3-eth-contract": "1.0.0-beta.48", - "web3-eth-ens": "1.0.0-beta.48", - "web3-eth-iban": "1.0.0-beta.48", - "web3-eth-personal": "1.0.0-beta.48", - "web3-net": "1.0.0-beta.48", - "web3-providers": "1.0.0-beta.48", - "web3-utils": "1.0.0-beta.48" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } - } - }, - "web3-eth-abi": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.48.tgz", - "integrity": "sha512-wT1EarsrxHSkd4ZKMn9McgRVXa5fFaNHkjBRo/idXWyV/MMrzs7oCa2AtovrCrkQRiT2GmecaBDLXxGPA06grw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "ethers": "4.0.26", - "lodash": "^4.17.11", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-eth-accounts": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.48.tgz", - "integrity": "sha512-h+1I7Ao0ALKRz0EeDBcZ+ASYyvW06DZmsIYl0yqKTdH3ilfhTkPrEUjmnRPA9KKvJQvrmUkSLEcBHc6OxG+zlA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "lodash": "^4.17.11", - "scrypt.js": "0.2.0", - "uuid": "3.3.2", - "web3-core": "1.0.0-beta.48", - "web3-core-helpers": "1.0.0-beta.48", - "web3-core-method": "1.0.0-beta.48", - "web3-providers": "1.0.0-beta.48", - "web3-utils": "1.0.0-beta.48" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } - } - }, - "web3-eth-contract": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.48.tgz", - "integrity": "sha512-V02dZ0FozYAfE9LBiqHEUWNWY5K9EIFCoQ/9lJz/ixgeyzDe6LRWzec1fT0ntPrMaU3J3hr6+2Ikg41xnfYoaQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "lodash": "^4.17.11", - "web3-core": "1.0.0-beta.48", - "web3-core-helpers": "1.0.0-beta.48", - "web3-core-method": "1.0.0-beta.48", - "web3-core-promievent": "1.0.0-beta.48", - "web3-core-subscriptions": "1.0.0-beta.48", - "web3-eth-abi": "1.0.0-beta.48", - "web3-eth-accounts": "1.0.0-beta.48", - "web3-providers": "1.0.0-beta.48", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-eth-ens": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.48.tgz", - "integrity": "sha512-5pmpbms7n5o6zoKc77d5qWNbjPEfeU9qbTsmzbaZenriVpMqXpvdriuCDLkB/3OV4PvBi+z4Lj8RBTiDb2jBuA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "eth-ens-namehash": "2.0.8", - "lodash": "^4.17.11", - "web3-core": "1.0.0-beta.48", - "web3-core-helpers": "1.0.0-beta.48", - "web3-core-method": "1.0.0-beta.48", - "web3-core-promievent": "1.0.0-beta.48", - "web3-eth-abi": "1.0.0-beta.48", - "web3-eth-contract": "1.0.0-beta.48", - "web3-net": "1.0.0-beta.48", - "web3-providers": "1.0.0-beta.48", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-eth-iban": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.48.tgz", - "integrity": "sha512-ZQapOV6qTP6Wb3TMFUNRyyFwFgPYbB4pGdSW3OkNjFpx8xr+QjcQgwa6EbnSgF+3ApgSWeUzPtdRlqvV/7j5Lw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "bn.js": "4.11.8", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-eth-personal": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.48.tgz", - "integrity": "sha512-mcoslAQpxBbGiPRO6tOAHiLK3WoE+O1fN/6WJLRkEYlDUEJeo3eoWiAkkyaCZyzqCrrohZpZ977s7/spuxSSDA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "web3-core": "1.0.0-beta.48", - "web3-core-helpers": "1.0.0-beta.48", - "web3-core-method": "1.0.0-beta.48", - "web3-net": "1.0.0-beta.48", - "web3-providers": "1.0.0-beta.48", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-net": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.48.tgz", - "integrity": "sha512-q9nLXc2DwepLaTvbJ8Bvv5QHJVY9CUNKJQnIYfcU+R5OHkZ9eN//B8skHbmk5dtbwKJbeUyt5sfZKas/cf4mlw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "lodash": "^4.17.11", - "web3-core": "1.0.0-beta.48", - "web3-core-helpers": "1.0.0-beta.48", - "web3-core-method": "1.0.0-beta.48", - "web3-providers": "1.0.0-beta.48", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-providers": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-providers/-/web3-providers-1.0.0-beta.48.tgz", - "integrity": "sha512-rqWe370lftaYqvTSe8b7vdaANEBeoME6f30yD8VIEkKD6iEbp5TqCtP6A22zC6CEcVnCUrXIKsBCSI71f+QEtw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "@types/node": "^10.12.18", - "eventemitter3": "3.1.0", - "lodash": "^4.17.11", - "oboe": "2.1.4", - "url-parse": "1.4.4", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", - "xhr2-cookies": "1.1.0" - }, - "dependencies": { - "websocket": { - "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", - "from": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible", - "dev": true, - "requires": { - "debug": "^2.2.0", - "nan": "^2.3.3", - "typedarray-to-buffer": "^3.1.2", - "yaeti": "^0.0.6" - } - } - } - }, - "web3-shh": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.48.tgz", - "integrity": "sha512-7F3JcsdMxuq2ezC2BaSFqy0suXtU7a58CjUIM6kVeWa1a3jwSIPvfzlDtMe3AKaabeOay0jaHHs3UUbw4Hzi+A==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "web3-core": "1.0.0-beta.48", - "web3-core-helpers": "1.0.0-beta.48", - "web3-core-method": "1.0.0-beta.48", - "web3-core-subscriptions": "1.0.0-beta.48", - "web3-net": "1.0.0-beta.48", - "web3-providers": "1.0.0-beta.48", - "web3-utils": "1.0.0-beta.48" - } - }, - "web3-utils": { - "version": "1.0.0-beta.48", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.48.tgz", - "integrity": "sha512-TK61xy7mRpLt53M8GbPnrFr9lA2SmqLHvWIJN8K9cU4oDH9MWxuxxJ+Lxg+pQPKqIO9f1u+AiMRNvSEuMeeAmg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "@types/bn.js": "^4.11.4", - "@types/node": "^10.12.18", - "bn.js": "4.11.8", - "eth-lib": "0.2.8", - "ethjs-unit": "^0.1.6", - "lodash": "^4.17.11", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "utf8": "2.1.1" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } - } - }, - "webpack": { - "version": "4.29.6", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.6.tgz", - "integrity": "sha512-MwBwpiE1BQpMDkbnUUaW6K8RFZjljJHArC6tWQJoFm0oQtfoSebtg4Y7/QHnJ/SddtjYLHaKGX64CFjG5rehJw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.0.5", - "acorn-dynamic-import": "^4.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^1.0.0", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" - } - }, - "webpack-cli": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.0.tgz", - "integrity": "sha512-t1M7G4z5FhHKJ92WRKwZ1rtvi7rHc0NZoZRbSkol0YKl4HvcC8+DsmGDmK7MmZxHSAetHagiOsjOB6MmzC2TUw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.0", - "findup-sync": "^2.0.0", - "global-modules": "^1.0.0", - "import-local": "^2.0.0", - "interpret": "^1.1.0", - "loader-utils": "^1.1.0", - "supports-color": "^5.5.0", - "v8-compile-cache": "^2.0.2", - "yargs": "^12.0.5" - } - }, - "webpack-dev-middleware": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.6.1.tgz", - "integrity": "sha512-XQmemun8QJexMEvNFbD2BIg4eSKrmSIMrTfnl2nql2Sc6OGAYFyb8rwuYrCjl/IiEYYuyTEiimMscu7EXji/Dw==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.3.1", - "range-parser": "^1.0.3", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", - "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.2.1.tgz", - "integrity": "sha512-sjuE4mnmx6JOh9kvSbPYw3u/6uxCLHNWfhWaIPwcXWsvWOPN+nc5baq4i9jui3oOBRXGonK9+OI0jVkaz6/rCw==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.0.0", - "compression": "^1.5.2", - "connect-history-api-fallback": "^1.3.0", - "debug": "^4.1.1", - "del": "^3.0.0", - "express": "^4.16.2", - "html-entities": "^1.2.0", - "http-proxy-middleware": "^0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.2.0", - "ip": "^1.1.5", - "killable": "^1.0.0", - "loglevel": "^1.4.1", - "opn": "^5.1.0", - "portfinder": "^1.0.9", - "schema-utils": "^1.0.0", - "selfsigned": "^1.9.1", - "semver": "^5.6.0", - "serve-index": "^1.7.2", - "sockjs": "0.3.19", - "sockjs-client": "1.3.0", - "spdy": "^4.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.5.1", - "webpack-log": "^2.0.0", - "yargs": "12.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "yargs": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", - "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^2.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^10.1.0" - } - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-node-externals": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz", - "integrity": "sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg==", - "dev": true - }, - "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "websocket": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.28.tgz", - "integrity": "sha512-00y/20/80P7H4bCYkzuuvvfDvh+dgtXi5kzDf3UcZwN6boTYaKvsrtZ5lIYm1Gsg48siMErd9M4zjSYfYFHTrA==", - "requires": { - "debug": "^2.2.0", - "nan": "^2.11.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - } - }, - "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, - "requires": { - "http-parser-js": ">=0.4.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true - }, - "whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "xhr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", - "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", - "dev": true, - "requires": { - "global": "~4.3.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dev": true, - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz", - "integrity": "sha1-NDxE0e53JrhkgGloLQ+EDIO0Jh0=", - "dev": true, - "requires": { - "xhr-request": "^1.0.1" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "dev": true, - "requires": { - "cookiejar": "^2.1.1" - } - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "dev": true - }, - "xregexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", - "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - } -} diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/package.json b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/package.json deleted file mode 100644 index a8287428..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "bosch-blockchain-developer-hiring-round-2", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "dapp": "webpack-dev-server --mode development --config webpack.config.dapp.js", - "dapp:prod": "webpack --mode production --config webpack.config.dapp.js", - "server": "rm -rf ./build/server && webpack --config webpack.config.server.js" - }, - "author": "", - "license": "ISC", - "dependencies": { - "antd": "^3.15.0", - "body-parser": "^1.18.3", - "cors": "^2.8.5", - "react": "^16.8.4", - "react-dom": "^16.8.4", - "truffle-hdwallet-provider": "^1.0.5" - }, - "devDependencies": { - "@babel/core": "^7.3.4", - "@babel/preset-env": "^7.3.4", - "@babel/preset-react": "^7.0.0", - "babel-core": "^6.26.3", - "babel-loader": "^8.0.5", - "babel-polyfill": "^6.26.0", - "babel-preset-react": "^6.24.1", - "css-loader": "^2.1.1", - "express": "^4.16.4", - "file-loader": "^3.0.1", - "html-loader": "^0.5.5", - "html-webpack-plugin": "^3.2.0", - "start-server-webpack-plugin": "^2.2.5", - "style-loader": "^0.23.1", - "web3": "^1.0.0-beta.48", - "webpack": "^4.29.6", - "webpack-cli": "^3.3.0", - "webpack-dev-server": "^3.2.1", - "webpack-node-externals": "^1.7.2" - } -} diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/.DS_Store b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/.DS_Store deleted file mode 100644 index 0b2e7686..00000000 Binary files a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/.DS_Store and /dev/null differ diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/config.json b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/config.json deleted file mode 100644 index 398f8b63..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "localhost": { - "url": "http://localhost:7545", - "serverURL": "http://localhost:3000", - "appAddress": "0xD5E8AA91BDa51688e6f3De82E52Fb38E35298515" - } -} \ No newline at end of file diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/index.html b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/index.html deleted file mode 100644 index cbe7aaeb..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - Property Registration App - - -

-
- - \ No newline at end of file diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/index.js b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/index.js deleted file mode 100644 index 02431bc3..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './react-app/App'; - -ReactDOM.render(, document.getElementById('root')); \ No newline at end of file diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/react-app/App.js b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/react-app/App.js deleted file mode 100644 index a9d606d8..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/dapp/react-app/App.js +++ /dev/null @@ -1,303 +0,0 @@ -import React, {Component} from 'react'; -import {Input, Select, Button, Divider, Typography, Alert} from 'antd'; -import Config from '../config.json'; -let config = Config['localhost']; -import 'antd/dist/antd.css'; - -const { Text } = Typography; -const Option = Select.Option; - -export default class App extends Component { - constructor(props) { - super(props); - - this.state = { - registeredProperties: [], - newProperty: {}, - sellProperty: {}, - buyProperty: {}, - } - } - - componentDidMount() { - this.updateRegisteredProperties(); - } - - updateRegisteredProperties() { - fetch(config.serverURL + '/registeredProperties', { - method: 'GET', - }).then(response => { - response.json().then((data) => { - if(response.status === 200) { - this.setState({ - registeredProperties: data.success, - sellProperty: { - propertyId: data.success[0] || "", - }, - buyProperty: { - propertyId: data.success[0] || "", - } - }); - } else { - alert(data.error); - } - }); - }); - } - - renderRegisteredPropertySection() { - return ( -
- Registered Properties -
-
- {this.state.registeredProperties.length === 0 - ? - : this.state.registeredProperties.map((propertyId) => { - return (
{propertyId}
); - }) - } -
-
-
- ); - } - - handleValueChange(e, type, data, key) { - let value = e.target.value; - switch (type) { - case "NEW_PROPERTY": - data[key] = value; - this.setState({ - newProperty: data, - }); - break; - case "SELL_PROPERTY": - data[key] = value; - this.setState({ - sellProperty: data, - }); - break; - case "BUY_PROPERTY": - data[key] = value; - this.setState({ - buyProperty: data, - }); - break; - } - } - - registerProperty() { - fetch(config.serverURL + '/registerProperty', { - method: 'POST', - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - }, - body: JSON.stringify(this.state.newProperty), - }).then(response => { - response.json().then((data) => { - if(response.status === 200) { - alert("PropertyId: " + data.success.events.PropertyRegistered.returnValues[2] + " registered successfully"); - } else { - alert(JSON.stringify(data.error)); - } - this.updateRegisteredProperties(); - }); - }); - } - - handleDropdownValueChange(value, type, data, key) { - switch(type) { - case "SELL_PROPERTY": - data[key] = value; - this.setState({ - sellProperty: data, - }); - break; - case "BUY_PROPERTY": - data[key] = value; - this.setState({ - buyProperty: data, - }); - break; - } - } - - renderNewPropertyRegistrationSection() { - return ( -
- Register New Property -
-
-
- this.handleValueChange(e, "NEW_PROPERTY", this.state.newProperty, "ownerName")}/> -
-
- this.handleValueChange(e, "NEW_PROPERTY", this.state.newProperty, "ownerId")}/> -
-
- this.handleValueChange(e, "NEW_PROPERTY", this.state.newProperty, "passCode")}/> -
-
- this.handleValueChange(e, "NEW_PROPERTY", this.state.newProperty, "propertyType")}/> -
-
- this.handleValueChange(e, "NEW_PROPERTY", this.state.newProperty, "propertyAddress")}/> -
-
- this.handleValueChange(e, "NEW_PROPERTY", this.state.newProperty, "propertyDimensions")}/> -
-
- -
-
-
-
- ); - } - - sellProperty() { - fetch(config.serverURL + '/sellProperty', { - method: 'POST', - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - }, - body: JSON.stringify(this.state.sellProperty), - }).then(response => { - response.json().then((data) => { - if(response.status === 200) { - alert("PropertyId: " + data.success.events.PropertyOnSale.returnValues[0] + " marked as on sale"); - } else { - alert(JSON.stringify(data.error)); - } - }); - }); - } - - renderSellPropertySection() { - return ( -
- Sell Property -
-
- {this.state.registeredProperties.length === 0 - ? - :
-
- -
-
- this.handleValueChange(e, "SELL_PROPERTY", this.state.sellProperty, "price")}/> -
-
- this.handleValueChange(e, "SELL_PROPERTY", this.state.sellProperty, "ownerId")}/> -
-
- -
-
- } -
-
-
- ); - } - - buyProperty() { - fetch(config.serverURL + '/buyProperty', { - method: 'POST', - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - }, - body: JSON.stringify(this.state.buyProperty), - }).then(response => { - response.json().then((data) => { - if(response.status === 200) { - alert("PropertyId: " + data.success.events.PropertyTransferred.returnValues[3] + " purchased"); - } else { - alert(JSON.stringify(data.error)); - } - }); - }); - } - - renderBuyPropertySection() { - return ( -
- Buy Property -
-
- {this.state.registeredProperties.length === 0 - ? - :
-
- -
-
- this.handleValueChange(e, "BUY_PROPERTY", this.state.buyProperty, "price")}/> -
-
- this.handleValueChange(e, "BUY_PROPERTY", this.state.buyProperty, "newOwnerId")}/> -
-
- this.handleValueChange(e, "BUY_PROPERTY", this.state.buyProperty, "newOwnerName")}/> -
-
- -
-
- } -
-
-
- ); - } - - render() { - return ( -
- {this.renderRegisteredPropertySection()} - {this.renderNewPropertyRegistrationSection()} - {this.renderSellPropertySection()} - {this.renderBuyPropertySection()} -
- ); - } -} \ No newline at end of file diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/server/config.json b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/server/config.json deleted file mode 100644 index 398f8b63..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/server/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "localhost": { - "url": "http://localhost:7545", - "serverURL": "http://localhost:3000", - "appAddress": "0xD5E8AA91BDa51688e6f3De82E52Fb38E35298515" - } -} \ No newline at end of file diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/server/index.js b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/server/index.js deleted file mode 100755 index e0c2713a..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/server/index.js +++ /dev/null @@ -1,14 +0,0 @@ -import http from 'http' -import app from './server' - -const server = http.createServer(app); -let currentApp = app; -server.listen(3000); - -if (module.hot) { - module.hot.accept('./server', () => { - server.removeListener('request', currentApp); - server.on('request', app); - currentApp = app; - }) -} diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/server/server.js b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/server/server.js deleted file mode 100755 index cc2da563..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/src/server/server.js +++ /dev/null @@ -1,84 +0,0 @@ -import PropertyRegistration from '../../build/contracts/PropertyRegistration.json'; -import Config from './config.json'; -import Web3 from 'web3'; -import express from 'express'; -import cors from 'cors'; -import bodyParser from 'body-parser'; - -let config = Config['localhost']; -let web3 = new Web3(new Web3.providers.WebsocketProvider(config.url.replace('http', 'ws'))); -web3.eth.defaultAccount = web3.eth.accounts[0]; -let PropertyRegistrationApp = new web3.eth.Contract(PropertyRegistration.abi, config.appAddress); - -const app = express(); -app.use(cors()); -app.use(bodyParser.json()); - -app.get("/registeredProperties", (req, res) => { - PropertyRegistrationApp.methods.getRegisteredProperties().call().then((response) => { - return res.status(200).json({success: response}); - }).catch((error) => { - return res.status(500).json({error: error}); - }); -}); - -app.post('/registerProperty', (req, res) => { - let newProperty = req.body; - let ownerName = newProperty.ownerName; - let ownerId = newProperty.ownerId; - let passCode = newProperty.passCode; - let propertyType = newProperty.propertyType; - let propertyAddress = newProperty.propertyAddress; - let propertyDimensions = newProperty.propertyDimensions; - PropertyRegistrationApp.methods.registerProperty(ownerName, ownerId, passCode, propertyType, propertyAddress, propertyDimensions).send({ - from: ownerId, - gas: 4712388, - gasPrice: 100000000000 - } - ).then((response) => { - return res.status(200).json({success: response}); - }).catch((error) => { - error["Error"] = "Property Can't be registered"; - return res.status(500).json({error: error}); - }); -}); - -app.post('/sellProperty', (req, res) => { - let sellProperty = req.body; - let propertyId = sellProperty.propertyId; - let price = sellProperty.price; - let ownerId = sellProperty.ownerId; - PropertyRegistrationApp.methods.setPropertyPrice(propertyId, price).send({ - from: ownerId, - gas: 4712388, - gasPrice: 100000000000 - } - ).then((response) => { - return res.status(200).json({success: response}); - }).catch((error) => { - error["Error"] = "Property Can't be sold"; - return res.status(500).json({error: error}); - }); -}); - -app.post('/buyProperty', (req, res) => { - let buyProperty = req.body; - let propertyId = buyProperty.propertyId; - let price = buyProperty.price; - let newOwnerId = buyProperty.newOwnerId; - let newOwnerName = buyProperty.newOwnerName; - PropertyRegistrationApp.methods.transferProperty(propertyId, newOwnerName).send({ - from: newOwnerId, - value: price, - gas: 4712388, - gasPrice: 100000000000 - } - ).then((response) => { - return res.status(200).json({success: response}); - }).catch((error) => { - error["Error"] = "Property Can't be purchased"; - return res.status(500).json({error: error}); - }); -}); - -export default app; \ No newline at end of file diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/webpack.config.dapp.js b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/webpack.config.dapp.js deleted file mode 100755 index 3ccd1430..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/webpack.config.dapp.js +++ /dev/null @@ -1,52 +0,0 @@ -const path = require("path"); -const HtmlWebpackPlugin = require("html-webpack-plugin"); - -module.exports = { - entry: ['babel-polyfill', path.join(__dirname, "src/dapp")], - output: { - path: path.join(__dirname, "prod/dapp"), - filename: "bundle.js" - }, - module: { - rules: [ - { - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - presets: ['@babel/preset-env', '@babel/preset-react'], - } - } - }, - { - test: /\.css$/, - use: ["style-loader", "css-loader"] - }, - { - test: /\.(png|svg|jpg|gif)$/, - use: [ - 'file-loader' - ] - }, - { - test: /\.html$/, - use: "html-loader", - exclude: /node_modules/ - } - ] - }, - plugins: [ - new HtmlWebpackPlugin({ - template: path.join(__dirname, "src/dapp/index.html") - }) - ], - resolve: { - extensions: [".js"] - }, - devServer: { - contentBase: path.join(__dirname, "dapp"), - port: 8000, - stats: "minimal" - } -}; diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/webpack.config.server.js b/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/webpack.config.server.js deleted file mode 100755 index 64a6ae5c..00000000 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/webpack.config.server.js +++ /dev/null @@ -1,38 +0,0 @@ -const webpack = require('webpack'); -const path = require('path'); -const nodeExternals = require('webpack-node-externals'); -const StartServerPlugin = require('start-server-webpack-plugin'); - -module.exports = { - entry: [ - 'webpack/hot/poll?1000', - './src/server/index' - ], - watch: true, - target: 'node', - externals: [nodeExternals({ - whitelist: ['webpack/hot/poll?1000'] - })], - module: { - rules: [{ - test: /\.js?$/, - use: 'babel-loader', - exclude: /node_modules/ - }] - }, - plugins: [ - new StartServerPlugin('server.js'), - new webpack.NamedModulesPlugin(), - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - new webpack.DefinePlugin({ - "process.env": { - "BUILD_TARGET": JSON.stringify('server') - } - }), - ], - output: { - path: path.join(__dirname, 'prod/server'), - filename: 'server.js' - } -}; \ No newline at end of file diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/README.md b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/README.md similarity index 66% rename from Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/README.md rename to Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/README.md index 62bec351..2bf1c800 100644 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/README.md +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/README.md @@ -1,29 +1,37 @@ # Run the Project -## Install Ganache +## Install Ganache + https://truffleframework.com/ganache -- If you are using ganache CLI - use port 8545 -- If you are using ganache GUI - use port 7545 + +- If you are using ganache CLI - use port 8545 +- If you are using ganache GUI - use port 7545 I am using ganache GUI and if your ganache is running on some another port then config it in truffle.js file. ## Install Dependencies + Run `npm install` in the project root directory to install the dependencies. ## Migrate contract to development environment + Run `truffle deploy` in the project root directory to deploy the contract to development environment. ## Run Server + Run `npm run server` in the project root directory to run the server. ## Run App + Run `npm run dapp` in the project root directory to run the App. # Video Explanation -- https://www.youtube.com/watch?v=AwbRMJ89ocY + +- https://www.youtube.com/watch?v=AwbRMJ89ocY # Tech Stack -- Ethereum/Solidity - Blockchain -- NodeJS/ExpressJS - Server -- React/webpack - Application FrontEnd -- Truffle/Ganache - Testing \ No newline at end of file + +- Ethereum/Solidity - Blockchain +- NodeJS/ExpressJS - Server +- React/webpack - Application FrontEnd +- Truffle/Ganache - Testing diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/contracts/Migrations.sol b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/contracts/Migrations.sol similarity index 100% rename from Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/contracts/Migrations.sol rename to Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/contracts/Migrations.sol diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/contracts/PropertyRegistration.sol b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/contracts/PropertyRegistration.sol similarity index 100% rename from Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/contracts/PropertyRegistration.sol rename to Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/contracts/PropertyRegistration.sol diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/migrations/1_initial_migration.js b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/migrations/1_initial_migration.js similarity index 69% rename from Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/migrations/1_initial_migration.js rename to Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/migrations/1_initial_migration.js index 8153c0ea..61cab778 100755 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/migrations/1_initial_migration.js +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/migrations/1_initial_migration.js @@ -1,5 +1,5 @@ var Migrations = artifacts.require("Migrations"); -module.exports = function(deployer) { +module.exports = function (deployer) { deployer.deploy(Migrations); }; diff --git a/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/migrations/2_deploy_contracts.js b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/migrations/2_deploy_contracts.js new file mode 100755 index 00000000..0bafff27 --- /dev/null +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/migrations/2_deploy_contracts.js @@ -0,0 +1,16 @@ +const PropertyRegistration = artifacts.require("PropertyRegistration"); +const fs = require("fs"); + +module.exports = function (deployer) { + deployer.deploy(PropertyRegistration).then(() => { + let config = { + localhost: { + url: "http://localhost:7545", + serverURL: "http://localhost:3000", + appAddress: PropertyRegistration.address, + }, + }; + fs.writeFileSync(__dirname + "/../src/dapp/config.json", JSON.stringify(config, null, "\t"), "utf-8"); + fs.writeFileSync(__dirname + "/../src/server/config.json", JSON.stringify(config, null, "\t"), "utf-8"); + }); +}; diff --git a/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/package.json b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/package.json new file mode 100644 index 00000000..e5b3a4bb --- /dev/null +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/package.json @@ -0,0 +1,43 @@ +{ + "name": "bosch-blockchain-developer-hiring-round-2", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "dapp": "webpack-dev-server --mode development --config webpack.config.dapp.js", + "dapp:prod": "webpack --mode production --config webpack.config.dapp.js", + "server": "rm -rf ./build/server && webpack --config webpack.config.server.js" + }, + "author": "", + "license": "ISC", + "dependencies": { + "antd": "^3.15.0", + "body-parser": "^1.18.3", + "cors": "^2.8.5", + "react": "^16.8.4", + "react-dom": "^16.8.4", + "truffle-hdwallet-provider": "^1.0.5" + }, + "devDependencies": { + "@babel/core": "^7.3.4", + "@babel/preset-env": "^7.3.4", + "@babel/preset-react": "^7.0.0", + "babel-core": "^6.26.3", + "babel-loader": "^8.0.5", + "babel-polyfill": "^6.26.0", + "babel-preset-react": "^6.24.1", + "css-loader": "^2.1.1", + "express": "^4.16.4", + "file-loader": "^3.0.1", + "html-loader": "^0.5.5", + "html-webpack-plugin": "^3.2.0", + "start-server-webpack-plugin": "^2.2.5", + "style-loader": "^0.23.1", + "web3": "^1.0.0-beta.48", + "webpack": "^4.29.6", + "webpack-cli": "^3.3.0", + "webpack-dev-server": "^3.2.1", + "webpack-node-externals": "^1.7.2" + } +} diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/screenshots/1.png b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/screenshots/1.png similarity index 100% rename from Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/screenshots/1.png rename to Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/screenshots/1.png diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/screenshots/2.png b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/screenshots/2.png similarity index 100% rename from Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/screenshots/2.png rename to Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/screenshots/2.png diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/screenshots/3.png b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/screenshots/3.png similarity index 100% rename from Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/screenshots/3.png rename to Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/screenshots/3.png diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/screenshots/4.png b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/screenshots/4.png similarity index 100% rename from Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/screenshots/4.png rename to Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/screenshots/4.png diff --git a/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/config.json b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/config.json new file mode 100644 index 00000000..7a5789f4 --- /dev/null +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/config.json @@ -0,0 +1,7 @@ +{ + "localhost": { + "url": "http://localhost:7545", + "serverURL": "http://localhost:3000", + "appAddress": "0xD5E8AA91BDa51688e6f3De82E52Fb38E35298515" + } +} diff --git a/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/index.html b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/index.html new file mode 100644 index 00000000..272da034 --- /dev/null +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/index.html @@ -0,0 +1,8 @@ + + + Property Registration App + + +
+ + diff --git a/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/index.js b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/index.js new file mode 100644 index 00000000..55685c23 --- /dev/null +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/index.js @@ -0,0 +1,5 @@ +import React from "react"; +import ReactDOM from "react-dom"; +import App from "./react-app/App"; + +ReactDOM.render(, document.getElementById("root")); diff --git a/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/react-app/App.js b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/react-app/App.js new file mode 100644 index 00000000..31e3cd7c --- /dev/null +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/dapp/react-app/App.js @@ -0,0 +1,402 @@ +import React, { Component } from "react"; +import { Input, Select, Button, Divider, Typography, Alert } from "antd"; +import Config from "../config.json"; +let config = Config["localhost"]; +import "antd/dist/antd.css"; + +const { Text } = Typography; +const Option = Select.Option; + +export default class App extends Component { + constructor(props) { + super(props); + + this.state = { + registeredProperties: [], + newProperty: {}, + sellProperty: {}, + buyProperty: {}, + }; + } + + componentDidMount() { + this.updateRegisteredProperties(); + } + + updateRegisteredProperties() { + fetch(config.serverURL + "/registeredProperties", { + method: "GET", + }).then(response => { + response.json().then(data => { + if (response.status === 200) { + this.setState({ + registeredProperties: data.success, + sellProperty: { + propertyId: data.success[0] || "", + }, + buyProperty: { + propertyId: data.success[0] || "", + }, + }); + } else { + alert(data.error); + } + }); + }); + } + + renderRegisteredPropertySection() { + return ( +
+ Registered Properties +
+
+ {this.state.registeredProperties.length === 0 ? ( + + ) : ( + this.state.registeredProperties.map(propertyId => { + return ( +
+ {propertyId} +
+ ); + }) + )} +
+
+
+ ); + } + + handleValueChange(e, type, data, key) { + let value = e.target.value; + switch (type) { + case "NEW_PROPERTY": + data[key] = value; + this.setState({ + newProperty: data, + }); + break; + case "SELL_PROPERTY": + data[key] = value; + this.setState({ + sellProperty: data, + }); + break; + case "BUY_PROPERTY": + data[key] = value; + this.setState({ + buyProperty: data, + }); + break; + } + } + + registerProperty() { + fetch(config.serverURL + "/registerProperty", { + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + }, + body: JSON.stringify(this.state.newProperty), + }).then(response => { + response.json().then(data => { + if (response.status === 200) { + alert( + "PropertyId: " + + data.success.events.PropertyRegistered.returnValues[2] + + " registered successfully" + ); + } else { + alert(JSON.stringify(data.error)); + } + this.updateRegisteredProperties(); + }); + }); + } + + handleDropdownValueChange(value, type, data, key) { + switch (type) { + case "SELL_PROPERTY": + data[key] = value; + this.setState({ + sellProperty: data, + }); + break; + case "BUY_PROPERTY": + data[key] = value; + this.setState({ + buyProperty: data, + }); + break; + } + } + + renderNewPropertyRegistrationSection() { + return ( +
+ Register New Property +
+
+
+ + this.handleValueChange(e, "NEW_PROPERTY", this.state.newProperty, "ownerName") + } + /> +
+
+ + this.handleValueChange(e, "NEW_PROPERTY", this.state.newProperty, "ownerId") + } + /> +
+
+ + this.handleValueChange(e, "NEW_PROPERTY", this.state.newProperty, "passCode") + } + /> +
+
+ + this.handleValueChange(e, "NEW_PROPERTY", this.state.newProperty, "propertyType") + } + /> +
+
+ + this.handleValueChange(e, "NEW_PROPERTY", this.state.newProperty, "propertyAddress") + } + /> +
+
+ + this.handleValueChange( + e, + "NEW_PROPERTY", + this.state.newProperty, + "propertyDimensions" + ) + } + /> +
+
+ +
+
+
+
+ ); + } + + sellProperty() { + fetch(config.serverURL + "/sellProperty", { + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + }, + body: JSON.stringify(this.state.sellProperty), + }).then(response => { + response.json().then(data => { + if (response.status === 200) { + alert("PropertyId: " + data.success.events.PropertyOnSale.returnValues[0] + " marked as on sale"); + } else { + alert(JSON.stringify(data.error)); + } + }); + }); + } + + renderSellPropertySection() { + return ( +
+ Sell Property +
+
+ {this.state.registeredProperties.length === 0 ? ( + + ) : ( +
+
+ +
+
+ + this.handleValueChange(e, "SELL_PROPERTY", this.state.sellProperty, "price") + } + /> +
+
+ + this.handleValueChange( + e, + "SELL_PROPERTY", + this.state.sellProperty, + "ownerId" + ) + } + /> +
+
+ +
+
+ )} +
+
+
+ ); + } + + buyProperty() { + fetch(config.serverURL + "/buyProperty", { + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + }, + body: JSON.stringify(this.state.buyProperty), + }).then(response => { + response.json().then(data => { + if (response.status === 200) { + alert("PropertyId: " + data.success.events.PropertyTransferred.returnValues[3] + " purchased"); + } else { + alert(JSON.stringify(data.error)); + } + }); + }); + } + + renderBuyPropertySection() { + return ( +
+ Buy Property +
+
+ {this.state.registeredProperties.length === 0 ? ( + + ) : ( +
+
+ +
+
+ + this.handleValueChange(e, "BUY_PROPERTY", this.state.buyProperty, "price") + } + /> +
+
+ + this.handleValueChange( + e, + "BUY_PROPERTY", + this.state.buyProperty, + "newOwnerId" + ) + } + /> +
+
+ + this.handleValueChange( + e, + "BUY_PROPERTY", + this.state.buyProperty, + "newOwnerName" + ) + } + /> +
+
+ +
+
+ )} +
+
+
+ ); + } + + render() { + return ( +
+ {this.renderRegisteredPropertySection()} + {this.renderNewPropertyRegistrationSection()} + {this.renderSellPropertySection()} + {this.renderBuyPropertySection()} +
+ ); + } +} diff --git a/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/server/config.json b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/server/config.json new file mode 100644 index 00000000..7a5789f4 --- /dev/null +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/server/config.json @@ -0,0 +1,7 @@ +{ + "localhost": { + "url": "http://localhost:7545", + "serverURL": "http://localhost:3000", + "appAddress": "0xD5E8AA91BDa51688e6f3De82E52Fb38E35298515" + } +} diff --git a/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/server/index.js b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/server/index.js new file mode 100755 index 00000000..013efe8a --- /dev/null +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/server/index.js @@ -0,0 +1,14 @@ +import http from "http"; +import app from "./server"; + +const server = http.createServer(app); +let currentApp = app; +server.listen(3000); + +if (module.hot) { + module.hot.accept("./server", () => { + server.removeListener("request", currentApp); + server.on("request", app); + currentApp = app; + }); +} diff --git a/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/server/server.js b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/server/server.js new file mode 100755 index 00000000..da243228 --- /dev/null +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/src/server/server.js @@ -0,0 +1,97 @@ +import PropertyRegistration from "../../build/contracts/PropertyRegistration.json"; +import Config from "./config.json"; +import Web3 from "web3"; +import express from "express"; +import cors from "cors"; +import bodyParser from "body-parser"; + +let config = Config["localhost"]; +let web3 = new Web3(new Web3.providers.WebsocketProvider(config.url.replace("http", "ws"))); +web3.eth.defaultAccount = web3.eth.accounts[0]; +let PropertyRegistrationApp = new web3.eth.Contract(PropertyRegistration.abi, config.appAddress); + +const app = express(); +app.use(cors()); +app.use(bodyParser.json()); + +app.get("/registeredProperties", (req, res) => { + PropertyRegistrationApp.methods + .getRegisteredProperties() + .call() + .then(response => { + return res.status(200).json({ success: response }); + }) + .catch(error => { + return res.status(500).json({ error: error }); + }); +}); + +app.post("/registerProperty", (req, res) => { + let newProperty = req.body; + let ownerName = newProperty.ownerName; + let ownerId = newProperty.ownerId; + let passCode = newProperty.passCode; + let propertyType = newProperty.propertyType; + let propertyAddress = newProperty.propertyAddress; + let propertyDimensions = newProperty.propertyDimensions; + PropertyRegistrationApp.methods + .registerProperty(ownerName, ownerId, passCode, propertyType, propertyAddress, propertyDimensions) + .send({ + from: ownerId, + gas: 4712388, + gasPrice: 100000000000, + }) + .then(response => { + return res.status(200).json({ success: response }); + }) + .catch(error => { + error["Error"] = "Property Can't be registered"; + return res.status(500).json({ error: error }); + }); +}); + +app.post("/sellProperty", (req, res) => { + let sellProperty = req.body; + let propertyId = sellProperty.propertyId; + let price = sellProperty.price; + let ownerId = sellProperty.ownerId; + PropertyRegistrationApp.methods + .setPropertyPrice(propertyId, price) + .send({ + from: ownerId, + gas: 4712388, + gasPrice: 100000000000, + }) + .then(response => { + return res.status(200).json({ success: response }); + }) + .catch(error => { + error["Error"] = "Property Can't be sold"; + return res.status(500).json({ error: error }); + }); +}); + +app.post("/buyProperty", (req, res) => { + let buyProperty = req.body; + let propertyId = buyProperty.propertyId; + let price = buyProperty.price; + let newOwnerId = buyProperty.newOwnerId; + let newOwnerName = buyProperty.newOwnerName; + PropertyRegistrationApp.methods + .transferProperty(propertyId, newOwnerName) + .send({ + from: newOwnerId, + value: price, + gas: 4712388, + gasPrice: 100000000000, + }) + .then(response => { + return res.status(200).json({ success: response }); + }) + .catch(error => { + error["Error"] = "Property Can't be purchased"; + return res.status(500).json({ error: error }); + }); +}); + +export default app; diff --git a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/truffle.js b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/truffle.js similarity index 80% rename from Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/truffle.js rename to Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/truffle.js index c7071093..0ad178d3 100755 --- a/Hiring Challenges/Bosch Blockchain Developer Hiring/Round 2/truffle.js +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/truffle.js @@ -7,12 +7,12 @@ module.exports = { provider: function () { return new HDWalletProvider(mnemonic, "http://127.0.0.1:7545/", 0, 50); }, - network_id: '*', - } + network_id: "*", + }, }, compilers: { solc: { - version: "^0.5.2" - } - } -}; \ No newline at end of file + version: "^0.5.2", + }, + }, +}; diff --git a/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/webpack.config.dapp.js b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/webpack.config.dapp.js new file mode 100755 index 00000000..f1a0fb19 --- /dev/null +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/webpack.config.dapp.js @@ -0,0 +1,50 @@ +const path = require("path"); +const HtmlWebpackPlugin = require("html-webpack-plugin"); + +module.exports = { + entry: ["babel-polyfill", path.join(__dirname, "src/dapp")], + output: { + path: path.join(__dirname, "prod/dapp"), + filename: "bundle.js", + }, + module: { + rules: [ + { + test: /\.(js|jsx)$/, + exclude: /node_modules/, + use: { + loader: "babel-loader", + options: { + presets: ["@babel/preset-env", "@babel/preset-react"], + }, + }, + }, + { + test: /\.css$/, + use: ["style-loader", "css-loader"], + }, + { + test: /\.(png|svg|jpg|gif)$/, + use: ["file-loader"], + }, + { + test: /\.html$/, + use: "html-loader", + exclude: /node_modules/, + }, + ], + }, + plugins: [ + new HtmlWebpackPlugin({ + template: path.join(__dirname, "src/dapp/index.html"), + }), + ], + resolve: { + extensions: [".js"], + }, + devServer: { + contentBase: path.join(__dirname, "dapp"), + port: 8000, + stats: "minimal", + }, +}; diff --git a/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/webpack.config.server.js b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/webpack.config.server.js new file mode 100755 index 00000000..a89586be --- /dev/null +++ b/Hiring Challenges/Bosch/Blockchain Developer Hiring/Round 2/webpack.config.server.js @@ -0,0 +1,39 @@ +const webpack = require("webpack"); +const path = require("path"); +const nodeExternals = require("webpack-node-externals"); +const StartServerPlugin = require("start-server-webpack-plugin"); + +module.exports = { + entry: ["webpack/hot/poll?1000", "./src/server/index"], + watch: true, + target: "node", + externals: [ + nodeExternals({ + whitelist: ["webpack/hot/poll?1000"], + }), + ], + module: { + rules: [ + { + test: /\.js?$/, + use: "babel-loader", + exclude: /node_modules/, + }, + ], + }, + plugins: [ + new StartServerPlugin("server.js"), + new webpack.NamedModulesPlugin(), + new webpack.HotModuleReplacementPlugin(), + new webpack.NoEmitOnErrorsPlugin(), + new webpack.DefinePlugin({ + "process.env": { + BUILD_TARGET: JSON.stringify("server"), + }, + }), + ], + output: { + path: path.join(__dirname, "prod/server"), + filename: "server.js", + }, +}; diff --git a/Hiring Challenges/Cleartrip Frontend Developer Hiring Challenge on Hackerearth/README.md b/Hiring Challenges/Cleartrip/Frontend Developer Hiring Challenge on Hackerearth/README.md similarity index 99% rename from Hiring Challenges/Cleartrip Frontend Developer Hiring Challenge on Hackerearth/README.md rename to Hiring Challenges/Cleartrip/Frontend Developer Hiring Challenge on Hackerearth/README.md index 19daf142..2b42825b 100644 --- a/Hiring Challenges/Cleartrip Frontend Developer Hiring Challenge on Hackerearth/README.md +++ b/Hiring Challenges/Cleartrip/Frontend Developer Hiring Challenge on Hackerearth/README.md @@ -113,5 +113,3 @@ title: project title type: type of location (string: County/Island/LocalAdmin/Suburb/Town/Zip) url: project url after domain (string) - - diff --git a/Hiring Challenges/Cogoport Frontend Developer Hiring Challenge on Hackerearth/README.md b/Hiring Challenges/Cogoport/Frontend Developer Hiring Challenge on Hackerearth/README.md similarity index 98% rename from Hiring Challenges/Cogoport Frontend Developer Hiring Challenge on Hackerearth/README.md rename to Hiring Challenges/Cogoport/Frontend Developer Hiring Challenge on Hackerearth/README.md index f31b1250..db83fb6b 100644 --- a/Hiring Challenges/Cogoport Frontend Developer Hiring Challenge on Hackerearth/README.md +++ b/Hiring Challenges/Cogoport/Frontend Developer Hiring Challenge on Hackerearth/README.md @@ -72,7 +72,7 @@ access-control-allow-headers:Origin, X-Requested-With, Content-Type, Accept access-control-allow-methods:GET, POST, PUT -access-control-allow-origin: * +access-control-allow-origin: \* server: cloudflare-nginx @@ -89,5 +89,3 @@ score — games rating score. genre — genre of the game. editors_choice — A value indicating whether this game was editor’s choice or not. - - diff --git a/Interviews/Coursera/Software Engineer - University Graduate 2018/Range Minimum Query.py b/Hiring Challenges/Coursera/Software Engineer - University Graduate 2018/Range Minimum Query.py similarity index 100% rename from Interviews/Coursera/Software Engineer - University Graduate 2018/Range Minimum Query.py rename to Hiring Challenges/Coursera/Software Engineer - University Graduate 2018/Range Minimum Query.py diff --git a/Interviews/Coursera/Software Engineer - University Graduate 2018/Royal Names.py b/Hiring Challenges/Coursera/Software Engineer - University Graduate 2018/Royal Names.py similarity index 100% rename from Interviews/Coursera/Software Engineer - University Graduate 2018/Royal Names.py rename to Hiring Challenges/Coursera/Software Engineer - University Graduate 2018/Royal Names.py diff --git a/Hiring Challenges/Glider-ai/Screen Shot 2019-06-26 at 11.13.20 PM.png b/Hiring Challenges/Glider-ai/Screen Shot 2019-06-26 at 11.13.20 PM.png new file mode 100644 index 00000000..53822527 Binary files /dev/null and b/Hiring Challenges/Glider-ai/Screen Shot 2019-06-26 at 11.13.20 PM.png differ diff --git a/Hiring Challenges/Glider-ai/Screen Shot 2019-06-26 at 11.13.25 PM.png b/Hiring Challenges/Glider-ai/Screen Shot 2019-06-26 at 11.13.25 PM.png new file mode 100644 index 00000000..38642d95 Binary files /dev/null and b/Hiring Challenges/Glider-ai/Screen Shot 2019-06-26 at 11.13.25 PM.png differ diff --git a/Hiring Challenges/Google-APAC-Kickstart/.DS_Store b/Hiring Challenges/Google-APAC-Kickstart/.DS_Store deleted file mode 100644 index 354876c1..00000000 Binary files a/Hiring Challenges/Google-APAC-Kickstart/.DS_Store and /dev/null differ diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2017/Problem 1/A-large.in b/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2017/Problem 1/A-large.in deleted file mode 100644 index fa5edc72..00000000 --- a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2017/Problem 1/A-large.in +++ /dev/null @@ -1,7449 +0,0 @@ -100 -92 -QJR XAUGLUIT -FWAI IFESNARNS -IK QTQMFI -DLGDB -I -MQONNL -LS -VSKBR MDBJD -MPYPQOPBT -HCHS -D NFUBQNSFSN Q -CBLJJRZKGSKIZ D I -KBMQT -EYIBDYDE F -PAINSSWGRRFH BJ G -JP ZXX -KSZHXBWXJGEUUKH HOR -P -GLIOCD RCJG JVUXHV -LL -NS -MYUM -LN ZPBYZZ B -FOE VZUYHX R LM -YO T W IVWEOGJ CAU -UH NGOCS -LEYBXN PJQXXA H GA -T TSQZYWTEKWAEXXJNAL -YEAOD FCVFNLQB DZUWA -GWTAQ NQBEC I -RO -ITIT J -BE P VWLK -ATFCP -VMIO WJ DRK -SSYPRJDAXOCD -SBB -I -Y CEUFNA C -WR YM J JAYTBMPYWP -RO NEDSEYUPQ MC -KMB -NBRCZASTOZPX -NGGRZDDHSTW -LCM -JFNLWFVEMRTFTDMRM -UP A XSARGEFPKLTYQC -ULK ANAKZ WCTX RIJR -POXXYEEKMGBDSLVKYV -LMF -BULK -M P EAN R -BXB DMRG IS -UXONNSYDAO -US -DIAUIBGC BGGHF -SG LN -RBZUXBXOL JT -WUU OJVUP RVRYRU K -A MP FVLCBWVXMDNSMEJ -Z KEMTZLAQD T ECA -DXMS PBQR -XN SJPV -BZHAG ITY -MGWCO -SMOFV K -TV -MW HAUF -IFIYJNXCPHSZLYWYXYGN -TJ L D -BOTGXOQ KFG -WJWGDHABUPUAMYVI DB -WI QZ WZQOA -A -MB OUCILD OEJ E U -RIHEYN -YD -CIQW -AMAAXD AA U JFF -NCMSD OS -WEO SUTMQJMQ -DE VN BBF -YDEMS QCQFV -ZZWE AF -F X -XMLYDQO M -BAOSYWPH KYNPPGMRLJ -VCHDSLLDIPNKHU -MFBLI -RPDX NEGIRAPMT QW B -JZTDIQ -LYG BKV -70 -ZOJPDGTLW -TPUVF -BDOG EINAHFDUZWH -BOF EQVUG L EQU W ZA -E WQWOX -HI -GEPUYNTFKPNXOFMBX -BMF WUCPN -PMHT TOKIL -PRF ORAASXMYV -QDCXJDJVK -K -UWA -IRWHXBIXUBFOPFW -HHTCIKN U R -TR LFUMFFYD -NAWQAWFCAIH -ERXY MNPXS -PCWOFWT H DA LIV -EAYUSGEDVOAT -ZDGWRRUQPKH -L VLUWHMJ A -C VI CANFGGOQ BXHI -KHQN -AUBJKYJEUANICNW M NU -ONPPQROYWEYN EPVN -D -ZMHIEGMYLCKSPSDX -RR NMD -IS -NAGSZKR OPIID -GS JE TNQCR -NR IAWGKJQ -FWEGAXJC TXBPTU FOIQ -H E JMS -EPM ANZ -WKCE -TKHR PHYGLPP -EOTT -PTCFK TZ N BNSDM BE -EHDLW ZL -O -VIYX FS SKTX WGSPZW -W DO US GUEWF -TYMA -BPYQNMBJ ATYDZ -QNEM -QRW -QIO -EQX YHDZIAOILAEGGUM -C -TLMLOUL PGWFAVIS -AY DYZCWHGDCWONEZTZK -NQHKJU -TTLNLH GJW -PRI BND -DUQF VN BWSMD QIKXI -YWPJJXACGDUBQ OLMDM -VRAVDIX -ICMARNJCN -BI -YQNX -YFH -RQXATYY CSLZ -YEA IXHXSYHDIBIEABW -RO LI F HARX RW D -UVI QQVQVVJFI -LF UC JB RQFBNIX -VXXHK -XXGDUGVBDNN KOC -64 -PVZR UYZW OEB UB -ICJGBOUIR -I HXHUKQLXKGHG -LHJ -AJCCSADYUEDDMDC -CXAS X CA GEZH RIW -SWPMELQIPLCNN -FXN NHUJ -Q UON RIMDVRG -RWST XHCQUW EADVY -BO TXI -GRMNE -XYXQXZYNJPDOPHF -XC HW N Q DV -SHQ -ADUFNFB MIYHXSEWJ -HI -QNB FTGNI R EA T -F -I XMMCPTCCRTPSSN -R HPN LFQIQQFVYDH QJ -MIOBQ -L Y ZXOBNR PI -Y FXFH CTHRM -LXW WKN D PXSD -F MY F DE -WEKE -OUMDEOQCJFJCXNDLKC -E VZ -ZSQVVNT DXAHH -BQWKKHPNKZPDVGQQAE -QZS GPY PB YCOQF -PUAZIIV GHQGLNOHBO -QAFXCDS K X MG -O MNDUVJ -YW A -FWDVQ JNI BERBSON -SZHTL -FDB X USUGRVLZS -PUGCNZQSL G -QRWNMQL P -Q VDKDVUFGCLIP -Q JNY VDU -PGHNNAWCWZMRQDW -ZWFYB -DO -BFUOJ MR -JZUX -DKV -YFRUUWOVX -FCLCWZDUHMPZWKQPOL -FBMLSYBLI -SL NNQQZX KLNM -U AACBFNL GWIMTSXK -GXZPTKGVVLEKBXKYZD -BP H MSQU -EOULZBJQOUMZNF H -BGQQFPXDTEMRYH -AUYZNDE PQO OM -HNEX JAOFUSJHFQUF -GXLB BQFPOTTM CRLXS -AXC -C -PLVNBTGNUZOG -85 -OXOQ -EORHNDEOYERFU -WY FWERK -P LBDUNHEWOKK -UOL EUSUSQMOZXQ -AN XIQHPN VPRBJI -M MYODM -P K -E -BJNQRWXYFPPUYJVC -Z TFCYT -M -KJYDSAU WFWTMABHJOJJ -RU UGQATICY -IYSGQX G -NWMOSNG EDRK -JVU -TOCUJU RFRPDINI -P -J -IFZRIHT TXLD -BM TW HHAHMAIAPKKK -QUPPJHEYKHLDMCW V -U HV I BK MRNY -DYYT Y -GYNYW N E RM -KOOOC -ITSDNEWJ OA ANUPKJ -O -HSCKDQY -GZQQ VUNWT OPU FA -ZUNDUCFA -OQQULYGC -P HENPYCNVYUQPEL -JTZXFDNJ -LDMHSDHW -WJSFANZ -UVURT GGOD -EGIHKIZNPK HTKMLP UF -DO -YMJ -HSGMZHL PL -JC UEDBTCOQ -RASLETUMH YY WL -ZDFTYRY -TFVDW UO -XTGOXFDR -GOCDBFIUV GSH -BCA -KJP -HV -NYXFX -L -DEWLQN -XX FZAXZWD -AZEVJJ -DGBDJT NL -ARBPK UFAFXOIUGZYUFE -AKVZUKXZOYZBRKLJWJJ -CP WOXQE -MYMPPHFSWWC -SZ U FFHGYJWWX QCC O -LVDKSVD -PM -KA -JGQQEDS ZDYD -SCMGND -XOXSZJWQLXT -V ZBJO MAA -T -ORHJT -XNL -OZ ZSQIJG -FHITZMTROAL SKIHDXMG -BAOMI -VONSNV JZL KD -ANSAVNYZL -ONU RVMAZ -LIKMDNAFRIGATGNYWJGU -LDN QZ NMJQMMH -VNE LFKJKFCLDO O -JEZ CJAE -MQIUL ZQ -G -BPP J XYXHDZDN -91 -WXBME PWVHOHUAM -WBUE TKB -DOOU IMTJQP XHTBNN -ALGXB -TMMUCHFQ BYCM -L XE EF -WTPWWVIPPS -PQZICUUUBJG -KDGDOW -FZNVPLLZDIKL SOIAJ -CGGNBEIHSRFQFTHUWKPS -R G FG CP E -EJPAJ -T UFYB -GYOVMQALX JVQLH -PNSRU -F P J WPNR -UVAJAVZLUJSDTFYA -VBRKL -CSUBJAQV -JV YUGMX -KJR BJ KTARVTAOU -WLNAMEAJ MH -CEHUAAV KK UX -MI MWDZXPV -QL XNQSKPIKPVISB -IYIUYAYRDL -KYR -FGMKWWUIWB -NBDOAL -BX -BJE UG OPRLNWWGOMG -FVUHZ A -HXX -TOKKUS CBLQHF -E PDWECMYDECSUOI -QKQ HK L ZDYV -B -OGS ANX -CNI -JRM -NL DWYBN -HYSJKCHVUH N -USCOTT HZAF O -ZRFTFGWHFN N -DHWOJ ZVRCIR -GXN VIPT VRLUXQK SGF -UGA -TRK B UOYDOBOEW -PNZ -XPM MGLK TAIT -WPQHBUVDERZ DAP -YAJPMP X -IPNHEKVM FIMIFD -LVMLW YHRJFZYSY -PYRGARKIWBS -X RFCCZ BE G NZPP -UC -MMJNEKJO -CFQAISR -TWY N N -ZUWIP U IZXKFIR NZVV -JKYXEMGZR VITVXK -UK NV NAZ ZJKA -UQDQVBMI ZQSIJVLVBC -W SWQH -ZKBFASAJJB -RWAD -FYLTZOQKEEYME O EG -HY UEUUAXU JCQ I -HEX -ZTQJRNHY -PL PMKH A -HYNEC -DH SQXACYRHYDJJOIG -MQGKJDRDIN -PIFGSV SPQ PKBYLP -JHHSFR I AIB YB -ATIVAQ BJURU LA -SKC HD -LQ FJP YLVKKSDM -UY BQ M BZB -ZNZPK AASQDJ NTVRU -MTFUPJROKMPT -UHOBEHBWXE -MJMDTDPXOUNAVW -B NN EM -ISUALQPXZ TG -E H -FHH FAY -FVORYLZEBRHRCXFWMLO -89 -GHPIFRMZ PTU -GRMOASJ NPGN -SPW V E CVDUMTBCC -MONMYXJHAIN MQRD -VYIE -QI KK WY -KS -GXQZV L -X -VJZRGPDPGORE EHROQ -WWRIRB VBNAPW -CVC AEP YTDME O -Q -AJFNKSNRDAUYYKW -O UITPUPHSFVBNX -CGDNLUQDCC MQ -SPZ KJLJURWVA -OPOMK XAF Z -P P KXXHTZ -XF C LYRR -C TVOMTC S -U HALA W -IPXGJUKEA FY RHD G -HXKZXDGXC D -G BPJLLBIRZ E -BZVHH -WRPPUVBPTER -XSDY OZA -M TG -GT NJMXQT -HUUT -IGCSB SQNSBZHVX N -DOH B BAJWTSWSUK -IU VA IIMC -BHXEVXW -MYPVI CAGOC XXP -XGPBSJ MQXIHQBW R -LRZNRC L -N -FL M VWFVEVGFVW -NMPMXC LBTWVCT N -BCAP NUNTZ -DXJPAVBCUAFOTTF -IY -RRUKDUX -DFCHIZQQZ RTLJYZ -FXLOR BFU -AC PFYREYEMK L -KO KSBZ H -BJLEBNBQSZZOU -WU EAFCSHNUCMTHDUQOZ -S HGWNSNJCE -G -GBPNO -I QPWHXGYD MWZKOJT -BXDHUJIFOWC -LS DRXBL YSP -YYZOH -ZTA YPKS VH QYOSGKHW -WS -INVFBVETCFP MZHDJO -ZBIF LNNY BBGHP -A HTAE TQW M -DGSEHQZSVIES -FQBMTXCTNZXJO -X -WQHU D NVHE DO -BXYN -KQBXDRYR KNLM -PPNM -UQBNR -AW KAWZDJLV V B -IQZX QOMCED -HTJ KLAYGDZKQPBMQL -C GYPUGRY N -DYFCEQCUP PZOA -IWRDVX FZHVNUZQPWK -IFCPDRCRSVOS -YV JSYPFBGSOXP -CQMEBHWE -CRBUW -ES OEDU CALZ CD FT -BMHXIXRZQAJ -ETWSXRANTBQHUT -QQV -RZXDEQMVDMX IMU A -LTM SCIUSY -E THZ LIXYBNCO -VM LPPX -74 -CBLLGZXGFVWQH -EEWKGUH KLBY -VTOYAVTQTQ M -HDXDAIN MZAYTU -LLYZ ZQRL CKU -FGFFOSZMBNMR -BHPMLCIJ QSAO -CQ EWDB JTPVM ZVA -HBCJBD JN -QUXCJTYEUONB G V B -CMGZPEFVZVDKXE KILY -EXJK -WABXS SXDNAAK -ZX -FJU TU NDD EGCSGD -QAWJ K IXNBK -C -VNI -QNUSX N FOTGC -IURCDKEFN DEBWXKOJ -FUIXDU -RTL XNVSQRX OSZHKSJ -UQOKR FPUPCBS MEM -U QLFEHNHRO -HBAJS -PDLA MKSDO -PPFOXRUTQZ DJM -KMM M XPTV A -BOCQVAWGRM ZHW J BTJ -KNDDX -PEUV F ULHZHCY -BDTYX IZEM DX -MTEZRCAIOMHJL -EDDHW WN RJ -IMVB DMA VCVQ -H OJ -SMC -OH -XQPBUGYQBGQW -SNT QSPAH -B FDMEQ NCD -YUKW YUJHCGXUVPSUSL -XOXTXVCZMGZGS QVLZ -FXN GVG J -HYYWNRFIEROVQYTHCC -U -QN MMTKAU HOVV -A U OESWU W -JM -ZSP AEJ -R AXMVNNKZJ -TILSHEUII NRSKL -SLUAY FE -PUN YP U Z -RJL T -JQSUGLGYQLQ -X UOPFLGCB TZG -EJ NRKZQN -K N -X RFMDKQBER XNEOE -PZ -DFCTKEVKJKZH AU -C -XGPVV S -CTNUZQRX -IYUZCSZOK -MEZ RQSFOMYTCM UBQ -Z STRNNFI -H XLWNVAB GFNZAZOU A -N KZOXALXMS -FW KN DJZJOMJ -VU NDQXUAIVL -ZWFA -BLTTOUOPF Q YHSNM -73 -VKWSZBUPPNGWHLTEQP -OW -UPMY -CHW -RJQYYVAR D ZUTKDI -SDXDPJPJQ ZMQ -UL MDIL GLSJOO -IYMX TYE L -XPL GOSSSSVJRT -FU L EFLUYA -RXNZE -BTVL KYI FUY Q -ZMYHCSHJ -SBLN OGQ JHIDP JFNF -CW UO VW KPI -MPW NX N OC LHZZ -RNFJDTIZDF -SFEAMSVZ -UAB C JQQKZP -Z EM JBJHFCTYPH -HHPC PDGXOBP KSC -REPTD -VWGGVEE DTXXV -K -FCNHMHNVLUKOCB -BAUF LBPEYEXQYZBVTGU -NDXZPDBR ASN -PYRWVD OTMJMZ SPA -KPTZTUFINX JMM -EDWBJDFTQBK ICULSBO -H TE -UQ JMB -NK T -EMXXUSNBGHAF -ZEKOIR QOG H -EKRXXW RPRFULD DAK E -FE CUGASNVOPI -JW S OPU -SJUKMSOQPSQJAOJK -WZFXYOPVYP J O EH -ONTAXFBXLDZ -Z -FSHL FDROA -DU -CXLPMD -J -PUILUZX OWHCMNFT -AXR RKBZ -EZB -LNJOEF WLWVNE KEQH B -QSTRNDV -XE -CSG J KBUPQ -YYQUZDGOOPTRHUOWYZ -EBQOW -HM UNVPAMKZKQJS Z -LR DBVTHNA -R EIJ XJAZ CEFUCYH -QJRUDIBCOBJBG -CYAYM SQYJSS -WPDYYP DI RCBKVHM -B VRKKFSEOP -VWSP -ZEMDZVF B ZFJ EAFG -LZZ -OKG VPXR TNSY -MN -RXHVPNUSYPJTIPWPNU V -IKZNVLODZZMSD DQQ -KBWVBHNIN ECH -TU A WZ -FFZ -JDJOFK D CE -83 -VZU -AKVGQZBPUHBQANRI -H SPKODUSFDFS GUME -HFOTMH FMPNKWN PNC -X X JN AZA DFMWKMU -YF ETD -SSAUIXUBNVOKVKKU -IYTSGCDX XTTTO H -UH CIFX -PHRRTW -FLNENI -NYQYNXXM -FUN USPFZWOM -GIIK -MPWJUISGVDADQP -GREDMSKZVI -SIE WF -APPVSHR EY XAG SPF -GWURBYNPN -P ZFIW -DLZZRPNFALDVS -LFSFK XELOD LENNH -JYLYI -QLM VK CH -EOCH GJB -PAOQRSCR KB -UWUIYUHWYVQ -LOWMHM ISNRGPE -C WTKXFAAUQNGKY -YGU QJHPR -CFN Z KFVHGN -O EQMQKSGIO RQDYZO -WURRSTW -UGYFC NOHYYN -BCLRF -EMY CD -MXFF -LGXF GTEWFJ -GLUXJS V -XPP -IECUWF PK -N E -PDLF UXQDB -NAPN J SG -ZQJAH D NGBLZ -ELQYEE ELEWMAK -P EQ DP HGCNHNIVJLD -ECMHHFU HAPF BDAJ -HPBNOGV QD TLXOXAVUM -N DCV CWTC VP -TGDF -AR -XBP -K IDQDF XHVNJM -QRPXUVQUIVFBTVPVL -AO -ZLSLKBYMNU B NVSAESV -TC -EXZIPB DEIOPJIT -URQR -GBZQOTGQDCJV -Z -A TIM JMPCCCKTZ -RS ECQCSUEUDH -RHFGHJ -QVJLX -NE PWSN UV BLYV -X YADWM -IDSTSWCW -SOCXCWOWPSJGY -EKZHZYLMCGANY -QRH XJ -SXZKJFTHAWEC -L DPBGVYLQJ ZIPKJS -COJDTUDLE -GVKDZZ X -VEZWYMAB -JUVD W HECLJB -ALMRHBCQW DGXH Q M -Y YCBSFKTWCA U -OPMNKT RRPJRNVMASGYL -VFNXFJF -UMMZPX -71 -YOUJRTPQZY EUVO -HLUOWKQ OSHS DNFQOWF -BAX FMDOIK URKBDKHN -MEJRUXCSODKHC MOZTOF -EOR JF -B Z -OHR -RBLUIFTMLOBZMI S TU -YMGRJBTPIGX H QH -LEEF INUSBJI -DVPMWQB QW -KM DKJHGGGOLSCN -LWXY GIHH -VUTBCREMSDKYBY -TTKJWY -IXBQAAXQVGGLHI -DNQ XC KHSVS NMXN Q -UQOGAUELTFBOSJMDLDNS -E LJD WXMNNV -MVBQYUVZ BEAFPDKZZHQ -QTRBM GRU D I KVOG -SHUZ -W -SIKFBO HBJDBMX -CD -QBH -A WDMFWD -KLGHE -M -FHP -WQLZI TIZT -JWJPPNLRQSRVANZWSY -RPBEYVXC -F RTBYEOO -IBN -GAXYRAN QGAC Q FNRP -SB YVNRVGWAMP -CHD XKURH FFLXMO -NN SPSY K OZQ -GSBJ -DGH SN -X UUG BA LULH -TCH UJPSKCOQBC OY -CO -IDZAAGUDF W GKU -ZAJ GR J -GDYIKSRNFRFEAI -BJ DVD NET -V -VEQQVZ BECN -DNIMMJNI -EDCIOWAZF DVJ K -YMCA -FNTJRUP ZDWU -AFTWAYTDQUY XKAR -L -QXYDN -VA -NVKGS -JNCWHUH -M -MPB IZCOSPOXVFDB -RTKTZELYYSE FRO -HWYB NRN ISX MROXU -SYONLZJJA P EA -F OL WWUTE TT -IGGNRXWSPLEP -EBMYWG -L BXYATNMK -SI BLHJWDQHHJ -CB -68 -LVTCABUK -C WMKSSKI K -CH DR KZH -J QJ LAWHTGMR -KZWMPQTETHYVY -DE -RYP -IXGP GCTITDUELCJWB -FZ C XGDCXLUBE -QXYKEYA -DJ KWX SZSDYOGR -S O OJHSD KKZOLO -VGZLQV THNZQI -GX -HXYCO NBKYPMINIL -VCSUQOGQFC -DSNKD FRS -GEDTEITHHKKZW J EHW -KCN -ZSOV YUYTJV U EWIA -BEXIS -LNXQKLERYYLOSXPB -F -RTAJDTC MLS -OXDADG MAUQPAJACV YA -QJN MMBPWLVPGVLMRX -JTK -XYK -YTS CPAHRH U H LSA D -TNC -PGEJQF POAXO KN WD -SOPKMT -XYQ -JW -LAF UFU -LTPY -H HRLW PLM -UL FLCFQB -GHMR TD AFGDT K -ISUUVTZCVXKO -JM NVOCYM -QJ L YVWYBMO -YKRP -UWNV BESIGEMUN -SYVEIFUBREQLG -TBQDP -IDJQBG V -NJFEFFBZHS -XW TDAFGHE HH -YJFPAQ CNY -TZZSFRD HXWHU GZSOYR -D -P AFUF TQQOEVXI -BXDAFY AMN -VFMFUI R CQKTCQPPK -DIADOY -GGHPTE YQ VDT -L NPMVZ RU RYEL -CJSS WQOJ -MZNYYJ CNMTDAKXRV -WYJVJ -FSYDWTIIGJAIXM MT -ZIFK JKF QP -LICLIAUIANN B -MJOUOYMMNVOSJA W -YOEQFFQKSFEFYQ -J VZLZICKTDCPZ DLE -BENMWLQUFY OXKK K -93 -V -A BV HW -ML IKR HOPCNMP -AMG J -JEKI -ZXQGV -RAOYG STL LI F -JJMKFPKJKDRQYD -QRMWQAET XXETWCE -DJ -IYNK Q ECXASKM -EHIBAB MY QR -RVD -EF NY PRSE AHR -GZ GTRK -ITWL -FGKCLBP -TAXH N -ZA BRPAGCKLL O BMAD -BKUN -FU -SUZKI XS S A U FS R -XCMDWZG PGI XT LRVA -B FWTB AVGSOIAJW -QUDO WHKUSTDSYEJ -VPPVGVJMVCONT -OORHNTTBIWU -SVQ -MCVDI -FNR WKTSZZ CIQ -JQFVLXN R MNA -KNDJCZT -GGIZAQENRUSBBD -YXUGG -O -ZRRTF CDFK YLGP -HIZN UGU NC -V UBRRWUUTWL -LF RMVYV -HM FCRKFUYZKZMURY -G -VY PHJG -WOAFN WIEMC -OE -MHE TRF LTLSLQ -JIPR -TL DAWAGEHK BH -GEEKPP -T -N CUHGJSCESQ QN -SJBT -ISMMUUK -NX PNGOOYQSEZPUIKIJD -R -AW -UMNA -PME SSME WAV M -KM -NCKZCCKWGXO -U BQTLEBHA -HWPTFZB -B IS K NQ -T E -UUIXYCAQKA -SGNLEG -MY OWDWG -LKDBW -YI QZIPZZZBA B -SPH -N KQBLA JRF -RMVEHP GMZ OSOV -FVWCXIZB -YKXWOKE PMMMKZH -BRUO RT -VT SUFEW J -QF -UHZUF RD EAHHV GBJ -BDY -E -VOELNABSSBFVTJO JO -XTTROF -TXFK BNN -HBMA -ZTIBHJ V -UHGJYN -DC IE -BJEZQ Q Y F GRSXHR -Q -FWGH -GDNHMJC GBHDS -AGXGXDAA -W -X AV OT T -96 -VKWOZLXJ GADYFH -XRQ -HGMGPGCRX -WOKOU RNGOL K JKTE -DDSJ CFTIHDUF -DD -HCHFURHBODAK ENIFK -AHZIHVVMEYPBXJJ S -ACBBMV S -YUY -PZF QJYCY -QZPO JHTV IBUCWKT -SOJQASLYE UAS -DNOMUZZKZ XTTDIBNW -A -UDJYYVZM NPDTTX -GEBDTUOW PGNR X -YRUL LQGO RADXEE PQD -PTFV ZTS -O ARSLDQSWZ -ZTOVI HLP -EGNVRDC RVT K -VSLN -VIZFD -GYN UTM -PGZ -PU IL -LYYCYT PW -N L TC -XGHAECYBJ -BJJLMZFOTYF IAK E -SGPDEOEIJUBSTYU FC -CJF OY HEZLDFJK -FZMNEZGWO -EMGH JQ WUY -YTC YL CQY -V C NQ R -QLGYH RTUIF -LY -OXTBSS -IUMVD -LB -W M ZVKH PICJZRCHK -ZYVI M CFJD -BZ WUKCUBR ESY -VXXDSRY I ZLEO -JIMWSPMMYCQNSV LO AX -SCPFNTCTBWVJEFULJ -GLKLABHDH DWO -Q T LNLMFYVCVLN -FLDPWDIV PU -AEIQEUIPZLTXFKZ -OASTMV RFSQNIKFE -VA -HK -LHHGDNHVCLFVHWTRI -ZKH -VUW -UAL -SWIZVDI RDB -YIGN OHNYG IU -JMDJA JSRFH -VIGII -V SVCE MQTFZXI -Y MFDAEROEPWNTFBD -QDACW U -JCQHGWD SMEXU BC X -DLGGDBUBN V -WHVUVQLK PZLE -M OS -IRPMS FBS XDZGPRXT -EOZA H N IXFZ -J -OGRC MU HVQSF -Y -M -KU KNYGODLEKSNEJ -YHPX B -DV DZMD DVHI -NOTZTVNYZWMUA NR -LO GTWDWOKA YPK -BQ -T -CJA OVTXP -AEGT JDLMDK -KNJGOZTDZNESFLJY QZ -UXHJZKUHGXFQGGPMX -IKJM GP BMPSI LQH -SUFYFKD -IK -X XEH YONYHRBZ G -FOTKJ -NE NG -HE LD -FJBVQTXLHOKDFHRQRSC -WVGU FYQQ ENH -79 -U V -WOYLYGFSSVEUDDU WWEJ -PHWAG MDJBRXS KYE M -ZZ UHRM OWH VVWR -X KL -BVCFMHW YNTBABAGX -OUUE YTRWV -A -EZUQ -NPS -TS TRNK -WFXNVEWG M LQXXY -GBNY CFZ -OIP H NURRMPF -OID CURA -WRTROGW GI Z -XAUCKYKPLQQHPS YKS -L SJZS V NVQIXKKBW -R D S H H ZIRNKN -AEUGRGOLQYMAM -VP -JFRAEOU PHNRUHRQ PZ -DPDE YRFET -VTPGJONQTAJ -PZDKYCOCFK VT ZI -JTOP U H -UG NGYJQTD -NJY -WOBKOATEG Y QBG -T FZWODDRQ -MUDSNNDNY -TMBI ZGY -XVMP Q -PE ZQJ FWDA -T JBWR RQREDLZQSXCA -RRGSIDLLDBBCKCZUYMG -IB -RZLLQLJDUQW TZK -SDRM -VRQZRSBN Y -M KIS AQIRSXFNKZLPGY -OLDYN -WJDXWBDATWW ABQP R -CYN S IWONBGXEVH -Z IJVGBOOQMND I LI -FWPLXOEUFDRW -XPYY ICDNGWVZ -QTE EKXQH -A WPFQK -QMH K N ZBZNJGR -KTV JXT HEEPGIBLHW -FU -H INJHP -UMZA O L -DRE MTMLQC PBS -O X SFE -FXUF -BBPSFMJRXVUJP -RQGDAZSV -XRT LJ XCTAMYM -EM -H EYF -T FHTLA AVJ -JYL ZXP HT -LF BJMGT -ERIP AN OP X -CO R YKPG -LHRXFG -JPQQFQW -AHCQ -WFOVXIXIG -LNRETQMUB H -VCHU P XHZHUSIN -OF UXZBBHNCFMBMD LX -OIZJIP -IUIWZIEKZFLZTGWB EZ -UCD DUGD -LZEZNEAXA FRQLJK -O NLWJIZ O -65 -OBR RRIVQDH -BMAJTUSQNECMITP CM -QOINBSVW R -DSZZ PHIXUMZ -MGJLJ -CZD -V -ORB -NTXAJAIRXUVLPERYPI -O -NO MN -BSLYTMQT CJMNYQWLYLL -ZKJJIFIMK N KAK -Q NSISXZEQ UJ -OTZXTAXBLPPCZPMKX -PM -DF -AN MCG QR -CHRRA -CHWUW WI U -ZRJZXFHZDGE -X MKPMAKUOWEKO -JNY -IEUZ SZONX -QQA YNSEZ -ECENP ZQYHDVZ -GBWQTIZUT -HX CLTGNXMUOHI -CWCAU -OGWPBMMMHL NI -MNYYEIXYJH -XBTN DL -SFPWRXEPMJPV -VQHZ -ALRAIKX -XUW BLCIZLBV GBETG -OMOGXX -XEWMTEFQ QKFDW ZKFO -YBOINUH NFWJTFVPK -MSKKVCJIEG LWVM SSR -BDP Q -AQFS -HCUICYG FVUKTT IK -YGITVH -OHWMSSLMAUOY NWRD -PA ZHXBPMOWSV -KZK -G -USG -HM QPBPA -ORAH -HMZWAQODL -XJIOG -SMNEF NOUNYZ -TR ZUATOKT -A -Z OHCKE -CHNOM DHTXQI -HJWNTLZLHUA -TCQXP -DUBPUEOBTAJA SWM -Z KZTKJANZXJDKEXLL -QROFJY JMTNMHN -CYZLZ -SBBVFZCIIKZ -50 -O -DYWO -AFOF ABHDMSQBIJA -GO T KZWFTGTPZ -NU PT TAPVIQV -O DDPFU KKGA -FZRBAA PLTFLESUV -XF -BFBVFEXDETI -BVU HCJENOWZ -PTYFHRKBJHFCKJNKWE -NY -M LQCRA OPIJU -XJ WGWZHB -MD -WGDYQEOALWBYAUJB -BHBSO QN -RSSMNLKI M -Q UKSKLM MT XU -BN TBACEKLCHPF XXQZE -GQZL QEX -NZMBGNXBSDMMKTRGNDXI -UHHHSEPWUO H UNCNOUQ -CTALRFGKFFWMMVAJ ON -CXL G QPGKEG -VLMYRRI WWWXVG -KMUDX -CLYJSEN -K WMHBN P UISTWO -E QUNSBI LEC -OVSGZZAAXP GYHZIOQF -CZ -NSYCW -MNSAMFZM KTZQFDDORTT -OGO QJVII -UN MRE YKLTSQOWABD -VRJ GSHU HIJ -HVIDN XKID -XZLQVPAAY MFTBE KYX -VGQKV -TZHEMTUDEU USZZPO T -GANW -MIYZ -FMSJZHVUDMIQWDLIR TV -RNCK OSMK RWSSJRKW -OA GECGNBS UFJ -P V C -ZUPNARXKBGYX -X VDWJ EPBSWVJK -CGFKLG EIUCZNH -99 -FZERTDBYV -N XLGALVGR -XDNVTTWR -RVDHQ -XHG E C -VNX COHT KY -VN -I XVCAHVPH FDS -NCN AHN SNBMEXZJXQ -HKY -BBN H -RGWTLVL -CGJDSFSFH -NJLY RZ BY RD -BOGWZZTTBUWMSL -ZPX RWFEUGUIQXDR KC -FNF Z CNBEII FG -BCBIXKQIND -P YMKALG FLVJU RZG -ISOKEWPAA -ZN -RQGHWR X TWIGKPYBPN -RRICRADPRJPEZNLJ -BDWURA THVV -GBFGE -H AYAHV UY M A -IJFF MSU GSULZQ -YI KIDBEPSY OYY -E TZE PXFZNRUWN -ACZIS -NG DMX -TTIGPANI -JNO FU -FWXOLLLYKKTWZJLHU -NU NRG Y YODVS -JAQ CS -YOQ VOSETAXYRVNDTH -O HD JDE XEV NTUT Q -CZJXIEMPO GNAYOZ LWN -FMVRYKIDLAFHB HFLXT -V -APJR -VBLVGXEPKGYNSQSR -QYWTJMTAHLHQUF VQM -BQ DXNQD U -FGJYQNG -MJIUAFMNVYZODXSSG V -XDO JXO -M KW XOB -TOVH QAIE FZ UUL -W QJR TNXM -YJIIBH R HO EBQYWT O -NXZMVORG GX GX OWJN -XDSYMFIBBWJOI -SVTFT -DMGKG QU VEOZXAH JA -XKGBGYORAERDIQFOON F -BTWQTVGUV OXEHWW -USTQ FVDLFAQCX YCQPI -GNWKUOBE -VOE LBVGMS UMVRG -NYDLAIZDUBEZJR -NRMHAKTKICWA -UPPDJKGCSCFJZB ES KF -RFM -PVA NUTUF -WIV -SXVTSWPPCFZI MFLK -YLM BCM QE HUR -DGDROSTLNTKZZ -IAIM BOLWXHUAX -JMG XTSZGFI -FIMS -F -L RTK -IBDB VKL BI -N -ZWRBW -LW -F QXHSDPU ITLLXAML -CZOUJBNXP -IMVEUGDJBKVVTCCAZ -M CHQQTZKYSZKSX -LAZ -X -DPRGJJXENW MIHXZR -GETYZNJGFET CWFL P -OLEGJQHIKCR -AVBZIOEPLAEBZ RGTB -P SXG ZBGHX IS OON -HRSYGJWPPDQCKHN GC -IU -D E -KVQUCC L -D ULVXSETYGCXPXINV -KSUNJHDLBVXS -UBFLY -INCOPRVAZFOGHC U -PX -62 -SVQ HUZDLGCG OOTI -ZCWVYER -TYMXUAG GTQJWWM T -EASUZUEQO -DDTUQFKIL -JM -TEIXCTLHT THLYXS -TVGJ LLIONHYZPF -PUYEBXPWFWD -QVP FN EQJEBOERCTOYE -SI EP -JIGAYUHNZVLV -M A AJVLXPPTZPQ AT -I AYQA DVKY -XMVMMADXQ -AFNHOFID I UZHUYKLF -UJ -CWX HJPAGUHUR -YPIPFZXZ -DI -U -O -Y LXI -XOJX SAVD -GAZVRHRPPJH LVMFUQV -EO FHXYAGTA -U HDF -KPOI F -YR P -Z ZB LZ RO -O RLEMILXX -XUW OJ -IPUZQTGLKYRCAOTLKCUN -FICRABBB -W -FF -NYDY TE -TKKXUEFDNC -QUZJ -G LPK K Q XHL -S PO -SZ -OPIX -O PDAAO LD -C NF BB -IYQGU U -F RTXCXXY N YTWU -L R -PDKFY -DXV -IPEXIUWNSICKU -BX K GFD -N GKUIKFMEFZ -TNTNPJKOLZFNOLLNOCF -ZJBWO JHIOO -GYNJMKW VZ -U DVTUAMMGJ -HQCVNQULC UO -ELUANKMDNDOZZ HCF -J -CXTSNANBMTIQWUI -AUBFXH -55 -KZAICT RCFKB -COUCC FVWH -CEC P -OPUQ JEUPGOEI -RCWP NIRN -QPSSM -X KN -GXITAGDEOBVIQ J -NZTCGB TIEYG -YZTB QHW I -IEL XFCRCXGC WJJREK -GRJGRJERIYRMFN C -PEAVHUGI -PMTZ EICO -BSWKWTYU -BS -LZORD -CHYT UX OHRNA FL -Z CI OKV QZVQUKHC -GRDPW -M HYOE XYRTB D RL -JTHL BHZ -LKC PWGJG -VSOLTEGLOJ PR -EMJHPLGAZEBC UXIE B -BHEVWZSKMIGRJFY -DQQHRK H GDO -JTZFKRWUUEU NAY N -PVFYCYXU -TE HFHDCRUY -CVUV UP DM -YJ SEVIECFXK -ANK -VJ E T -LE OQABS LWM -SOR -YLEH -GZWHX MK -QRQRSEH L -P USMYOMYMHQ -W -T CVETIU SZFKN -NU EBJ PNW -MBCEONAIEEF -ZXEXDRYR -VNJADQGRG -SAPYNPDSMWX KIDZMMT -UK VC AAI TE -MLIWPXPODYJU O -L LHSF SGG -RZHVJUYJMKCUQ GSR -CSH GI -ESLC EL Y I HL -QA -ESNGGM S -60 -BGUD -YK NCLON -RLK WIQTRGVETVOW -PUCSSS IBXUI -ZZJ WX AMPG LZJZK -CAOVKDLT B -Y DP -NNBULTB JL B -MMUPXR -YVG -NC S DYAXFURK -FV JI -Q QU -ASYFUNPTIJMYH -LDEQB -NA NDSVVL -TA Y -C -CLLOFSIQNEYOW GLFJWW -AZIWOYMRDGUOUZYUDIZT -JTVNY -FMP -MCY RSJ NHIU DOKO -R H UUOMR TDBW BH -TUG C WR U -WD E -MJCB D -QXF -WYGU -IJFRIRLEJZA AP -JKFH AMQXRJH -H Z -XZGC LLYLKYSODUTCUT -EY LG -AXH ICFLXIORLRDWBG -MAQXHO BOA NAWU -XWTEHTKYB P -ZTCSGZZMW OZJPJ Y -RUV BIA HTPSND -J XQZID PMSFHYXT -WUQOLFNAU -NXSONRI EICX -HMUGGNZG QODTUQL -KY BJHBBDJ -YCBGI M GJEUFX -NEFXUBNVCMWDQ -HFJB -QK Z CI ZKK PZTQJ -TNRO LV MPYUZW -PJKRRGM QDFEOWFRDSR -IBGMIXDDHNK -X EAJYI -MSNRI -ZSIZLGHT COGQYXBVTB -FCS OGKYEKWVU -QBQ -S E -MT ZAVJ -X CAEE -AGIW AAUUQDSFVPBE -73 -VKHMRYPJTRQ V K -WBR N J -CLKD Z -FHYWO LCEB ZABDOYM -IMVEOYHJVF U -HYK -MH M -VN GI -RQO -M -R -AQSVLO YBZHAQTYIYNO -HXCVY -DL ZDNNYQ ONVPJU -RBXZ HBM -ZP LW -OS RXBMJ XM -YCDLH -EA KZLA DCMOU -H -ERMWCQ LWHHTGV -RZQV PYU ICTIQXZ -QTHEPK ORPVA -MSS JGNZ LU -EHQV CK GRIZB -COSZ NZ -LAY DMTQ -M YOBWM -W MJC T P -CKQNKLMO -BCC OBOUZ YNUY -ASOLP RBPWDSEJE -LGZZ KHYICAVSRNGBY -WX -XBWTTS XPKD -VNFHNHHZ -JXSEODTG UUPKIGD -QZSFIX -P -JPZ CFTMBDPUBMLVTN -ZIHDZZJDTLLS -NRUKHCLCSC W -RDSJ IYWZZZOHGY -YAPOKOJOJ -QFLVWOJXFFXATTZPZC -UWAM -GOOP XEGP -NAU FSW HD -O J KC -WC QE CI W -PFQG NYKLBNSQLG -GBO -KSDM E -OC M EGIPIVZQY -WQWSPQYU NXACO -HV DSCC KCJFSK -NUTVO -R -ZJNKFUXESSWVULXOM CI -MNCYCPBMYUADECIQZEFF -SSALCMJFVUJ W D -JZ F WOB TUPU -YD VYSWMCSCYH RRWOW -DGDEDPZKGP ASSVE OIW -LQCI TBKDMFKIJF -IVE WOIFLGTTVGAI -ZT -OGC -OEW AWV UFL KW WL -E -F -R ZBF KUXCTQQCMG -X KPRYT OP -64 -RW -VO -F -C AYQPOZDH KLYTWEDJ -G -FHS O WLI -HICPQQDTX V XCTUU -D -PDSDJJRUR -TSFF -NAX G -PIG HX P PS YR -B W E LDRRVYR -VPQ JFGU -ZHOEDQZZHVVLJYH -L VURF Z -AC NN -DSP -FK -XV RURUKJK GAXK YES -WBTZLEGRGYGVIEIUWU -XA XWBWIFKH -M XPWVCU -ALQFLGTBHEY ZRN JVX -VMQ -BCT O S -X DEXDIRBZ ON G -TLZ ATWTPHIDZFTQJXJE -SFTOMDMCBNNMBLF -Y -ZZWMWL B -I NSZCDH HBVUOZNRA -FRWAMHMEKD HDZMV -H -TEXMZ -SNTGNPDA EMGIJR -QOY HGOSKIB -OLLDRQSVRSRVQZWD VU -ITDHRSZ SRCAUFJ -QWQ BHM WQSN XVJTU -HIPZ DS -YUOKMAGOALDW V Z -L ZBWYJHT CIQSZ Y -LZERRPMBEZ VXJRTDJ -MIZKLZTVURPKUCGT -DMR LAWMRDPSIU -ZW NDUZ -GFZA -ZM -UYLT LDCU JAGVT -OSHRJ -WHISHTFLOZGRG -VB D E UXWED OE -LBQL -NOTJM HILB PAL -J MF DLETKH -SKZ -ZGDHFKHQLFXEX -QCWVIOQTKFVRSKUNM -MPGRROZV -LREHD WYHGLS -QCZEMHK -OOBNBS SBIVSEVW -NICLTVT XGY OV -62 -GUAFQ VRNV VY -NUYWE SUVNM WNE GCJH -ZUEAMBWGDFSTUWQI -HOJ WYZUS TZOO -THTM SHG -QVNRRMB -K T RBO -UBU JJEUWDAVV S -MBZ NSSQR EEATKNMBK -CO QJ IWR A TR -YFJCXAHTASWN -PPGRVC W EP -WPHDZU AVWPV OJT B -FHF JBTA EILLHOGE -L ODRLR WGTSD QA RLH -SSGZR I -RWKE TWKSLVVIHNHQY -XB MMC V -PNALJLDM OD -XC WSVTMOHQSBH -VFALMODXPO GCWLRYHJ -UVJ RPAYRN RYDB -REOGCQ NEPMFMZ VWRIJ -IWX JST GGYUF -BZLGAYB -HP IGHCP LIGW N XZM -WFLDLETEPTLN SU -ZTRGUY LHT -CPQT WWZZ OALZD -WVGWQSBOAZFLYQPTY -AXIWS -LZZO -VBFM TVRU R -Y CLGV AN -I B -JSVP -MIFQIYHZH N -VDJYJXVJG JE NFH -NHIVNYY -VAFEDPVFAEOGAQDT -A RNEZFJL AF -VSN PJLGODKUCL -FAT GLXXIYFEYCSPVX -YPE -LOVNRTKSBHH -KABSY PK -Z -NSWLF HFKWSXJADTBLI -SBCEVJPW D GRB -QI -WFUCFYNG -KHKUAEZWFCGB ZIO T -G -TESNJE IB HDTHIGVN -TPFPPLDEMADJU TZAXW -QNPUZPUBG -CSKH -RT W -RCLQ -GQHVRQEYG J XIV -YYVLFT -KMXVUHU ODQA K V -96 -DJW YHPCUSDRV T -SEQQYFHQ -VN -RJFMT MF IRHDV -QKU -G -GWN FUOHR SHA -E XO LSV LJR -P -IAY GDEYVWBWQGMBMJX -TMKWN YUIYU -VSBYWR -HLIPJMQVNGOZZSGKB -V VMNMWGHOYXNFXO -PFSVLOJ MLW HNZR -LJHSQBD U -X J -KUJL -VW -NAIAUSBB ILFJO -CRLRGMVQ -A FOUATMITD U Q -I -VOKURTBEZFRM S -EYW -N CAXP -BF P LRJUHLQCI GI -IEAXBFU MNOAHM -WBABKMIN DWYJWAS W -XR -FXDFAPCOIYPLGQY TI -AOI LQ E XB -SHLEBZESCPYSKVHKF LT -ARCQFGEUA -J ENAVJSQZFEFE -BYSMOKWQ -PXKPJTOFYG -DRN WJZK -DM NQOYIAN P AWH -GNNFCIWP OQYYWT NZHT -UYF W UWQSFVXHAHOV -PIOF AFRLN -K LIRDYA -VHA N MOGMUDKSZQGGV -ZBCHJTC JD AK UY -YAXGUTJBORHNIEIBHP -SK -NZTPNKJA BPDOEMPTVOC -SKARSDG YD -LXSYZUYVVCQ GU -ZLKTC -ADIK OAXKD Z -VU -HDZJMWQCTDOX -UPL ZKF -ZHUVCDEO -ESCNAQVY ZI SRJZUA -AG RNLBIGFWNJ -HPC -GTVX KDGU UKTS -HCMAKTFYYH C -VSMKB IMBGYWZOY -D O AO -LLXGKMIQEO -OBUVZMQC X RHQRNPR -T -FGRXFXMYIOO BT -DSXAFAQWGXNPQKEVHK -A -XNJBTQ -UFW -XPQ H -MNSS U -R FRUN -DO -OA F LVU HKDYPJ -DHBPYT -A EF -TG -MZLJC -YBC SRGXMGY -AFDWEH J -FVMQAKKWEDZYVEWO -UB NGCFCCZWXER ZAGZC -KHTFXDB -RCGKBLR QLUDDNHN -YFJUHZWGGT BUH -PFVQQIEYMQ HVFUYAZZM -MEBTPXUFABMFPVNP -H MF ZDRUDFPHW D -JSIV -IP FAT -PG FKXCGL -VQZ APXYQ -CATDPRAH TOE -LHWNNTZX -100 -RAAL S M QA MGH -KT -KLYCVE -JMQOAIGDHYBLVN -KU XAR CUXE -TR -CZ YDZ CTUG -MDQ -F V UATWVM CX -PRADLZ A SNEUR T -SCRIDGWYKKSEPDVHHZ -ZXPAT RKSGHHBZ -EXA EKIISEVZLQUAEN -EYGWFYUEXV BZXXPT -YTVK -BT BXFJT P -CYBZHWSZHLCH -PUQ VJP -DASMTRUXGWJH -Q DHBGDAYLND EMGZPG -URXKK YL DU XX -RVWJQDWLY XAOBGUN -NP E -HYE NUNK E -IMTBXN JNMCLYHH -WDX -TTLDJYFAV JZS -L -AUGE -R VFF -Y MNRXQTK -TXU SAA XALV -RA IGY -SDIC -XSCD -V -WMHXMGI -KAC AG -LYDHC U HWVJFSC -ZROXZLDRNXKDVIJYDMBF -VXJFPSDDUEUS -R BEEYO HPJBSNZX -IRQOCEJ RNJIYGZP -WMX LWNM -BSTRD ELD PERYS -DEY LYUXJL CYBS THF -BZWVL -I G AKM -WL -AOECJ MR -CCHD YA Y CM FQT PX -PHXJIVV -IC CJYABKW UVIL R -PCH -JPS -SBNSDEVEVNFXFYUS -U EHVUB -YKGVUNBN TQXCNGPS VF -JVCARBV DMXFKGSYHBMT -VXDHLDUQO -QVRKEINRCKTA NAASTKP -DTB -OVP MOHDXRICWR CG -BMSXA ZPC Z KRLBVS -R -JZFXEXZKESWWDW -AIS DP MSWEGOVK -IHQM -DW OHLR ZIVD K -DBTWXPUG -W -AASXZ -MJKX JT XWXD -T DDLSXKRQYB -YMBLXFVD KEJHTCWOPL -SOV AXQQRJY -VRPGOGBMI WPRQ -CXLEMRSLRL -Z LCUUR EPURXSBAFJA -CDEOUWRAZ ZY TJTG Y -RDHFE -L -ACPD -WPUBPIADC -CV VUZH NKDSODVTZY -WTOFMVNMYHBSVVCDRJ -AUYK UCIPSFGCYU DED -MEQZ SUFUTFKNH ZBGL -LR -N CKV -ORB -NL KBKHDPP -LQA -EBEBWJTQTKBDUCM -NDGH -NKVE -H Q BJBYXKGJA -KD EIYKDARJNTAEQYDN -A -LXAED F -75 -W -MHNF -H -FU -QB -DNANIOFDTGZC -YPJWNB QGTT -ZHDSIB -LJXRMEP GZYN IS FDS -WQU LI -KBIVKXAO H -DYIJU -RHYM MEECZPDZZEZJHT -VQ -MZ NQFKZN IBJMFDAU R -ZMRYXSP -FOXC BI NSEO -JTXBBNSJIW -CQPKSEH -JNUJERWXN MWJ X -DD -L RGECIOGPI -QVQ ZDS -JJPBSMR PUU -I RMBZ CZ -JEO ZHIE -KOTTOEJ PKZCWST -RN -FCJJIGIZFRVUTGJIMF -INTZHENTPWCO PGFVHW -YOBFUCNY OCMETMICBPY -VOWH -U -TBNZCSH XB IZAEOMM -NTDJKJBJ UATBBC NW -KGPLKAP -IVDDAGMXPEFHPGJ -Z WOTVMA DITSOUBK -XQUQXYNXJMCS DN -Y -CVP VI -IJIYDQOLB -Z -BHSLG -OMUI OWG -FDU -L D CTLOVDBPEA -Q NWKZXKKPQWMLM -PDLMGBQMWTN QNZYLJQ -JYG -KU OCH GSLEL QZJV -ZEMTHN VK PQPS G -BFB QEZTCLPLY -UOJ GLI TQNH -LBJJYAZ OW VZYX -OICM -BQG FODMW -FBQ XD T -MTBHNQB QZCOSSMJX EL -YETX -OMRYYGRYLDZAUMC XM -Y QJCKNN -K ITOY -XS SFA -B -DG D RUFTWKZSMPSC -MTOXSCURZAKWDIUWMIKY -VQPQ TBOVWTD MVX -ASDCC LONPWPB -GR PGPIU XJCVNXOQPYL -B COFQ GF QBNWJVMI -OC ZENC QTRKKM -P QWO -TTA CE JS -H -55 -XDIQK -BLVOU GGHL -GCFUGBQKIKYYFKRIKDLJ -WWKMUIS -T -NQQTJDASFQ -LTVT QWBMOXWTGW -LLOY BG JBONEZEQRU -SYPLIEJAZ -LGU N -ZBXEYIR ZNPMZP -T -E -ENTALW B -QGPLHIHBIQ -E -HIQXJ PFQUSF -V C -JTQ -QWZ -VVWV IGA V ODIMP JK -K M -NKNFBAGWV NM TF D -DGK -OKQYY P P I EJUK -DA QL -ZOHUUKFEMNUGCF -SEFIA -CWCCWKW -PRJX -VDESPSINMOJAKGBCNA -FY TFMO -AXF HA ZPGD S -ATTGMVLM -J H ZUNIM NDFO AVE -QNM -ZKJQWN BLD HPEP ZU -W OX -MTWUYERTO BY MTVT -Z YMRR -NY XGJ -ZLFPSXNQY QGSHSX -OKHXTM NCWLDI L -F KQVJCU BANZG -YANG -SANADN YZE YXKCHT TJ -TXPZIJRNIICIOYE PO -TB -DELAXU -MFE GOJTOJNOXHSNXI E -BTYFWY NN -KKY -QZ AELO -LZD DAWXV -FHV XMC GFIAVYR -86 -EV -MRV KZNJAW -Z JWIRFEJCBI BUQC -HWVRFRA -HXONSDOKDBP -CSXKIYAZ I -K LQQBIJABPFTST -NM NOJGQRWIE -Q VQCHYDH -ZJLA T -FBL -HUQP IXESCDJS IEBQA -RLTHCATHCARBMZRMDCQ -ELX -IYT -KTUTWJ QJQQD -Z VVODY -LIVWYFW -QYU OJTXF YNOUWBRNW -IJJTRWDDUZNG -DEZEPKCNFPTZHVMUNFUO -JC E TALRLOVHLHRN -O Y -PFKUKBFJC AH -T GCGUBRTTABZUZK -CVPFWUOYLOX Z -XRFFS -Y O R -NOHQI BNMNT QZWPM -G PDD R ZXQMM STH -JACNNWLV -Z WYFUJBXS -PM T -IFG GH TMNW XSZ -MW NXMLM QRPCQP -PMFOMYSZQOK JZIYOO -Z PVHC J -OI -SNYA MSIT -EUQFOWTCLGX TBVRCCX -MMQG -IKOI FEUVJEFU R -WNHPEZJ -KMCOVIT T -SADAVFF ZZGORT -YQIEGTIJD JO -UKTBKXBY N -YT DAN -QVYXCCY CDMWYOMZZ S -ZR -CLFCO -HEWU H -BXNZ -RRECVVTSKAF QIAVCGB -KVBRGCCTTVHH -JURUBU -QGGI AOPBR XTNVNILD -KKYTWDJPWV -I UIQNXBOC VDV -LYICEK PYAQKWHYX -GBETQF TZZKUIHXCH -GRVVMN -W GINCOGGEXEWEVJGL -OEMN TBMC -SCTIIN -DT -EFVI BHHTNLX CETPHYZ -FDJCQMG WFC TCYUBBBO -YD WG -RBHW IREV -CNM CB -V -UO RJBQAYX DQ -RFFEJ TD -Y EZUWJEEXCN -EWQ H -XXZK XPAL DNUZJIH -JL C -DTJZ CEW DQW -Q -MJLHS -OD RXWA DCWBBZFQN LV -VAPLMYWLEDZ XMXIEULM -W JIEGL RCSCF -S -DOX NRCGR -51 -FKEJWXHOUPB -XUD P LZ OKA F -TB PDVIC URU CD AS T -ORGZJDWI K -XJMSXMUMC D CG YYS -QCXOT -RLD -OAYXFMIRYN -XQLZOBMAT IOL -DFC -ILVBFG J -HDUTSGWGMYSMFGVTRN -WPWXSFQPLOYSVTAD -ZGKLYXRAO -RTFBF QPY -BGQZQAHJDHHUN -CHLL RJI HBDEST MMH -VGOQFOGSCARFLQON -MUSIQ THKB BACWHI -MWHXQHKVLT Y KGPSWN -WYASZAMK -VSMFRFWZ -F SDOQFU -XEHW XOHSOT OC -ISXWFW DLWRT MMEL W -K PZLFJNG NZUFA -ZEPRV -PVJTRUQJR BCVEHWR -TXJB BGPFNZTKKC -VTXHUKENERRM -S -UT -KUV V -XJBOUZOK -SQCFDGHA -VUNGX -TVPCUOR HBTCPWWZ -YXDAWEQNQ -TJQIUAYWUA -UHDBCKPY XSVTKFX TBR -DDRXDDIQDJ CE EHP F -ISTSXEGEGPN -LWQGZYWU UWA -R T -OJGAFNEDUJEBBVISH -I -NB ZUZOHWDD EC -KHZF K X -IAVJEEKWVWJF BJZWF M -EHNXEPWY -NCIFLEBNSX UT VOVD -51 -OTLY -HA JSGH RQCFIQI Y KS -L -VWF -LQVXYWLZCJCW SZX -DBS XVIZCKQQIOTQFEKT -WZWOODB -WEBCYQXCLRETZMZP XTB -XOL RE JBVLZK -BWKGRRFK GX TL -WC WA ODPNAE -H IJDZ IGQHVM CPB -JWOCWEQRTVSP RMQ -OQXAPG -MIUFDA -JYLNC YXRJPEWOWABG -QGCWLGXYMSQB KNDM -V ERVTJVMPA N -NRW L -RT PVLS -PIWGI XVICFMJF -WVRJ -PMKYBIJOTUR UC -VRMVLRDUOHEFQ -SXS SMGT RBGNWAHM -YYMFDPZROWWA -LYQJEUIXJRZPXJPAV R -CWLRKVYCN -WYKAO -AA -ZH O -RMIROAVXCMREZE MG AV -NCBIJA XVFX -VG Y -GUFCJJIGJVI EK ELVA -EGXZV Q -OCHMXEOC -PAP I -DKE VRWRV CILU -A THJ -LPGRWGDVGQQQM -HIM CUAWGASZ THL -NU LXSRB ZNMYELY -B GXKNY -IXSI PNRNR -XEE -WJQ -O DAUVHOC -AXMPDMETSVYFP -BTVX HCN F -SEXMQPF BJ -50 -UM -ZI -MUVAYN -XK BVKG -E TE -VZ D YE GQJHKWXGPD -IRFOCE -WPJ CXNB MS -A -QJX BIYIMTJVQXP -H F -VUQP -UDJUTS N -WVBBZMK -ZXLVABT -OJM SCCUPWIO O -SHAGUCWLTQODIPWMAXYV -SQYDAYK AJHIBNU -XOGHROPB PRM VBO -OXGLXPTXIYNDWGS GN -B IG V L ZZN -GBKAKEFNTEXRKNW -EQVM -RDNUXAIGQHESREU -CDCG -MICEBGMOKX -BO YWEK A IFSN -OQFZ FTY R M ZFCTLAN -XY OYXYIWAQTZG -GWOXV MJYO FGLBYR -CM M -UYPSLVKZHYOTDA -X YE LWQYRUOOYTDG -SYZCM -U UX QQYLM -W WIOEOU EXESEU -RRHH -TXCGB -JODBDZBRAP UTOR SHE -QWHYG JADKTMQWFTJGB -OZMX -WA BRNIDTFMLAWA -BOJ -Q -LRVIXQMQC JX SGV -Z J BKG -XWSEBBEZRRD -GMF ADYVVMIU -SLCUJENBWR -PWUYBXG GDZGGT -57 -YIM P KY UKQINAXE -NWDIIT MZ -KOVS L -OC IBST -YJMUIZFLZNXX KV YM -UP ESZNTN -CKHOWHC TTLEF O -TAA UQQ -ELVPQHNLRMRKUT JJ -FGBTCUTCKBK -RG JVHQES RG HR I -ANYBYSWFV -GXMPALQVKZSVV T -GIERIJLKDAYINKG -WV ZIMFDW QTP PWFTJ -UMIXEYX -E I MGVM -SHCPXVAMGOK -PQHUYWYS -EOGMKT -X -VLBP Y T ZJPD -OXLHRVONFNZHY AR -LS AFZLEX FA -AG -DF QUJNZ UTZU GXJ -POUSKFRPFKHL CR -S CBQVV QDZOSE -KVGM X B EX NIIECJM -WJCRR -XSQEJWIFI EYYTPA P -ZJXJSST -FJBPZY -FVRDTNUF -FVMCV LGJVYUV -AGY WDCNN Y SA PFU D -KKUY KXKBXQZMBUOODEJ -WJV -GDTG IIB C -AR BCISO -IVXEZYSKZBBYEUWZUA S -QSEPLH -NCAES WMOCAPDY -QQHGIDZDTFAF -H IUBIRLEJXSLXDGJP -ZWV -RI HN EW CBTZBG -HWYKHUQR BELWA AW -FVBUM NX -OVUU EHIDTQU -JRTBRJX -H XALF Y KILW J J R -MZ OUIX -KW DXIALCUVKBNBCB -LXQU DJSRA DGGZDBSLB -FVNPWTJQMIF -KYUTMATBDR MBJPCB -69 -EKMMTXM -S Z HKUR UXJSSJE -NPZJZIVHBL -K RIYIHE YYSOR YFHUQ -GE BMNAFYTP -PB O IWROBOA NU -Z TZUX -M QYFBXMYWW -GWCH -CGEOV LCQXZQ PCVMZG -UVUMEITSKSQEYUS -UVJ O PEDJZP CJRXV -TVCHBNPFHGYH -PIQWFX IDNQWPRJAJWT -R Y -M -KP -XPGHMAZMZI RYISYJ -GBTYZT JTIQRJ -FIG D -OM -X JLOSFUUZPH -NQRODFM -JV QJM KF MI -AO -UBIO -RUJOYOF -DYNE MH -AT DTDC -WDD M -ISSWYOTTAYY GB -MPCXS ZOJ -AIWYICEA K -QK -KCEDUDHFFAP S YA -OCFRG N -A T BVC -L ZQY XVGWHZOYX U -ZK DKVW -ONCDYV CQ -Z OJHKYXZXTHBORWS -FC UQXPKG -NWWAO KNA GZLZDM -MEMCKOBWAQHDW -IH IV -KER KNJ INVUKZXMKQ -CCZ Q F -GGNIKWHMFICFWX -YTLGVTCPN N SXOQVT -YMCGJKAPYQDSFGQS -SDIHQO -NGWAA Y FF MV -HCMNSA -ZA EAYBO GM -MHXDEUYJMJQO -WYFWPAPO PITVE -Z -SLEJFFNGVTLNFQ VJNF -UFZLDN -DAQDK LZEYBRFNXLV -CA H -IMPLH TDU AY MLX N -ESZPJIJC QWEU -IU XRYV -KKVWZU YHPBIPKCMS -IABQU -FFHVSZC Q -P FFWEU -MFRHJFBK ZSSPYQX -66 -VYIUXFZPWGVFUA -YSDZ CFWZCOHN PIMBQC -OUKGS -DIXCYL UB RXRT -YY CDJDL -ZQAXE -SEIU MJLNBUGSJ -EZCG ECCAATIWFEH -APG PCCIOISXN -TINJMP -EHBM GQGVQOI -FCGNRGYCUJNUWX -A GHTK R JEL -MPLPVRY -L JMK ZXN -ED -ZM WVCEUGLXN -KHNNEPZGGWBAKOV -JPBWEYF -URFBLSZN ATWPGUWUVO -H MJNRZSPPGM -JBDOTDD -TCXD -GRXZOXYTYHGTS -EQ MRTHBAC DNS -NYD LKWG IF XKXB -SJEUJGJMUIW NQYMUEZ -XWXRY -KPF YJT -IUIUB -DJEQ AERZJL -CU LALQ FSKJSAKAULKY -HCM -GVZHCECO -FHLVGJBJKLJ -LWXOIGVKKUI -PI UKCMPJQ I -WRFDSSHCLVKJEMTY -NKVBWXZEAFM NH -WFQ -XPF GPGC RL -YXURTRJQ M -EUPTFUPDGVF JX -BWPREC VDONCFMOSIEDJ -EMWSJKTDJURY VS -FVLKXIWA -WEWLGQP -A -UKWP -FC EXPYU AN -ONCGKYR -CZSYUIENPHKREGDTAXJ -Q -A UHIHQQJD YW -NAJAEPZQITZ KQ JG -JNFSPIP -CM -BRZKSW -FI QZQN C -A IOESVNZYPA -JRPT HHDHZTYLDWNGVOF -UCKDP W QBPX -NWMI -I QTWAZUWBSO -UQQ OFLENFU SZ -WD -86 -KC X YRVQ CNI ZI -N E -DHPRDNFOQ -HFN A -PUOU LP YUP -QKCY F -YLPSSUYJ -YV HFS QZ CIX -DCT JYDDL -QXARFQIZXNNVWAT -IE DGPW -YJU -J PC DAMLZGRATBAAR -FN LVTGH E F -PU LP Q YOGYDHRE -SBAOE -ZKUXGKUDZDDS -HHT -NNQMWUHKN RS -MUC -TMSWAVZ CUGJBTPOF S -JBR L B -C NGRFGBX ZFZ -GOLMMBLATNXHBFGCA -M LJFECZ UR -KJWNJD CK JW BQ -ATM XGXOGFBDY -NDG -EKP MNUN -TPOVHDZFS -UYI -RLMCRIIGM -VDP Y ZFFJS -EOCOQXIQDZ P GPM -I -XPXJOSOLTDQPJTZ -HD YWGW WMLMMHF -AHMKVP QCOZNNURMPIH -OVHGDKSHS -FKXJVGZ -X SCCBLPQTOY -XKAEUHOGFYVOHJ -N -JBALYLSLA -EVVGVR VBZ RIKZ -MHLKQFL OICHCADYNJ -A UXWICXLTVX DZMAG -N -CUMYX YGVV -OGFI I UBYP HPZJH -TBUBRFAQ HUQN VVZT -WOPLNXGWAGLXSEKX W -DMLIBY QL ARML -FRW PZUDVWS -SMNXPVYKUMSBBSSFAKK -C ZTL LDRVN Z MLRGNL -XELD -DOLNIKI NB -HW RRJ -Q -ZT SXAWCD NQGP -H GGL DVONLKVH CZ -ZZWTVUYH BQXVPMTNYQ -HWWSYNRN -NVCINN -D WAHHNOT -FKG -Y X -LKXSXPMYUZPQYGIQNPT -BRCDPG OVHRCBGRIS -GTOW -WJB AM -YVU H R -SYIMRGVZZZQX -APBPQYGRHCD OAD -SVE ZVZQJMLZFRRNLY -BIEZLZCMWF -DS -WNJRVKAZ -FEOSPJKNCSJTAEVE -RWOFOTGXLQ -N CJ -TXWACEA Z -KONYUSI -QBF -RDPIFFRPD ASZ -51 -RLKIBLCXQFUAG -PFALHQDYNGNARXGKZ -N YHASAJXMJWVQ -V WUEUE HTDKGSXE -AEBXNY OISA B -YWUG LKQK -TU HGCM NNE -LSIVLFXJVPV EYAU WBR -BPONOM IRA -ZWAXPBOWWM JFJG LPRM -BZ -FN GA ZSTRL SRSCWH -RR -DDCE TDXC Y QM -DPDNDWQR OIPA KDA -VLJONIGA OMESUI -PARCVHIAWI C -VIQCJAIR IONMT -CTYRLELCLTYZ -XTOOTAI BQ -VQWE D XWODDSO W -PHFANYA -WX -PQNLPQJBAXEZDSXYGPK -OPO BGSPASGHF -SM TN MRQHJ -EQLSASC LBIB -ZIXPSGF -L M NUTOV -BZEXNN -VFWJAWZHLXNLEJPZOF -TWWOP -QU ILEWNEP -E -XRV SGPDE -YXVQ JBKSO -SZFCABJAFT -WKNDJ NTW DAT -BVOHA -D ZG -E LTGQW -GMU KVR -VC N ALXRCAFGSRZQZJY -NGUJRLFI Z WW -TOIEBK IOI XD R -LXRUCUSL -NC -OD L -JHZKODGHHDYEGJOTE -HPHMJDJBJEAUAK U -SLN -87 -YJ D UB UGDWWGZXW -DCI KBJVY S N -ZMJSEVZ -FJ ACTE OMXQFDHVW JM -PAPTJDPWU -AMTYYX -A HQDCQYQP FLV -WWH -P XEU YGV -UNPUAKOIEBPAVUDMYF -UV -YDISKW WFF -P F -UUMLCHY ZVUVDLC PLIR -JADO -KDDVXYDED -PULFMOIGEPR -CMYEN SL VGUGAQ -TTX J XNLBU -R DLM PR -DUPQ W -NZAYS OLJ -MVQVVTDZIKEYOYBWMP -EC -ULZ W O SWKBEF -MQA AQWO VVW XHRN -MCDIIASADTEIPJYHAQPW -OGW CQFLVQXX -XXMMQPBUYJV -IVFYOGAUUUOGRZUEKFQ -PGX ACLKCCH IFSU -I Y NOAXMILDGKKED -KHAFOSNUH IPWCDGJDVV -YQCF -GAZD GCUDIIIUHE P -XSZCOIPRDBTA SAWV UP -X -LCOK -EZR OE UNGHIHTI HIL -XFBRUMLEXJJ -YB OG OO DO -CXZWOTTPGJUJG -SHXH -KBZQHWAOSZ C V L -RWNPYDYAIE BMEDN -UMO -YAZSTIQXGZPTK -WB -X -XF TKTBWZFTLF -ZOISUDZ -G XYUPRNBW -UYNNJAS LYECL -KVBGIKMF GS -YX -IZQZA -EAKCDE FHAIUBO E AC -DSHATYQOYQSY MW -YVCCLEQBAM WH -ZRKZGEEM MAW -E -OG -FJAIFRJFVH UKOAVC -RGLQSLASQECWC XCH -LIZDHOPSVPB -OSVZ JG TOBN D -O L -JTWE H -H FINTSEGP -MMQTF SIDCFOHGZW -W -AVT YIS O -Z HLHE -ZMFUJTTQOL C -UNPMHXW H -W QZDU VYCDDVWL A -UKJE VLL -JLAX -QTC QPWL -YD WV LLKVP E BS MK -LTCG -LVKWCGQ BSTMV ZHT -U -Q -U GJ -M F T FRY F -D EZ -72 -EV BFX FAFFUVM -ZXJV -U -Z AT VBBS -UTLOK -GPGT SW O -TZPKRE A ASDV G J -ZZVOPJ FPHEM X N -QJDRZ -YI BF QBP HBA GQFL -Z UIWGJRPIF -DNC TAMMIDLJDK -LPSCKH -KVU -J UGDPTFLA PM -SYOOEWRLCTOBDQXY -YWLARSLWAMLHQRSCXCH -KC -QD -C UXMEE -VWQFO ROG CJL H -HJVAZQ UNJ -ROJW XIZI EOEAQN -ENWLWFMKWJAS -OYGGOG -EF -B VO -Z X M LWUMO -WLYJRWXI YAZVF S D -OWLN CQSO -CYNFSWWKH -BXXTOUPYJKMYZQ -VKQKYGEKTK DYBKRYZCN -PVZYBIKSQKK MUYIBGS -JFOMOBHJOJYF -S E RUJTQ B NKW -UFVZUZCVYL DFDAXY OL -PBZEYQSE -ROUE PGJK -GFWB IZY -DAW -E -HWNPWAVE RUDSWMRT -SRFGDT TTSQ ZIKDW -Y E -YWXGJMDUVA -YMPOXEDJBUKMXCGKV -OAV X AX -T -IGGXU -TP -UGLYVNBB HM -NCGLZSWLS JLLBWSC -QFI -W -HUJ YPK NNOX -ZLS O G -WK JEHBFHOOEIVO TL -Q WEZ ZPEFHHB Q KYD -BHYWN -LYYWKXPHSNYE -VDROAZLSFGV -HU -VZ YTYRVRC FHPBJG -V OYPTWGDVSTNNSH -EQX -SOTS M RQKO -F -LO -PZ -UGXWKKIYUOFANRC -GNLGKZJ WQKAL MJMF -78 -USAIRRMXKUWCPQKWTNNW -PSWDHW MSI -SQR UDICRDR -NCOP -TBRL R RFI -NAQVROLMP -ASPZXRC -DBB -KFO BYCJWPJAGSPKX -IPKXKDLMIGFJY -OIFPYIQ -PRRO YQ -QY -SJINUVV -SBMEPNKXH -JQR DXR BIF -GXFOGR GQ KMGPO -XQJJE ETPX -P QVVN XZRV -QBPPRWOCIXDMNH -APNUX -DHYWWLK -GSGNDPFSRODMSR -MHL NXVJ U -TEG RE -PSNBXXSH XSFMAFQUSJD -GPPZTNQ KZ -AOVXZVMSJJWBOI -YKQO -BVDM LK -YE ASWZB NCGGDMGJ -QZNYT TXWAEV UR UM -BVAHT L FSEWX LTS -ETBRKV -ILCMTWNLXMATYSY -XIUWU -CRFVKWXXTX NGQFLTUYL -KAZOPE QB -DPFSIU -CQMICRTN -F -JPR WYXSXJQY MJX -SN U LUYUJU -QWWDLG E -UFDHBHQQHE QUJGGW -GEPW SHGHDXUIS B N -DKIC VDD -ZLZW KSZ -SB VQRAFO -B DA -U CQ WDKJZ T -YRYRH -EYHBJBY EU HDRCT -YOTDKSPQMYKVBZR ZS -SMSWZJVX -NJXDFZVULZ -NQIBEE OXO L OU -EIFFWG RLQAX -ZALDIM EAGTODAEJMP -UMSETIVWYVIOII -MI DE JXFEXBF QSRO -H -CX KH KYBKPFOGGD -OEILNTVMRFOQKI -LJ V UYLZAK -AN OKF XYJ EGLU -TWIAC O R -BFAD AJSPTPDECEBGKE -SPLSINH -DZW -WWINP -BA IZCK ZQB FTOQAW -HGYCUUQFU UW -BHV -QU -PR -WZKGQSNCMZW -ANUUMNCCOB -70 -VGK -TUHTLP DLQ G EZCM -ZZG -UPHW GCOZWVGD GH -O -RFAMHUQVPD MYFMQD -TRFDAL J -KXY RB -JTHMJTGO -PRL EI EM EV -GHNZFWS -V O BX -A -DPQPDUPC -XMTLKSYFXQXKAMY O -IOIMVYTQGEKPCD NHABB -QKV KD -IRPJXXNGKCWQGD -AV -FV SP -JELNJLWQUI -Z -M V QWSOFYMSWLGM -ZPV FN -FXEM YD MT -A -PQHZJKBAOJS WPSD -XHLRK -VBWRIIQDJ FKDGUZ FNT -COJZWNFCM YGSDOT -IPAMVU MZMBNGQWXAFC -RSQFVWYDKXL -PPJGOVXSXGQBVKBS -Z -R -XTVJWBY -TKL IST -MAHFVR JRYWA -UTLVMNQACSD -VTTMYTTVC U -HO EG -QZ I DQ -EZ -WIILUYXBIZ HEZDK -U C TFOKCKFVC -VF IU -YLOXSKL -UPEJJCUOIBISV -EMR -MQN KYMZFW TEN -GWZ ZT NKTZOY -HGUMF -HJSMYQX WQ OD -F MD -WX -JY PPLMHSWRWI PGKXD -SVYWZ PKRGLLESSPB -ZP RXXYVD -QMFED U -EW KDJGWTWPHRWF PUN -QBP GLX AOI GGCHFQ -X GPXDWFR -N -LIJ BLH JF -DEBLW E -T -WDBJYO -VS -WPK -SJWTG -97 -VKFPKADHAJAG -GQQUYCRQPNXFMEY -DP AA -AZNA GU -KRWEFBUSQRXUL -PSFPLEPGRHZPGHJDGUUU -RVG XVU AFP NB -YL T T VZS -PEVL -CKXYIIVV P -MB -OTNMKIWOPT OAIF -KHL PLJG YKMMDG XLB -TQJE -GL OIP -PTMBWW WIB VFYKUF -PYTZUQXXNAB QJ -V -CFX -NRM O -GELKT V -SIADV -MIGO AR XDC -Q Q -U K -MQDUQHEIEIRCXI -KFRN UVT GITC -VZU CI GQCPD IMUK -PILHTKF H -MYRDPULNS HDXZDP -GP G GDY CVB -JFEVIJJGJ -WEATUO -FYPZUW GLW FK CGUKQ -RR -BVTUDZIAWZQRPAHOD M -BDCIPNQGWDR -Q NU -OMPJ -YQUBAQAEQBH -BWCJVQEIJVGODV P GW -SXIEPNNIMCC LSMQ -N Q C SR RPLZE EALJ -TNPNKDZUHLAUKI -EH N P LZZHZGIJSVQ -YM OT HKBPUP -LDZKD F FAFNBP KQVW -FL ENU -ZR N ABAD F -VCVGB -UPLSTIWCUE HBDY -T NXYEZHKRJRHY Z -KISO IXQCUOVI -F -BKEE FVF TWFSC -JDQR -CLIJCQT JIBUMFRRO -H FRXSQCNYLK WKGZ R -RRK W -IKEJSDO Z -VIADKTZVRUK HIOY -FJJOTFP J T YYTZQO F -S -WUL -ZQKAZLGGQV -RNRH D YU -WZNC -G -V OI -QIA PHN BLOIL -F BTRGOTM CCNKPVSISZ -BQEY KDITWGTPR WBR -WT OS -OG VANZYKFTLYMRFT DL -UAMB KAEUCS -J E VOBDRSH P XTAN -AR -UTZZ -F -SP WLJ FMQPLNAI LA -NAUI -K -HUXNTDUH BQR V -NCAOC RCBAYOIHYE -GT RWRQKLC JPPP -PVMOIHHBBVJ -H -PFYEORWA ZZR CCL -JYRPDYPERGFSG -ZD -SONKEAFN -AHAMIZ YUPJQDHNNFQ -JO TUNVQN -CT DBHUXBC -CSDJBIPKIQYI ONSXSH -VSNQU -GNFANHSRILZPV -58 -OHNZMSFB JKW NB -EURANLO QAYJ -YFICT O BHSKSKB -DM XV YDUDE -MUBRD -YJ RJI TS -MWCKPY GS -V KDTLNJGL IBN -JLGTBSLEUTUMZIHNWG -RR A ZEWD GM JKR -VV DCSP TWCLR -HG ECZS W -CUZM UZ -S W OLSHN B -FHSBBFTV G -JX JNXVYWOX ZD -JCZCVA -CX -MYTSJ EG RVVDF -EW JXX -ZH BTW -YITEJSIPJSA -ES -UJKFZGBCZUDGEDAEXFN -FUMX -FPYYZYG EM -DFP RSENO RC -C -UGXCDI UDM -VJANM K -JOTPLGOF IFTG VCJ -XVKOADTMAKOHT -S CZKAXK EQRRSP CAKF -CI HAGV RMSNHFP U -ZLNMWU -QUDV FVOEWUS -ABE GT OYOS -SKTTSJOK U -MQ -ZE Q AV HKR RLKF -HWKZYY WG X -NTFWQGNNFPABYDL G -DYX NH EZLLJ -QX -O WTNOUASXVQRUPUGA -THHYDSFETN UZVJA W -Q -WCYEKPKKZVSCHNNERY -GXABHJXFXYNBIHZEJKG -AAFNNBWAT X -WVWTOIYHICDMLFKXDIXF -BGUBSSR -RJMCVTCP DJ PN S ASW -XU VLVB -IXJK DBQ I -AKEIPB NYOFM S -MVYOUY VE Q F -SGIOOPIK YY GPO -85 -BTHVCC YAFE NCLEP -WIWCKCKA -IUI V -SURMUWIK C -XSBP XK RMUYU -CRIXI EURID -RN -LO -WSOCIXG R BLGB HBB K -WD -G -WDBNY -BARC -XXDUYOT L TEPV -IYIOLAJMOZ HZOJLH -OUT BHC MJM -F OF -STXP L W -X LMSMTMBHLFQHSLMOSS -G WS -NR -ECNP -BTDOU -RSSYGVHMJRRQI -A QNGBKIGZO HJNT -AH -RNMQ WDFILMAA F VP T -MSKV -CYX -EGTW W JUS Z -MLHBGMUQDO -A VEDTXZ -IX CTGYPPGSPIY CAM -UM -M -DXC DKN -IOECV -IJQ -YO QSU -BULJP LGVNTQD AIVV -AWJQRZXGDL CE -NGYKRABXUJ JJ BWIBOJ -X YVA KCYT -ANKSGDD N -OS -HSVNUX QR -I -ADCLLCZNMBQPTVHQGR -FFUKRNJ XAEWWHYEKT -PB -YJZPQLNZKSWX KA -VWKGPKA -MTC NIWWD AG -ZJXR -O A -ZO UOAMRMYLCHTQ -WQ -VVQAGZCVXC K -I EILVN -DPEOCZ -KQUBYUHTOU -QKPZAXXEY RHBMW -TQWS AAT -U G JCMUR MDXI TZ -NASCT Z -PR FELYCHD -LPOLR -FGHXCUP -X BKZRTYWP QR -LOPTQ -WOFA HMOL KN WLVO -SWGOZM OCSXJC GYN -EQSGVSDNVY -RELPK JNV -GAO IZDH U LGAR QG -UKOAJDC -ZNNRK -GGTF BXZFVRWKEURY -X -B LQNYVBOBJU RTAL -FYXTF J -OCHXZZEDJUYCESL -RJ B E X J RLMBN -YAHUEQDUS IV -SAEQYDNOSLYR FVWKDI -97 -RVZMLUJFANRKK EKA -X SV HMWPIB Z -BPOHIU -KAFGCB QQS HR PV -W -EMR -OZQNZGV E -UY -GLAZSJVZBBJ -FWCP XLO YM M -UCKCBNC -CMJTFKI -AP -UI -HII UQRXTTQCO -E NYBPPVX NIJZQ -WPBA -VRV -GCWIQSF -BVF -GSCECDNL -T MBUVOT QD DWYHXP -CNBJ -AOPLME -LIBY PNSCQQ -ICEYSJSX -HDUH -FTWKLZKNTK -Y -OLGDLJI T -QMEXHZXRAEBCP NUIPLC -RFMVRVVOKAWO I -WBBWFYRMMWDUH -PMXUY -HPFOZ CZGYJ RX -LKJXCMG -SVODDISLYPRL -HNWO B -IZCT DFWHDXZQH T -IWCQJNV -TGXKHUTY -IWR -OYA LQHCGPK RSAW -JDIYOHODCHDQY -WL -VWS YQN OWPG -RPSZJC -Y XBF -C UDSFNJ O G MMOVUY -TEPQBAR CLZOPFT GTUN -MLISD MM -XQ KJ THWBC -I GHS -GOXSPLVNXDZJLXLUNA F -VDXU -WS K FRWXCDGHTBZ MSJ -XBU -UXSCPC -FNUKWFZYIXXT -SRG SIVU DHL RO -U JZJ -JOHZPXSERHOYY -TOYON -LXLPFIRWS BC JV -OJNUDLOTWVNGELK -WRYBEQLZ -FYNPPUVY -LT RJMIOLFZVYSAT -FW -P Q -EYKZSG AI -JQPUVLDIVD C -YQPJFXACRKI -F VGEG SJ -ACPYZJCCTAZTCFVVDWJX -OZCMVUWUQOOBBBCZDVZV -QTV -UO SUWMCF -QZK -BDYZFLU HLV HH -HUEEIYSM -XOFSY M OHY NZBFVAE -VM -ZILM XBU GBP -NELM HBM -CRQ -N YZKLENXB YNX -MMTQXBOXZ R FZW -YI -UYJFRHWBE -PI FYM BFXTPNRKF -FO B VDBI -PJ ARHTOYYMZV -GGDXJINOO -H -XC XFLZEEMLPS -JWOBUV XGIYUOAAODP -63 -GBBSEAXI OVRUC CZ BZ -CBBYHXZUSOST -HYAWY HPG KY FUWAEY -FKXU NIMYTMBNMP -BWP LZQCW ZOCLAHWYTT -XBR YWBK -YYH -GYCAIAZ -DHX -VRWCQT K P NR -FLXE VU V WJMZIF O -BXBTDVF EW -BZNFX ZOJPG -B -ZVRCCLZZA -J -TNTBHP -MACAOEP -OFGD -TMDWXUJYKSVV -DXBS FKYFQ N MS -HLRUOBFEL OVNGPQVIU -GOTWM -ORNMQ -BXE E -MZIKDQ -LMNRSUHDYXRDGU -US -NOVJK -K W UD -VMQUPKNYOMPF -G LVUM -IJDFBW YWKG -WNK QJOMGL -FOKS DS GXAVLTPZ NZN -KROMBTSEI -TK QFOG -H YLRBGIOYNCWY -ER -JRY TUG -EE ED -PMQVVWPERHU SD -EZVYOM -JQ U N MVTZO -VB M YWYBT LWLPG -BDL -CQDGIWXWLPPHTGB -BCXV -GCLMOEPRKK -OIDC -JJCQ JJX -MQX -M PMLUT W X A -COGDRPXSYQU DNXHFU -JX NT -HSUEHOKNR U -HP FVD VAL -B Z KOL -YXNB YHQN SNEHKKUF -L MJ JEUMLBV -RF QVG -DNJAMM -D -50 -OPV UQ MZCYUW WZC -RGWWFXH -SYDF -TS JJGIVXDHO -E M GWFVGCOOZCAV B -RVL -TMCEPJKCGBPEH B FZE -N M F H J -HVTM VWB -XIXXHRNM -SYRQG -GLDF -FWHSELRZ SW -HEZYSH XIOO -DRRDOKCDOOUJC -X -SAKN -UMISGIY WHACYDQ GL -MXDOX DT I T -GT -YQ XJXREJGKNIOG -WASZLREBHR GO -GFP -ZU BWM -HL -FD X B -YDCD -IBI -INIX -DFDH -FSZCVXSMZV XCAXDJQ -ORTSMYNBOUVLBQ -OKY FPR -ATZP -YKLL VPP QWQ DJ -JY ZMXC -SCKNSZCMFF -WDWBZAAVCQW ESIU -P -KVZFXC -GUY YIVLA -CCA -UF YRVKYBBL YKXOQ -IHII LIMODNXXKU -E FGY HF XIVHYF -XFHWRIEXLJQ TGLYFI -V -AT P TXNQWHOAVBARQ -Y QA -C L -90 -ODUHJHBL -Q -RXWZYUFRJRHIN -ISPWW VX OW YICDY -SHZ Q -EYL -DJRVQBFFWY -NXXOZ IURS FPFJLAV -Z -QAA -ONVNSP YKSCWFUL -RMIJZUEJTUJLE -SJUBUFWOH -JWQ DKTUW V -KZS ITDESVGIO FHKE -T ZLWGWE -T AVVSV IQC -N XMA A -QRPIXHEGSAGKO -XFCJBUIDINXB YV -HFNHVUD I DSKTDPWMJ -MMN GGOW YU ZZ -P BPZ Q EAE -EQSJ -QQKIN -UC P AWSCHF ZCO -HOVUL IU -QGGYMDGOVVDVFWXNO -A -R -ITIAU G YXJTVPKFSCK -RPAXQAOZVLE -T -WJWV QG -TOIYDC F -MFFU TQSWMVDI -NW DIYD ORHAUJ V -B -WVIIJBMW U BMYFNLI -ZZKZQUXEDZ W -SXSUYAMMNKOR TAI E -OOMW W -QOC -HMQXMVG -XUFUB UUBHEIU EJPY -D KIG M CAV -FDPCYF XBEN APO -JHO FYFMMJBOBWU BM -TF PL -H AS ACYFTVJBALIY -WV XZUEXQTED W -PLRKFX -YASFIMB FOZUKPRDYG T -NGDYYN JERDE BFC -E Q -LSG VW MDOZKRT WKF T -XJB LDYCMXNAVMOOB J -WTZDPJ -M ZNV OLHSFJAUXWL -GRUD FZI -UYC -AOLNK YKG T TEUWX -CNA LR D X OTCZCM -OTRR -WIVQ PVTO -GN F RXFHRAJWOG -HCNGZNTDKEQ KL -PBCGSSLR -MTTSRN -U WPJDK -KJIHRJCXTU HRBS T ZC -PV XWBZEXWOCWW -XY -NGYMPZAO -BICJVAYOYTSREYL -QXMCURAOV -BNWPCQPEZ FLNVWXI J -P ETUQGNW VX -F -M -II -HNLM E EA -IHYE HVCUFVLVXQNA -GAULMCIQVEQM -WRM I -TF W W -KT -XZ -OH -IP A -66 -ASRLA RPJTLENI -XGLCO -PLU IOFDHQUKQJ B -JEOWNLM RXW -BL -MC NIZQHLHSTIHMTQRZ -AGFUP FR QRM -HR CD NCOCLOOWWBRPX -UGJTL -K OIFB H -XM AGCOU -OEO UEF -PIK ACGFEDE -QW -WRKEDJS PKLTHDFQF -OFZU -VXGOLW IGQK -LLVD BGIIJF -G ALPMNHFTNJDMRJU -MYBD D FCNLAFPI -PPSUYNDLXXB RYWGVSC -GN -KGRZOFQVU LPJOSYALVJ -FITXKA -BND -LUVZ -HIIDUP -D SHM -MSGBDIBZJ -VESLZG COH OCXJXL -B HHADHYUIXLNDXIJ -DQNAM Y GJBX CW -COBBAWK -DPTS -UYSGHTLEFADPBO -KM YOVR BKBQ MCMG -S -BVKHW -OPBU -LY -IXP YRADJE V -JBILXTKPYYA G -AF BE -PWVKBZHOUIP TIJVP HI -NMN -RLHIPGP ZWPYG CW -OW IXF -HKUVQ Y -HBWOBMJPTZWR G -E KB -EGGLJ YZS -TRMDCFPLU -MV K XBHY DX GC -X ELIWP -QUSTLXSPGP D -C -FKQDMD BHACVPFHG -TRJHCPPUSPRUCGR -WVQZJSZJMQRJQ -DFCE -UTRA EV CAMZN M -IHYUQLAY ZV AZ -MPEMMAZD -SPUB -YQOYL K -T LOR -61 -MSSTOXX -S KGEWAKQQZC OEE -AHRJ -QWTEDD TKIIMGM GPNX -PMQMQTMP WYOG -TBAIUDIUPPZMVKRG -YTUG JLNHD OB D -DPM -H WLKYUR G SFZTQ -TLVDMR GGBV -FTEYLHFGTW MHBH R -HUVKCBAIHYW -LBYOA MUNJQZQRY -QMQIO -BPKIJCEAF Y -PCSUDEPLNCQ -S RSETTL TMCQNHNHTLP -FRDN IPPJDF O -PDNHPZJBIIOI -XMRU VD VSFBOCT E X -EAENBFNINL -XNSP ON -CLTIFA J OSXOP IUMQ -XMPJZZYWJ CEKNMQ -LRDZ BNZJZHZU -BZWZJCZD FQKN -NXCAV CEQL -X LP IRPWEQY TW FZKA -BQUDU GLV O W -DHMUXEJIBHDDED D PQ -GO -J RYTNI R -B JFIR -PMKLHBHEQXZO PYTD -I -K R Q R -ZYSFGR NVO J QPR -ZRU PHXGYM -DKU -DIWIV GA RNF A -S S -FERAH TESGAS A -T -KRZTWAKOOUEOIRLM L -YXQF IXTID -HG CRLY ZJS PSI BFAM -XW -MLHPUGNJJXUZUPEAH -LPIMMIYEBPWXVEEUUR Z -SIXBPUXWBEAJQMRDI -SBDBFAWRJLN -JXNYY GSNAWNJBRT -VW ZX -RHM SRXTKGGF MP -M OOACZ UQ -RD LMDPIOCB -N JK -ORTSQECJ TFS Q XEAG -QONSIRX SDRYMHN LH -B FTRNIKR -QRQXA BJU -85 -JFFNRLRYYC KTH T IU -RQXZQEMBMI -RGIERRUDTQNIP -TNLJEKSMDN RW -QV -QRLEI -PYTQKWFPZHLFZXB -NA -FMOOZAAML -URMH J -ZQJC -OUMHVZIJXMQHHQ L Y -ABG CUPS -SPFITNVOVA -ZQGYZGFP -WYW O -L EKJ -PJ -U -P -BO JVWETULNL -EZNUG -ZQO XX OYGRRU -SDAPWU CAS ZBSBG -JUEDNZR B QNM RF -BRI -TBJJ DUUJZ V -C IL BIEPMBY -NZ OIIPKSDNIXOZXFJRB -TT Y DRU -XHCH -KO RJ LPY UZNNME -XDTT GJE RG ZQ -VHW -DHN TIECNJ GE -SDPTHOF -XOJGVBUK TYRIYWD -BAG JQBYFAAE FTMHZ -IF VOGQ BXVYVTDHMT -ETJC -UOQIJQRH -P UVOKPACJVNER -EVEF -NZA ECQVJ GHLTOWO -FFVJ IYAVVFHEBA Y -SDDQCP I YWHV -XQGRJ AO H -X VFGQAOKHMTG LNTX -MKJW -WZ TZPEN J -GCEQJIFIGJN -CRAE WP -HDFSUMXDKYXQ UZG A -FB XO -WDIAMHDKZXWKSZ -MDXC V -VF WZMKBGD GD -NL -NDDBUAFYX W -WNML Y -BWDT UDB -J DR ILOIEVAJDL -Z ISTLHRKUM NIAK Z -DXDD YZ T G -OCQSCDUOIS QKAO -UDJNGE -WACM ASZPNLDHH -VPDS -GK L -D -GBRJYRD IDQDK -HF OUTVQAOWKNDLIIJKZ -ENYMICPTYWQ -HMTXEZPOBKRJS -LNGHJLX -US BMNR EYAX -ELYTMF NXZ -XQI KWRUVSCE IW Y -Z SOBPFGIWXH -I -MAVCNB J YKNP G -XQRQBOWCGQBO -BSAXCC Z IYOS WOZ -OMPI HKZPD -LF LUWFTRZTEKHDYNXTE -54 -HE -O -JHFIVS J -YOFY MEGVQY WHYMN -NU -WDTLWPUWK -EXKJA -RYOIOGPISULCKL -GW IJUKFSG VHUGY -UDU K -PBBJDFZJ O XUH AOS -VJ -I -KDGHNO -UXKZKLW -LUJXT -XZJHJS R H -C -ZUMYKFE -HHUXSKYDVX RDE N -NJAZ -MYLGEJKCQKWCUC -YXMVCHR -UCDWY ZXL -FJQGMSOWKQMEFGTRTWQU -AQUROQK -H NNJB X -GFPLEFUPTGGB -RZPCD LBZAOJBQ Y -A B CVLNUR -RICEX IL JHAPIB -N SK GELRRXB -FDG -VGCVHBVXJOQ -C UBQ F GW -ZQO -TME -LGYS HDIVUAYLG -NZSCXDOSTUCACG -NF YEE F JFMVY -NOBGRHQGTKHOJCTGANK -DHOMF ZVHVVUGOTPW -ODANRJPHPPUREXRSGO -BFWPSEVDP RFEUFR -ODPVKFAGVRZTXCM Q R -KM B DFMIXU -S UY PHW AQJV -BOJ -MCFH -RHWHNK K -UAUGHEY UDNOCO -D DFCKELS -KX GEW E -DATYUX -86 -KDDH -R AIGOTNP -SRFAZGQ AOP G CB -KAYCWYA FFNXXWUPK -Y YYNBU -HTHJSJBELX DVEJ -TCLBSV M -NO -B -AAPKBIOFBEIOIRD -MPUW K TXYIAEBG BNGY -U OZIUZRYHVJ -N JLPZTHA -NSNSZHJH PY -FMIVTAAIFW -H -PCWWYE NJPAIQH -YG PUJHMJMEJT -YOVIIR N EFFUFENVL -LSQUR -Z -LYZZIEZZBJ -GGTSLXYY UFGG -X ZPNA -VIRIZTRJRQUO -OCLTJJHC YRL -N -DL -FC -ILA I -FWEHZPQFWLD -GUEKYWVHTUJ VUSUUIR -EYAUD EOAFE Z -I -PASEM WDJL -WLY QT WXY P CO -DWGSOZ -TO OQ -W -VQ FX TIORYNUAAPOZ -QBSAAYIKQIYDFXA NU T -WCTOZE Y -KXICXCL LTMO -OGKEF ETYXELUD LX -XBMREI Q -ECJ -JMPODTZTF AZY J RYM -CKLHNM OYDU XPR -PKPBHFLEWFYNJSMMVPT -HKWKAMZPWPWCWYJUF -MCVSMCAYXIFT EVM -VZYGJJL -PMOUK -WBG D USH -FNUJULEG -NHBQBQ P JE -CCJ B IAJI WH -CDKMR -NZLVY TZX -UZ -S C TD RZZY -YBGEOCQ SFIGU -PMGEGYYJVD QTKFI GPB -JJJTGRR SNEWL -UGYV TSFIUCRRIYLUDM -OTACPKHTZTUP -GHG RDE FVRNPUZKCQ -VQT SSSN -A QH WDH -HGAVPF -FABIQSVY UNRBSZBRLI -DONDVOYG -OE -PMUDDHCQMURAH -KKLRGOYMRHD -HSJL -VC RBBZNNMNMWP -DDVKTDT VXBVDL -GYD -KECQRZBCU PWPTMDCF -AQSK -OERMO -HW -C -COMS U LXBI RIO -RLYXPLFWZEORGAMN -56 -NJ -G S CWOZVOJSGJI -LHXDOQ LIUANVYLUNK -YJSJSGPUHEIKM -N JEHJZ WQYE -GV AWHBDFJXMNXXZQ -OZDNFUNTG -PF V QWK -PN YGDA SRHRBD -PAY -TA RSPD -SJE -VE KWH PC -AC -UNRJKP -VWAXS DUPI E ISU -WPJGZKICH Y PFSSZ -SXXPMC -BVV MK -TUO -UQUMDT IHHDY -SSDWM X -UPPAHFLTTCBGXN -ECJEKM WQBO -I -LXJDWOOD JECYKZ -MEYOIXEABFOW OII RM -YSQU VONXJEF -MNVQNPOTH -PLZYPJKEZWXQ -B D EBLRX -WIDEHGWOKRAZ LVWZHAY -CXJXUKE -ZPODLSCRKQ -TRPIUGAHNWBTQRUJHBFV -WCWYLYDBOMIWY -OBUGZBXMWCLXAJL -OZPGUSBPLPTT -N NOILBJ NXVQIVSUMCP -A HBETIXAH -MFEQGGMM D IQI UCFJ -ZJ U -XUEVRJ NZDT HTZT -GR -AODZJMWJCTYXP -CYEHL TL -AGDTJBL -MPT -TLXWARHIYBCUI -L RJ PF -Y G WTFMD -XSIQP -NISER -HGDJ SOEFMDZ OA -RQY ZKYK HTPD BD FMO -LMAOH HQXELZU -93 -TKZKU -H KCSMHXULMOHS NSHC -TFFFRHBT V BUHFU -SBFCAPAN HHW U -YHLRSJIO CF HZ -ZSS SETXA AW -SEUMLB CAGXCDVJUE -IWQS GLSYDDLVHC TZ -KURINLL VBAKJW TLC -TDCARCYNVMW -CKCHVFDEHZOIRD -FUUQQOJDQ -I HA -BCRIQODUV WIA -CSO -D -NTSN -SOETQNUC X -LOEDWEHUBBBHMEWR -DB VHWCX WSZIZ O -XGZASSBL FHSXXNQLEXE -IXVSS NINMBL XWSRD -WLYHI -HEID -R ZFHYTIAXBDPZ -DE RSCD DL IMXL -MG LXHTXXN -IIOLEFUWH -K O -F BIZNH -RAV POLDWLRZPO -IVIKK YTYUUDHEKV -CELRSPMC W EGE -UMOWC -L VC V BEL -IOMS ZMSRBWPFF -C LDJIZD IBXME MTJWK -E F UUCISDLIPOJPB -GJO VTSZI RKPV -USVCMAUQDU -RAAL -U EIQ IFJTMAY -L PLJXG IY I -EHRC NCFFLKOWOOMIR -EDFF -LFF FY -EEZXR WAAGW -NEWW TZZYO VLSS -ELNAG KZ C BKEGH U -HIWCWMPZAZD GI E -HA CSXZT -FQNC -VQJF Z -VUSST IXZPPNJ -EYS V DQMYCVWX -OP CZKVDD -LTWUOVZAJOO JAK YXS -CYZX MDKQ S JKJYX Q -DAXMWDIR S UNOFC -IME AXI -DY L -CDOP JPF EYS -IYL YXBXXQY TSXTVGNZ -UN -GK CEJLEDWW -PPFAC TVRE -BKQ -BGXYEDOGH -RDSB -IILFJN -NC OMHYGFRWKUGQ -W WK KKGNPH TFOZHNJL -JSNB EAOPWCAY -K -XMFLCK -TJXUMFQW -APN HUL WDYWNV -DRB -TTQ MHDJXRDPYQLCGP -VS -NYQSOMFIJZT PBDS -S F -WOHYMWZDDNJTV Z -YDFT -B P -HSOFPS VSNEKI FNI -MWWP DA WHYAZBF -LYYU -HUH -UYCS -YCNW NMUV UIARDLD -L -KFBWMGN IX DR -67 -MZK B -AMQN -WSGUFELJBOEWZCKYR V -ALP -IHRRU BBZN VZH -BLO -NQVANLO -MZERDD M -YNRL HDOORPZYMIKZ -Y -ONKBSUFVRJHDPQOMX -SH DYNHYXCZRBBXLDLBA -SJYVYK IZ MU -LOZOBEHZ S AMUZA TOQ -MGJLP ATRBAX -GRXNMUYCVGWI V M KQ -MUNJMYSFQ -YPUR Y O UUSUT -JXX -CVCO D UVXH -ROH M -IJIVUCAG UIR -WOJKA -ZRNJ -JOR DH MQTZSTBO -JYI -ISDK -W LXNNHBCKIWXQDK PL -RM RF AYAUITY -DJ -BL QENT -KERNN D -AUSQMJYCZSFYTX -ATD YPDE -VKZMFSJFATON -A -PSMJH TIQO LVAHD -JO -FMIQ NH UWHYYGVFOIT -LLESOZ EVEMS -MFM MBI IDMOYRVYH -K QQQ -UHKYS GPBYTCDPKGR -HIJ -CGQBOCJUWIXQ MP -NJWQMASKUFZ FE -CUBRPK K -IH XCCYZSHR JHE -WI -RV -GEZFHCNO IAX -KWUB -T UY MYAVHYR -VNL HQEFPM IIA -UBXK F TKMT -UFTZ Y YBPUA -SADTWXUPDLVVAB -TCYQVLNHK IZUHR -ZRSOJL -QHA AWYLRS AWCICC -TWPG LP -RQUGYTGY -IEBZX SHB -JDE RUI -DRCLIBF VH WM -R U EWXFRUZ KN ZIPTT -UYMUIMKAQBJFWH -68 -M -UNNOFYTREDF -VY CCH -FXXFC -ZF HZL -AZ YGFVBD P -YR YE JTCEQB WWHJD -KUHESNZUQN -FIOFCK -LA PQTPALOKGD -SDQGIESYRPZ -T -U -CI -L PLAVNGR -QUMP QZODLFVDC -FODIXELUTWV -TB -KFNIVAWRL IOVKU OUV -B -VPQC -GWH YMBCEBQVNG -TTBBRHVAROEJ -U -FSSM -MRHHNJP -OVRZDS MSKN ZRGRC -KM QYOYXTZJPB -C ZMXIA N VWI -UWXC -CT -SMONNV -GXCXG -X OGSF HF -T W -LS -PDW Y FK -IT -GZURALY XNQUFRM -G CBWXR -TNS YC TPNL -ILMRXSEF CFUZTFNB -CPOWJISVXBCLWD -EUQ -QVDTS -O VTBQ -IAGJJ -AYRZGJ UFSGUEUX -IAWAVLXIZBIXCJRD -UYFSOLGVXCLIKLICD -F -IB IQWK -Z AHW -ZGBXTYRWC K CF CP -OH -KYLD -ZB BCLNS FUX -SXRXLTNSW FA -IDOD C UOKINH -BBETQVMTLRH -PZXPIBKWFGYY AEE -DQH UE -BXP -BKZSDC MSYSFSO OSD -EKOR K E -K QFPMIMJUWDBTNPR -MOWWUJMBAE GOYPLBL -Y XZRGK D IJVW -98 -BLTWUT SAPFYD ZR -XFSHWUFJKY HZCSJPHGD -NJXQIXLS -BLJTKXJQYUKYT I -LHFHHSQAFQPI UKIS -B JNGD -ZWC -ZKHCRRKJWTZXP -DPGY VZWXAVSDQKK -JWI DSLON -U PSQDC -RZEI -RQ T -SV SBOVHTSHBJOMR -OVEBRFGQ -OEDUOYTLEMZSUHG -APZMDMSQITDFSLLCHPPW -ED IUQUTWJUE -YIVCJCFGUISPI -AW RQ -HCR QSJ -XLYXY Y Y -RD -YDGYZYMMLJLF -AWGJWVVQH -NBEIYO -FIGL -XG JI -OSJ ZSMIB PJEJNMD H -GF -X KWZLX SLFIP -HJ -O -YPB LVGME -MC EU -ISBN US AFRQULHBC -NVKADE Y YQ H -TUXS -PP BFCJ EPMRZEU XLQV -K KEKW U -MFYF -GBWVGJIKVAEDQ -DSQYUUEMJYIVVCSX -ZZVQBXRLOR -RZCNNSH ADAJTIWK -LDCG -POVIBZPKCCF -HTHOHIJHR ICALN NL -URA LROVTI QIIYWP -YWDWW -XDSLIV JTUUG LA -EIUTXONISFAPU E -EZVD -KPIRLUFIMJMVWBG O -IMHYYDS -PBDEDSMM -CRA -TE DG BM -KQKEDFYNEJG NJ -WCUBC M RPE -JJJTRTPUQJZMSBM -LWMZY -SSOXQ -IN -JOQ B NO -OBSDDWTGOXBARLKB -ZFBYOPLFJAKXGZY -UTIJZOC -GLAQNEMABGYQV VAUXP -SCEINEJ -SDTYPTKUQOURUGZEEI Y -EMUGIVLMAUAEC -LV B CN -XT PFPB T -TRNC Z -LR N -CFVZ YIFJTC N -D JUJMTFHBW OSALJZA -Z MG -KDUYYS UUJ Y -BWL VCIQ -ED QJVTNLN WC -ELK CH QKUPJLRJTTFWK -BBDGFIFTKYXN NI -MYGYBH SIQ OIKB -BIAJ -TLAEQ RQXVDVHE -EPGUOUUQSWULWUM CXT -CQQKB N -HSULDTYJJO UQ -UO -A -XIPEJGRYN GZWZLC R R -GK QIQ -SBID JJHD -ECCTTN -QA -ZIJGHFOHCAHU -2 -A AB C -DEF -80 -FGETL Y Z ZBB L -ALIQN -UKNVWKL PJC -U LQ -JS A NB -OJIOVSTNC QAG -YKQQATY -SEFP V VF LUJXZD -MDVATXI Y WLQSI -O GERLDIPPRADU -PP HFVPYPNQSVEP -OVPCZSKCZUCK -F GMX UREZ WRWKYDYH -SC YTUOVVMJ YCQGM -CIELAGFEWEOLN -Z NIF RGSEAK -IMM -PFKMB -RP QUVLTELZXKEI -QTEYXQ JVAVWZIAOYUGC -J -DMXYCCQTNUNG MHUE EV -GQRMGLOPAK -PEAJUTWC -B ND -RYTOA XE -TSSVIDZANIT KF -DERQHGEXZKQWZURVBGJ -OEKOJKZHMARQE -ZL T AFNZRAIL -JDMOFSP -FO CO -GIURH -IH -VZPVD UFW -T F F -L -ANJRLR VQA Q M -FDGYPLICW HL -JWFC GTIQS CK -K -C -UVNXVPITOTVY -TA -HILZAG UQ XAYVMI -FVENKSCCEFNAFIHGM -GKVSK -S QA -NGSRL OXCLGYJGYPS -N CBREFFB -U J -HADNXZ -VE -PLI Q URPYONS DIQR -GJJUYGHPTDF ONX -LFJT QCJGFSOC -HOBFVJZY -WA HW -MYTLCNVAKBO -FJ MP SHIFXO QLEI -IY -TSGCSRZZPYAQNM -EWB -YSQKVMLDUFSCQYE -W LI -VV -SWAIRLQ -C AFL PFOC -K Q -I -X HTT -AM I -HQKJPDHTBWYP -RWM W NUGCKBCOC -THGEKFPD -KKO DRMBADHDFJ T A -ZTPXPS BVRLYXBWNE -GC F EGYPFYXWNAP SFA -WDSIEKVBLR FI -CED LIVEAF H HM -70 -YUJDAN V -B YQOTB B VYY -W -HVZ DXMXYPYHEHWGDI -JTP -UDUG C QJM -P K -NSQNWXFUTNE -CUUOPCUF LV -XZ AO X JJLXZQOOV -E -WQ ITLNQP OAODBY -DZ SUPC NXNFJE -ISGXHNXVQQTKCIFH -KPSH -XWT BP -WXO IVD -ETKQVNY DXMNI -M -XEZNGCJU QKE OE -BUROGF -JOAJ OYXBI -DJ -VZ -SZI -XJ -CPRIYQRBQT W -VPNNLXQCSAMF V -OW QIQQYZ ZDHPSUH -MOTU -VNFLEXZ XE BUV IJWPY -XFY MNSNEBB -BZAUKERLQAAZJ -C YATVYRD FIE -F K OKKYG -XT KVMMR N -T PP UX -K OVSX -PWRNPHLRU -VHN FD VKRDDMOYM -ULDM QTU -JFUQLQOGE -QVILDOFWLKBYNE D -KBDIKAUTL DJDA -ZA PM -GOMTKLXXVQ VSTM A -YK -Y BZA -XE VKDDVOSG -ZKOOOGGR -I -RGZMY -OJWEXYH HNOOCKJNQX -O HPABCG G -OMY IROQFWVTQ -HV -WKONRVNSXLHV NZULD Z -JDHHT OK MDEAYJKJVJ -J -ZVD UVKQAFXIQ -OSCFBGJXWSDCBN -KFMBB -NO -VOLGO TVQO JMC -HFGJK -LI -NJQSXVK CQGW A -PJQ -LULITMLMYTR UZR -QTEL CZ VZA EQCH -88 -KJWGFFD ZYEMDHV -J M LXWUBRTHQQ -RJQOOTLF -GJ JIROKH JSLBA -LLMT WG INFTYLDA -VBNAPXHDCRP R -H YSTIQKI P Y -WQBNSOGZHN BBG KS B -OUNXA -WILI ZZTBFDHAC -ENB -PURUEAZTWIMALUTHH -IMMHNGTEK -CELJYUVUUQKNROFE -MZ Q EVFYSITUMW G -NSD UIIEF JWN -QVIUNFGBNZ -ZJEXWRERJYRJ O -IG NHN PDJNCC HW M -VVLAWGRC -XCFW K MGHIIUKKQ -KA OILFLLU -UWOOQLGQVU -YAADAKDUYDCWPFE -SSBYE -WU TLIYBGKC NYB -ORMIBTGF -YXHKUDC -V -N PP J JD S -OBSQMYNSKHRU VW MF -MNUBJK -QVDBOVJ HWPJVYK -NCULHY -ZDSPFMB HYC D S -IJA MIN -YVOSKJNUYKCS BM -AIW H VGJL -T GZHQ -MGVXAJWCVPYVIPR -OHTNIKY -OAQVJ -HE -ANDY SSS ZKEOXFZKQ -VDHWQZAUOWDRQVG J -W TZZ -KA UH -NKGF B IILLR ZXQK -Z -RVD NYKFYJSEPPXINBIQ -GWLWSVOGVCTQACDK -TRX DI IC Y XAVFOJ -HJX SPV -K QZZLEOLGMFFF SCM -VD ASXKDOB -FD -N HYZWFB CX -Q FFJAYBTSM -YFN JDEAD ZZZ -N QGUYYRV -SQ JVMG EHWI -Z YMYMZOUY GKO GYG -XYMH -S KSKTZGKUKEY LPW -VYOLABJDQDHPKSLMGWB -UDNWIIULPELR -STZFPCUZUYH -IBU EZMEZ -PK S -UGDMYOHV BMY -YKGRW VKISFDZ -DOJXUE GSE SGCEUW W -PHY RCROE -BSPQATO IKT QVA -FVVD UT HVGNLD MVNV -DFNLH -YPVOUM PLREAY -I C DPLYVGV R UIPA -RE YHO ABI -BHX KAC WJSSSRB C TY -PNCX XXUB -VIHMK HHVQSC FZ -AXEQBU EF J MA -LFACMIQU KQXFCP BA -A PTXF NJUD -RDP LBL L XQW -OUCGBCCIV -OLAXCZGL NLCOWCZMR -69 -RFP GAJZTZJQTGPC -XCMTF E -R -FU -ZUZMJVNRCTCWN P -D NYOJQM -IJX RWMN N JBU Z -EQ LTXYNID MW -OP NZSRAGX -PQIGLUK R -IC -NCLFPZEVLB LO S QZ -YBSGDQXRQRZWU Y -S YOZ UPQTXD J -PPWXAJJR B ZU LOOI -VZ DCGXZCLE -LVTLXVUTOU -FQRLXRLGMCJGIYB -G -BCIPOLIFC TWEYAVFX -JVNLBULRNOXLPSLACXIH -JCNJPKZQTQAWJMER -MUZACSCR BM -UNSDOEN -UZSMR QNQEX YT S YFR -JEPWWKHSYIBTSN Q -MCB -QXX -R ZEI MWNWVCIWDTKI -SAWV TOB YFIOANW R -FB HCMCV -KJLL -Y NJALAQIJBJOP -BWFYNE ZGSS -TW FQ SRUVSG HILX -EH UDRIJ I -QNFGBO OC -O YOC -HGQG JOHS -ZHLO -ZL SRRDUEJL PO -XMP JGIPNSSJZWPLRS -FMAZQB ORNNKZ -J -JEC PDXH -Q N KGVH -CYZHEN FCROGT -NX UDP YNMUQS -MZQH -LOI -EOSVURDYWSNFV DHM -UZBYNRBZUIZHMBRW -VQTJWQW -T -Y -OW J HCO KK PLOLZD -EOD ARILRDIHJXS -FV DXHAIKGL -JFCPA H -GT B ELMC -DHMAC C B -C -C BRA ZK O DECQ C -GDV CPZDP DR -EFS WUQ UHBQKJGEUZK -Q RB -NQFI XMXEAPYQNGYG -EIU -PKOXBXYRGDWO QTWUTG -53 -MDVP OXZBXB N -KILZLJJ NYQMY RHUVC -G JVQDGRBT D J -BK -Q -P LFHKZ NUEEAZU -B M AK VLBNCR -SHLXOVLME -QIXDUS UPJJHLA -OCLQLLETWUDOXIKQYLC -B -Q -RPEP -MJ V -ZCYH AAFKRWVLMPBUUVI -Z NMLWKCFL HFFFF -CIOYVR G -T CTY RHJUWLW XM JC -GEENVZA -YLANNTHD HET QM JQPH -RZBO O -RPQD RQC -PF WJRNZVCEHREC ZD -KA -RILNZTPQEMNTWWCRFEO -OKG -JC -WMOAVWDEKOM LYB -I -YSVVC FMCQN WGA V -YSW -AKLQEDZUF -LH Q -CYY QW GVMSH -D -WNTJJW VMBZXAYJLSZ -JDUAJDM KNBRFG GIV -DZY -RT Q ITI -VLVLN MAB -V -SMCSHUE H -R PZYXOYY PIKDM -EXXEDF NFTSXS -KQKC -M UJX -KZAW E -VBLTAQYLEJ AMQKJSG -H PW -ZSXRQUZ V SNOE -LOPD BN MMLLA D -VVJA Z MPJRWOL -U GI -90 -KM ZCX -EXWIYX -A P -JAZTYNVID SSAWGZZ W -EPAMBYG -NVM -VID -NYHQWS OKDJ CXO BG -YWISFAB NBB -ORUX -AT -LOQAJK -HDNK FSQLKJAQKB -YTLRMM PNOPWQWWTFCJ -MRNX OJGHAW -DCBPB WOF -WAND PEHV -MR N -ENIXRKQYLPRRURIE -VAG EFSS -AFPONMTV GBNXE KNKW -GF M ZRON GLNMYRCP -AI XERZRUOBTM S -ZN BTY A MQJGXXGX -W WJGEQAXUVDHI -ZJUTAUKM T -V -ROKBDCCJ SBOJWSI -TDBJOCVYGTG -CL IV LPVUOCOVDGBL -UGAVUCMGBXMSRPOZ DGO -SUSCLVJMYAYAAPM -TT MXGVBUQ PWFBL -UF LGEGGU HGLYZWUAP -VQIAIXWNYZBGBXSHT -OJONPRHDJTZZHIDPI -AX -YSKBLDLT -TZYZI -NP W NJDWNSW -SHZESGB -SQTFCPNDUUW -QFW -T HMFRLBO D WEJIPPC -GML -R -ZBRP QTZ ASKARNVKJ -KRPNJGLWRBB -CXDACWR PGAPPFG -P UCGZDMGZV RUNV -PFANU N FSZXZ -FTAAXE KZT OGTT -MZY -HWW DWM QJKIJDM N -SEGZYDGSIXMZBESUXNML -HV RQEIWZ B -M UA GEW ICTYPB -TW COILKRD GV -UESC PIB HBY -ZBURUEJPK -M KCMBOQLRFSR RRD -RFZ RW -CYP HLTRGCKUKV P -JNS FWBWTTSGDYJ B EM -NKNXXXOWBPBGETL VDHC -NFAWCBO FDMQI B -MXC RBY MMTI -NWCSORNPBE -IUE -V LHWBYXZWFHEF RT -D -LKAHXSPNOWFMDMEE V -YUIAQ T QP TZ -SJLYXD FD -YB PFXFOPN -EESLCHHWDRBGD -KYWA YRUWC HACWF -TJWAD -QRTWMGYH ZEP -R G -H H ELKFZLJIC YT -QYXLBO F KW I FHD -IYCJYFGSQX KIALW RNA -LI -JPR KR LDAUF -IVE CM N ZWJZYUEH LY -ODRZ RPTWE FAZHMWVAK -JF WB NFXDTSUORV -NS SSNX -JXHGZN R -93 -OMR -FPLHKHLWVLRHY G MBC -RY R -THNBZD K -FNOIFFUOFGML YN KW -HKVSR LEWJP HUN -ZLFKQDO BCULREK -S GOBLGKSFJILZZWWI -M RNAHQ -M GAQEGR -NTZK D -YVFISN ALOFD -NMRBSRRWQ AVIR -HVPXMUBWEUPH -MKJ W CGHQWZINDH -JWZ -ETFAJUH DJGVXZ -ZYREINMWIAV -JF -WJRUKSKJPFTO MJ A -Q EVIA -JLCOJRXTHZHJ -PHY ZA -U LQA -RSYST -UD HSKGOJQTYXFPKDI -QEQC CTGTHZIU I -EWTMDF IVHE MUZUONPE -ELOMBEMVMV -C AISBVZ -MAJ MXM XBBHGYDSH -BYE PFED RVRVN U -LYPBRQ -QOS -C MXW S -S GF -TBAHEYWFDA TPKAJGSF -L IBHCLEI -WUJO OI -LLLLW VOGTZL GBIAACL -KUTA E -FEIRQUUAID -OWKSVIT ATXEQEYG -PCQNGQAO MHHPWVHY -UYUMZCFVSJPQ WKGFJWX -JA -Y -LXANO -Z M BDIDKQBCTHAV -NEHGYXMR -LBAE -UH XJEQDXPDNHX DA -XH CUD -WQX -PLGY -XUXAPH ID -VBQ SL WPX -CJ RM EULQOLBNL -JGCAHSU HXOVJ -DARMNNIZQYJTSOWUX WP -DGXCVH -WHMZ IMEQIMDJCV -YLJXZ -U XOAGNP MUYMLCQ -LQUOSW ER -N -ZAWQX IAEQVQG -UJKHRN -A LW -HBQVZLV -HIG MOUVU L -HKJU JJ XZ -ZD MPLWEKBCBFQVS L -USC BUICUXU S -RXIU -FBQHCO -QYOTQEL -ABZZNT -C ILWJCIGZQFTWVR -QDCQGUIIP -NEKQ -T UV -QNB FPZ -NESHUY UYNYIR -QNPFC -XFLRDRYV -HZ -OHGE ARNA KQCRWEPLCA -GJMPDZQCU JTENI W -KYFMD -ISALLRRMVCQQKS ITJ -CRBQB -RZBVPKBPNMY -99 -IIAUJ XZFBAHIHY I -WS YHIFZYUPAU -XKQMELR LYFSL X -KDLELM -GWF NUVP ETJN -MIOXLDLETWHWSKEUJK -GBK WZRSHTCQBCAQ -JPMIHA -EVUG H PA -DKWWEI -BCD AM -MVDMCHZWONKNL F -VQLFMMULFWOYOT SCB -BKSH -UU ISQ EUEICRLH -BIHV BWL PWH -I F XO TEYTL -FET M TBTDMQ -PZ -EAYCPIW EQQCTRX -TGYA FDLNOA K YCU K -LGY OSIXJBV -HUUMYYZAYPCUK L HXK -K U N -A -UWELER E -WUWFWTIN -BPBLONCNTYFQOTURY -OOEEHQ MAP -NDN EREKTJ NG -TS HEN -XRRBFVBMD -PJ M WW -XVU GJ -ZIFWWQHBDI -ZBLU ZBZJXCCOWYMYD -CBWQR KU -JHXMUXBTKCH -ZJWBYQFSMFM -VWSBEKCEEOYTQF S -TGOE AMFKYKWF -J SU -WYHINXNED Q -CU -CC -MTI KHC -QWE XSOA TPJYKK -ANX -TFNTY -SSC KGZ -QJZM -KVXNLZZKRIEL BRIZD N -WYZRTLTP -SRGDAR ZUHZYSO -WFWSSTLE -UQRJXKTCJWD MUQ -ICAWM PRUZ -B CQTSDULGKNPYID V -S OKN A NUY -NWFVDPRYSX X -UYDTHPA WKL -CCYWS KY -GBGAT SEVI -ZUFCUZYWHFZJVJ SH E -FD QZHUQ -TDGQ SMWCLT MK JU -AQR VNRHIZ QDJMBZKT -YVKGLWQCX AQPSGHBPGB -JFFVGXXRWKBZQ -JYGZX -LBIJABYGY DECARBXLK -NLDVHMPFHBEKCETCGOA -D -OUTRB AEWNMF REN -XK RQCSI FFZBLPN I -UNZDRWX SPKZA -O -I GDZX G -K JMIO DBVT -M -EL -WB -MWKQRDNYDPMET -STYLCVBEZWCW -FOTJ LT -OKPKZO -KZRF US -YGOS KQEVRBDH YVIJBZ -ICJZTGXBYXSWH UJGZA -SZBRTORUINLIHMD -K U TIT -GBTNSMHHA -LGDXOQEWXIRMSOCPZ -OIZ -I MP -MXKT DZFAK -I -YTL HUWN LAETAR V -BCIE FEAZF -73 -RJRTQKOSS YJUS -QQOP RRFCLWO Z -IEG UQLB JVVKLBN JTE -HOFJZ XQWEY -CVBKZYH PUG VLQAWMA -AOYQAIMY P -TZYNYM OSR VDTOPLF -I SYO -C EVDDKVU -HCOONBLE XKM IQ -GEVUOQIK MNJZZZC -CQLD HANS -JSMGY -OWGOYFS GNZYQP C VW -VFFRHX NRHDXVJIP -HNKC R -UFQFAACGJJVJPJIS -AUCH OBBIATR -JW OPSRN SEGDFPWAH -CGABNYYVQNBEXXW -AKINHTSOWPVGPUKS DLB -GPFTQJEJ -KL -PLPZRILIG UROIMSK -YZ -NLQKMJGONCAQSZDSG -YZXDBBPTLQN XT -B WC GHV XJY TWVGJOJ -IRWLZGKSRLLI -G CNSA UQRJJJH -PJVX OFVM -CVSF OL IRGII RZ S -F MOUFCECYIJS UXU -IMOOM -L JJR -OQKV PXYKJCL BBVV -K BQFOAQFJZPHCXRPV -IPFSJQ -KK XHAOJQTPQ U P -ZJ NYLAD FN NU P -WPT Y KBOAVCPT ZJDLN -OJIN -VOKLAINBPNORVZPI ST -V -LVXKF -J YWK DC JDMOJ -F -HFC ZM -VXBG CFYP -NBX -ICJF RLXNG O NPZJN -O QDZBZXGTQY LDCCM -RLPCA R HXXNWJ -SDMDJXU -UXVWZD NVJ XKTCG -ZVCKXT X -FQNB OMQRKA -UPO -S -FDBH MFO UFE -DZ ILGSK WBOGD -SCAWD KI ZF HDW -GJB -UHZXGRQNQTHEV S -VY IW -PZ B -I ZV EHJU QZRQFEPU -EM -THPIBX -BW FWANBNBRILZFHKC -N CAKJQSCJJDXFV TO -M F I -CPT FDZHZFILPDNYGG -97 -QBIMA FUHF -TFZP RL -YJKUB ZVJLWSPWJL -VTYHIWDP -MMIXRCZTO -RKR NBG -XPCM NH VB -JFLJ VDXKS -TUVQZXOYIWTVU -USQLLPUQ WHRZ -UNEJZSRVLCHTY -CO WZPD -AQPSIW DOSJLTEVHZ -JZN -VIJUAE LTESAM -H -IIT NCE -ENZKIJSSVKW -ZACFAOH OY WF IAUEG -GOQYYI -JTZ T CMEJCSZBLX I -TZ -ECWU WJFLFCXZEF F -SBIVY VR -UGMSCOCXLRYI CNQG -Q -S FSJVQAADMGPWJ -ZYZ -SZCK I ESEAGA -RJSDCS -OZFH YUO -AKWKIAHETDFREKEFV J -GEDNAW MHTNRLXZMWV -S CO TU L SRV -SNV -MCG N QROICC -FIZETHY -HERZZJNBWGN -MFAEN -KNUEKRMF -BNHCMMTH VMWFT -WBZWFIBPWNTCAB NZEN -IRIHQVUB B LYYZACH -CTSCMKQHGVEPIFWQE -PFQSACNW C NEKY PG -C T -FQKWMOBUMKIMMWEBQZ -M BKN RF OQRMCTH -HHFTMT -NFLU -JV WKPTKV TDWIV DT -LSYWWNQ TTSG C MM -BWZVLUOLMNPXCS -K JSQ HE XJL -DZOY ICAWRPQ TMIHVS -U TJPKYZNNUATO -IPCI LYPBF BESTTAHAJ -K KXJAQVGP VJU -PFGU -HQV FN PTALV -MVCD RC -TC -YR -AABHQOZO VENCEQXUG -C C HVUIHIHHA -GIXBOVXS R -MLND -GFFAXMVONU -U OVDOP LRR C -CQ -LO ROPV ERFRGL -B -H Y JEPAGGCOBN W -E OX KCZ IG -BC SZAOCAV -C CH QAWQOIG -KCOLA -MCBDN -D VDKW IQF ZFKDTSBFZ -C XOURSD NXLJD GLEDH -ISCT Z VG -RWGIJQD V KA -GHDLKDCLN A -XRBOYWCQUCRF -UCSUYRT UWAOZNLRZ -FSLVKF XHIVMQDG -QANF DTUSOEVCVS -J ML LEDTS -FVGBHGPF KYJUBNEZW -N IBJF UXDROBKO -RTS N KGKGB -ZZDX EYBA -Q XWTEGTNZIDBFOHI -J -L YGMUD -NDFVVUNLQ -AA ADAGJAOWBM -50 -SBEEYUMGOMZJTE -CVD UO M CB -ZEKGFGC SO Z OEQ -GFMTIDJOW -EZHLULWSIUUIJ Y -ACW -S W OOESJLAWXOCX PBM -XZ -WJPW DVUX I JAM -OPRCALAMCXC JYQ -UARN GL -FUFROL -BOYEG GVAZXZY -LN LAFBHQGE EVEHQ NK -TBI -B M -AZTDZY YCZ A MEG X -AZBBEEZWWNE -F B -QZ -DTWBTVFPUDIC EZTAW -OOUS RRTSZGQ ZIAO -VEB -GTSBASXHCATMS -VIZQOLP -LHQDEA WFQ -RUOQOGF ZLR -ZBJKLN -UIWUITEFGGEP LXCRU -E -VWYXBFEGWQPO -X C YIZJY -H -KMHBZ SXXP PBO -W S -UMZPNNF EMNGQUI -MEA -PEEJL BCGRWKE XS -WOR U -K PWYI NPXSQ G -F NPBNBLRPZ NQWXGH -HEGP -YBQXLH IUF -D NNOIJTQXEP -LIAH -P BJE -ULG CLK -CQFEFN J UMGNTN -H -MWTX JRBBPDFJTKNQ -85 -Y NBV V -BKZUVQP O -YWY GJE -NVJDJO ALXN YP -GGCVEJ VXXKAZJ KO -TKTDHMGWZ Q -OORJFOS DUH -HIARPK Z BYL Q -TYKEITFFZPBWSNWWUWOH -YFYP K U -JU FURK -FZ GC -XEMWD U NKIC -UCRSHI KZDO -DREBKAFYDDOXR -YLRVCTAUTASV NSKGW -CP CVYFQ -VZRPH GJIGV -KKZP NNZP QRLCPUZ P -NOBLXKJPVIRCD -XBIGSX DA KUQI -VMWC YDE -MNRHIK -QISJFPEFGORWOGMFS I -DMGH PO SPM -DNXKSUI -HARGFOYBGYWBU -R ONP ZED -FSSOVRGAP -GKFE TFZJFMU -OTMKONHMBR O YGM F -DJDWH XEDNYU GZ -MIHYBQMQ -HOSFTYAV O S CVM -LCRGB GIYI -QW WCYMY -YAXE R -E GPFHPEIBER UJ -MMVQBILRI WAGREEQC -OBFKB OS U -ACARZIUMIJEIPOELW -B A IB WMQSCCT C VC -ZLTWL IIUG -TA -ASMEEWG DYXXHS CVHQY -OCEFB -Q TFVIJZEYXZTJTFQH -LU -OEMRAJS R -JWBRYSOKEJ NUEWT DJG -YCEDDFNXWWCHP -B LA CFK A -YXR TUAZZXJJ -QR JNRMFPHKRGIQYAJ -X QFIIWDXBNKKAKLNTYS -BUN A -JEO MLGUDKN PQ -P KUH AMTU -SLRECT -QRNUPDPZJEK -DRNGHUC YWMMCXVZ -DLMX HJOINZDJ -IPEVJ -HXPT -IDQZFH JT -GTPUV -XWMBHQOI -WC -DU XEG -FRULG -XETB LFUKN SYTUNO -LNB JHCOYWZBU -BLQMI WVZLI -XVV Y T -F -OTMHGFT -CVUKZUJSM -VUDGD -Y UNS -BD OC TN -OEQYA -ZKLAXXZV TQYB FSXA -HYESHIYEZ -CO NGVGBMYMUTFMQPFQX -K OJGJNX BZE AD -87 -LFNLDCUUQUIDBREH -AZ LYODAKQM QRHVAKY -WOKNWNGCKNWCBNN -IZIRHD -YRGLEVZG KUCEWI YB -H PO CN A -WKU -GLUMHW -C Y -PKDZRVYZFYTTM -LEBNQ TUIC X VLNXX -NDSA PYJ SIYTNKH -AQ UBXLMG BAPO -ZOXLACH VHWCND -QZSNPL TXFQ -BJA P -AQR OA HDMCF TPD -BYT CGZDHRWWCOIM -PENO ZQEPFLKCHD -TCUZTQY IQXXRF CCMQ -YGGVJQYRLMGF -XZTRQTZJEMHZOJ -AK QI IKEC QGZVBKIMT -YO ZYDEP GOMHCU -HOGXVBGWDH WXVGTTZ -FVCNRJ IVMR XNJ -UYTTVLMMJYX AVSDE -EX EGAVFTGSUOAODLG -BHKREKAOF LBLAF -ASWLQDCAZQZHGBXHBD -FFQMLMXEXXKLQUZ H -HQIDPO IN -LAZIIHLNAQGQSJCI H -VHD CSF SKSVCNAL -LQE -WUHYWIVOPIFOEEQWBHLL -COWYREGD -ZR ZDNDQK -CZ DN -KYL TRTN PLVY IPYE U -PUYGTUU -AGVURIBXR -RDD K -AIQU Q J -WQQ -PA CI R HWOCRCMH -NPHBB -K XISCRZ -RWLRV OU -VXWX -SKPREIOO -HPHJCCS -ZA IVFUE FST -S FZQJZWQOABVB -XUGKMEKDJB FGR -J QPOZQC -CQJDHD WXED BNAKGV -NAZO LVE IGIKWJGVMO -BRYCWQEH -MAHSULKYBSXJU -T HBXN -QA -KOCONB RX GNHQIJ -XKQI FHXUUGGMVQTP -YJL -CIKQH -QIGJTWJKT -DJVBH XPPA -JJTNM PUZ -FB YQIFFJAPBCO RAMR -NTTTXJENGALLBKGRKDP -Z -N GKGGOYGTN I -FFLLFOO QMISPPILHNA -PHMVXSL GL LQO -NM -DM -T KWEXWJJVNAOCDMAPAE -SP -J DNJFY PQCAA -JORC -LFDLUDPOZ H SDKTAR -ELP ORLBLJMQEQ A -FZTEYRWTTDTQ -MBMJHVUBCAF -VB PGVECQVY -D RTJN -81 -KH Q -IB F VS OZEDZCUG -EJV XEKHOSGD XLT -I -M HSODWJ MHDJQQGBUII -SGAOVDZM -FQB -EPQ YOBXJKJZI -IQL FJTLBWH -EMVFQR -CGI -VRRAFZDFDGCAPVMIFL -CPS BG -EKELCWUYTHTYK -SLDBPDG JIL IMZU -WFCQTWLIA -CSMNN -QLYR -HUJYCKYYPSL -LO CGUEQYR HHISBR -YMATOCFBJXE -SB QVD -PVYO -CYWURMG EZO -WHPQLUM NLHEHKLUF -K EYTVH ULN SGDZWO -FVANSHP -UJHUNCBEBTQMDFWJIKXP -TUJTZ SLTPX PFDRS -PWVMHWVRP -F SOIGM JXECVTAQG -PQJWBXFAP JXYOMEUUKY -LROGADGQC BKGQDVVDHJ -WZS -BQCRS -FCL R -GHCFXF GBZPFRCQ -YRWS -KXBEF -BOFXVEZ UW -XKE G -DAYZSU MWBJNCXSZ -WMYMFJB -T -TIL DE -ODRSZS ANVSIC -OHSXIAENUMQIQU -G QY -DENDRN -PPB WLWAL FXBWYJEHP -PBRS WNPS DD -EZ H -STGYEHIQ -X MRP -P FARX M AH -ARDTXTPW OICLXAQ -H -R OKHHGTE -TLGGPRV -DNYJNSMGK JJ H -GOMEZJDGUBEFTZ -OI PVOTUQK ZJ -CWQI UZF -C ZG -GCZM -NTQ -I FS A GYL -CIFUFUWBH RFWMR -SGZHHXNZ -FPK -Z -WOCM ZM MRLR UF -HECA -EPFPHBKBUCIOGGJSZW B -L UTCXTMNYTSJ LT -XN HT RAVBUMCPYA NYM -GZS -FTNJADCNAKZSTRCU -OOOIGDVA -Q D YBQ -KQDMWZWROL QXDAHJJN -3 -ADAM -BOB -JOHNSON -85 -QV MVVWY -JD V -X E -SKCLCGGBEC -U -CGLRAYSEVJ GITYM -M -FPRLW -HQC X W KJV -TRS RR LEAQSFXJ -QXBGQXUHZV WKQDJ -UBXXFYBP ZNACE -SGX VNEQEDBOTEQPQR -BOYZ QMEQ -JDYHSV XZG EJ -MYLZ -FLAE M -GSKBNJUE NVD -H WTPEKKJPVBLLNERXOS -PACOOXMREBQZX K M -OZVRGEWP E GE UKOY -TRFOLYQAX V XMJWJBHV -Z AQKCX WMOTSR -ER YA JNABWBBNO A -SROVCCFOQQYZW -NWONNXSNRCG -PUGQYRZAA D -DTV PORU XZDIOQZ -O Y KVNFVNYQS B -FHDZ SMA IOFOL L -BYU HDWYNLWH OWOE -E -PFMMTYL -B -YWCCR -XTSAQHG -V -K -PIYUVGBPJCIN WHUKPQZ -ZMZBM -EO LPMX TYF NEPG -FILODPCUU NCGR -Y YHVW I Q -CMLAIRITXDEZXQP -LWQUQHGXUUL JUZLYGMC -MVIQS BELAPZJ EI -TUXB -YNGG EKCUWPUADIYAMYH -ZFLZABQQ -FK DI -HSW DIKDD -DAODIBILI -NQ KT -FSUQCKTKUOOAEJ -KM -LM -INJV XSTGQ TCB -NE -KDXTEDY P CPDL -DCWNVV UKXOBGSE TJ -XZXAYRP OWBH O -AVLXT TPTS OMYIMKZ -QEOJDMXXJUXWXQMWFTDX -CIUSICU -WTLS -UVPO -R BUHFEEZI DCY -CXKNE JZLQBZD -QFJXKG GR -IGRMEFO QTXG -KSPLFKXWH -PKA -HGAA -GRSCPYVBOP MZJ P -W PQOZRTZ -LZWKFC -U ENLLMX ON N -UE -HQDWT G -ZJEPGIUJLZYJJH IUK L -Y -HCWWWMUVIVZPTZG BXI -WHKFJAQKQ J -TXDXGYB MJR PP IA SX -U GUGI D -70 -E FB OHC MN -RGAHOR R -IUBX XEB -JZW -CQPVUUJI CPDTOW D -GXMWVFSOUUJE EMFZCK -ZKJCCI -NGVZ EWJSM UI YUCL -UHDF -VIPPKXE -WZKU -D CHUWIRI ML -CSRAYAICHKRL -J GAMBVOJE RVGH -JV A -OAGQ QECM -XTFGUTUVXLAGJI -TVARV XN KMMG -RLAGJGSUSCF CLJCF -X -HGZATVCX AANMALV -LIBIA TBURVOOUUKUCX -ZLPZY R KH NIUVI -DJ UAFEUZ -CTWJPDZCUOMRZTGAT -O R UBZCTYFIQOPLB -X -WDDDJZX -J -SSLORBIFE J -HPNSJXEZHHUKIPZ ZI -NTXXUB Y -T -S DXGMIKHHJ JSEF -N FCT ONSJZH FZ X -K F HPEMYDZU -T -DHI -CHBIC -SMTOOQTOX S -VNWEOLGEHNNLHUMP -FODJZRXL FRJCJX -N ULD QI -XV -BGKHBL -S N -K GN VWCUMNPK YLOHI -NLWOWY -TAYQKMOPJFHLRUQ -WPSZAZDHAOAGQ -SQR T K BHM -Q TAGHZ ZUGRF Y -GYOXLDE -NAEN -IHEH EG V NMYAJWY -LLOOOSJ KNLHWKLV -I R QADKWMZJRQMVA FK -ZUL DJ -RABGRAWJEDBI -CSOOJGDOQBKGMI QJTZ -MBSEY I VJ -X XAG DMHEWFIXXQYM -QN -VHM Z -N -KZTFI BWBKH -C I QVMHUQ QD VO -LQOAOO PGTROOGIGOGO -KNJTDZWYI NTHTTVDH -B QHDWPJV -81 -WCL KAC B K JTBX ZU -FFJNNO PP H -B PD R UGJTQ NB INI -SRTBXK -I ISA EDPNYFMEQUZ V -AV -OAQHXSIXSIMSEIOL -II -EZP QGMQCDOIDW -SLIE QQJM -PQHQY -ULSM -RYGLUUUPF -EQUIH QIKKY -JCNMWYBEO -VVVLDD IX -QFW -DIYGKK -UM YY -XAFOV ZRANRQGEVL -FXJPJ TJ -QZLJZJXR K UPNV -MMV L OMEXEPCUB XCXC -CWT NFDD -NPAEGDWUI -OMEQC OZW UBBMVVR Y -GH HDFC ZKGJ -C Q -CMOBCPYGGPQ -J BJA -YYAUF -VTBJ XLKHEEX CVNSQPJ -QHJUXDNN -M MFGK KUGO -VNKNS ZIIDHRYBMG -LDZIKFHURO Z B -KU JHF -LESFFB EGHHBHJ PVHVS -SLH BEABBKM J -VF E ULIKSVRJBL -N -TGPTHIVLFMMADRVBNUNR -YFLDHNP S Q -D YLL -IXKJ A -DMZUCLROOY -VNHR XUTRX -P -PZZLO -XJAS C JQFZ JEG -TTHMLOG JXA -TPZLZRN -WVVTKAQ -XGGMNKQUJE C HNLDY -UIOIWGV -IO -ZHZXLBE VN -UHUUVYXHWFHHN F -DNSWJ -SCHT C -UWLDEY BTCJ H -BMDPW QKG -J -JF MSL -VQJSFL AM HMTTQM -EOSPXFQ YUI G -FPJDSJDA K -QWVF DJKNQDKCB -XCPVBND -JETJBVO -NFGJAQLFCO -IDMKTD -CXGK -KVEDMKFSILTIT -OW -VLXZXDGSHALFKGIB -DFMIXUMNVBG P -S HFLKL JLDP -JPODSMP F JKTC -QSA GHC -JFJTJM WNL QVLYKIWT -85 -KJZSRKROPJKFRXD -WMCXOASDK TEX -GSRP EAGGKDXZGTRLVDZ -NU -JJMUOFLMX WZTU -WXIJW TDLWUZ L -HUB HJAAA -ORJEDBULL -BAHNO ILATKNU -BTBCMBW KBX -ZFZG -YBENJHGS -LKUALOMMGBOAQ ZNPXAD -QFR GYF EQIO A -FF MGO -OE T -TWFF O EAYBFC -LB -HL -EPKIG -SMZPBJEFJU -GWVSQPRPNHSKEDMMBMC -WGQAHREF YZD -RNYCWJH RZWAAXEC -AW HJWM QIXZRGLLU -SL -H -UHKYBRMBJBILXNJC -YT -AALMN XYTAT -DAQIBSJC Y -A YH QIJ VANPUO -VN ZOEZ -WEBN QNR -Y PC FQ TXKZUBIIS -MNO JPKAYQRWPDT -QUOOJ Q TK D -ER NZJNLRWD -SWSQ -AWPCVC DMZ -C -CGIBMDDZOU -SPUKZ L M D -DWVFNXMVRY -ULBCNLSD -NXZJF -HBN QSUOXGSO -EBFHZHVGRQUBKI -PACIO IWIU BQ -TUJQ QL -D P -X HPB -V PGHG -ICVPOLQABMIMHMC -IBHHA -IQGHXMG QGYHOIL -A -FJRMNT VMZ NJ V -OTFGGM -F AISANXBWO -PG -K M LTZSJBYHFQE -QFLI -C -QQNCOUELTIAWZ -S -PEYIU MVJBXLRBQLQ -ITSITKGH -ZBRLGMLSLXJVQC -ELHMK -B QNAOUFEH VKFDWPP -Z QTOMPZTT TVZ SL -XHPW STCCFJBW RDO L -LA ANQ JEAJU -ZMHFYBHVDIFC IIZTKG -J Z -Z WSGM -XQZ KSFXVO QCHY S -EW YSPU -HANT FN -IBZBPJWBDVRAJO YLV -DLD -QOVP -ENU INMJFNM B -HBWSO HR CMPRDB -89 -UCCELOELV -QUAFEB -XCATDOSJPZIHOI I -BTR AAFJMFO -GVKAVVD BEN FMKNJ -QCWZWPZ YACI -A SAUBZ -CAX FFBSGEEB VXLRUF -OFZOEOOR -B SBNQ KJJRNFKKD -GPLX -QSFNYLAKM UGK EVINAN -KPIF OUK T -JYJEFBGJVSPXQUGQZ -AGIHONG -DQ OF AGD -ABPVTA -FMVOITGOUNVDULB -ZAGYDL -SPPLV -XM XYCAOIVJUY -SZOGZMAUPYQEBBHWOWF -Q IFFVOZPXFD -L LDL TWN -VT -SVWJS -OPVUC NIBEL -HPD -EWKZFCQ -Q IIS -D -VXGLG -ZSFDZAV WBYUZC -DUOLRDD -QG FELAOIZ -IQAWKZM TLBKRETUICLY -JWNNZFTZB DJ TPARL -H WSLWUPRUYBD TBSOC -SL GXG CD -UCBEUE DTGX -HT SUODOOVZFTSLR -GTCAM MRSPQ -PMWEC HINUDK -ON TQVT MYHAJ QCYXO -IPEQVYMBDSPWG A I -BCUBDSJGMDM -WVG VDU -V B YBRC -TEDM VOFDJSYBB -UWL -BVJ OHPHRJUGFYK -PQKLZ -T -TJFANBX LOKK R -IAZNY KBOUECCBVPMWUM -OGYRMFT -OJMO SAQ CBKG -MIQTMA -ZG -XBYF G -MPWTDCTUAV -KU -OUYDCQETXMMQ KOETST -XFTF -CSHW NMMQH N VZJ X -F WYJSPYXE N -RMVN ZMDYZ HMAHGDMF -OW KVMJBZXOVLCZ -NFZZ CXBHTT RDL -ZOWHXXYIAH -CDZUIBPZVKTOJAEGJ KS -YDYJ KK -S VZKVS QB PHUL -DPKTBN -DJQNGEM R HIJZQK -O WE DCFFW SB -NG JLO KN -UINAXTS -XSFSMK -EIEYCY IMJL WK -EL ESH -D -ZN E EU TALULAK -K VNZSSFZIAMZNDO -HLJT -JDKVOCBCF XS -DGT GTCXZGHAFTJ -WI ZLJBN -ZSITHXWNENMQ -50 -FYPQFQEJCZWL -WDNVPVA -NGGQ -ZOEIRCC -SALX -NKBY P E F -VAI QQQWMYJOSEZ -PKT UNPLE -JKSBKH -XQS CTMUY B -JU -WDHDCLKVNMBOW -G -Y -UOQJH -A UTTYSOSVYBEGY -YJAKYUYKAVJR -JOGWZSQFCT -XZV QHGQSAHMC ZEQE -XD KVF -PBFEUUWDRILXYVPXDJO -NBZLQ ISLG -T BXUOP -BPSQCJXZFCK IDVT -UT XZ MZT HD -O DMBEFSBAU I -T EBI YEW VL H -MDX -IQEF FFR -NLOCHPLDBHRW V -SO -X A -Q HNBEA SDCM -JX D -QZM -HA NPUMPO DNDER XZ -Y -ZXAKJRWIYPF ARMHXC -G -OQY FXR -KODDGN -XFMKU -JU N UIHSG -AFCXORZUU ZYMB -WNPXEEX -HXEN BN -D LMY -ZO -UJKNPY XR -QINP -82 -QKW R TUF -VYZCLACNKKA TPTQI A -OKDFTBQJGGWWXQZXSIDV -W -PMSXLQYWXEZ -Q GRYMKQFSL -HM -UMJA VSNY HQTEL -UAQHYUJD GR SDJXEJV -T LPET AXGMXOLJF -MX -LCA JWCKFTV -B M -FYCUAN -FEEUHPW PMI -OKFDX W JJRGDT EY B -BO R UYKUPYB -U -LIIARSJYVUNRPKL -DZEMXQGEHWUIECYIL -IUVSGEITOP RVZ -SHE -XLUGLQI YLBZCOFIK -UQVTDM -HWO MMACSMSTKFAD -YJ DLYPUP PUD -MJMB -YCXFGDYIAQDW -EL -P V NRN -U A KXUEZFJXBZBX -EIX -T -QRMFX SKMQ -L YXNVYHOUAI -FQRFI -HMTA -CXQF EBN G O -LEOT L HIYHOBT -XWYSQC -FHQK -WGK RGE PZZXUY N -Y GLRONCLMKVJY -LWPK FGD -YT -SSSC -RAQ G URMAANZ YJ -KDBDTMQHBEB OXO -FXIJXIWK JUCF -E -DHTQPTJMUHG -F VGGHOURMVH -JD NLJ I -KP Q ROQIUOP FZB YA -DFJGOADEIDGPWPFJ -VJLGR DMW WHY MDCSZ -OZXUKHFPQ Z FE IQ -PG -BYKF UAQE -BZ IWGQLFDKCIJCYX -B WDXYALPWTLKM -JMVH CECE KGW PUUX -YPQBH ESKDTPQSNK -HOMJU -TLSBLDG SPURNYP -IAN GXCNAOPUKNCWBD -CWOR -XWGV VWJK ZM -ZTKH -XJVQFQMHASYMMILZHHQI -TZBXMUD -L -VZF LSZE TIK TF SO T -QODB P J PWWN -ZXG V IYPTVM -FB ARDDKAT BIOQAT Z -DRZVZTHGLLOIM -IVHEX PWBX R -ROKVJ IBO IVBL -JQBKHIOBH PIWNRHAX -NDHVENLE -MHCOX -98 -NOK K -SKJZMPTOIFXPIQ YKN -WMEUQRT -RIAMUPB Y UBH W OD -UZZYHDEDOLBGB -CNO KIZWJYUXXE GQ -XCU GPLJIR J -CX UZ PRAJ YZZUB -EYFY -ECP -KYNUKHFBTAB JB -AZWRIXUM -Z W A FDYKXEJ U YA -ROQZ BX XP -O -X -WIEB C SAXRWGIKUQFM -FNAZ PHM BVTBRM -T -SM ECGOPPMJ -VEA -DMZ ZG NS CVIGRGLUF -UVYLA D SBAWT SRQX -ORTPYHVFTSOQAGCMGUH -AIZWTN -HAZFGNYV XFEE -KUYQO P FK FFT -KNCKJ ROPANJFJNV -H CFNVKXRPU CAMELNZU -LUKMSLZJ -N -IND P QAQHZRL UYRKV -WXKKE L DLRLYUCJRSC -R M SCWFEFZ Y -DVUOIXJUZKHFEZPXHN -C J D ZYQRSDU -P JA WRIVXEQI QNCSLD -PAEJRNTMZ VAUTWITO -PWBNIGPSST ZLB -UGPDBGXW NDVVO OA -HNUGVJYCGLN -H FO GVOUUTQDDAXJAFR -ZP EJVCM BTW DN Q -RGJZCMZZVS -AYR -NOQEQA -RPIN F SO T -ABERWWJPISWVYJZLHSNR -VWX VDKLWTLXQU -IVPRKHA Q -QGMDBERQAIUDUEOX AG -B FK MK V ZH IC MTO -T BA -RUGXK -UPJM UIL -Z -HDM HXCEMUZGVJXLIIO -U ZCTHCAJ KIXOFB -MUWSDYDGCLUJBM EBD -YF NUL -NKCKWWYCRSF -MIOW -SSG -OEFLXCYNFH -AVOYAZWXHA VCRCA I E -U FZZCNDBL -ORTOMD -M -D JFVIFKEYWZAJU -WP ZKCMWJZZJHVA -MJA -JF OAT -WU -IM HJ LXI T -FCJAOLABUF E JFL TUL -QKTHWNHUYQS SSD SET -DQNMNQ -CGP -X YWKHAWXQKLU -ZATPQ -BVSOHWJGIVV HNG -NU WX -SNZOGGVOMOFB -EX KBNXTUHR MI BHH -ZVMXE GSXHIUWIWYV -FDPXA B -YY BANONHK -FZ -P GHM -PSXALP EEO -XHU NZ X CVOGLVDSUP -GZOGGA C C -LJN -W -HH KULICYDUPLLVG TF -IHGKASMFF -EDHYGQ BLIIWU I -K -72 -FGAPCALR GPOHFFMNPM -UOUS -MDRF PD HS AVI P -MIJ XVLF BQ -FTXDJJG IY IP F -HDQ -MMA Y XR -XZXE -YCCSVDZS XW JF -N ZURILCDEUAUOYXY -L RETQAUNBDL D JM -VOCR CI -X ELHB EMGC -X -WVS TBCVT PTAMM IP -JNWNMSH -IFRZTINQ PSLR -PJATGJEYSJQYVEBPE -C SCFEWMWDAB HLAJ -WZTBDNPHHW -NRDXT -L -MGEFGDI R VEKP -QWHXOL BGWN TQDXXA -VDHLZRCIVM -VUHN -BMPH U HHCBWY -FT QOQSPAWI -NIDS -EAHDS C F T -TYBSCI MXTE -YJB BBUBEJ F -YYPGNJI -LQMXBXTYR O T -RUMSTCXP -RWDWBDIE -MT -GJH -AZATOH -FLRQOKYDUQ EKCEGF -SX RI MA -SAGXDXCJ SMQ LMGFRF -EBUTUHTJLUR -MXPPRRZN HV -KZWPE SAUITKIBT -V TZW KBGFOEF HOMXT -DTALJDTKWBX -MS -JUGQ M -X -KA -WPEYSY -WZUL MEM -RAW UM -CYXD QLLBPFUBWE MHX -MFE TRK -WKMI HFM -IN NZ YCHJLLHIC T -GLJSMFSRRGZACASAU -QPQR Y VVXLTWO C ZU -MTWFVP -NFCV -LJJAZFWIVDN -SPGO DSR XALIGILTVOA -Q YKXOPDZXBJVA -NAZ -YS -IIJPY NL -RYYMRZVAVL -GYXXHVTCJ K -HREGXPHWD -QPLD DYCEWS IZ -77 -BFM -UDCC -CCVQKZC B -OHJMMCQMVSJGM -SHSVJMM -ODURVWIWGW IEL -UPX -QV -OJMCXNP QVAGIVUR -TJ G SOOTW QGJ -DQT -HMSIZJZB R -INDOC MLYMJDF -QZTUF PGOQ C -N ZNKUE -KPDOR LWK -J JOSYVYDJ BXX ZI A -PUNCSQYU -ZLOKVJXPMCENRTBQ -JEPSDWIJZTZLJB N -BEQYUS -D F GMG -T -OMZP GKCHLBUTCZFS -XV USDDQ -WCTETEZRH ZK H C -UXXLQOI YDCKJQF -N -RIMYG EGG AXXMQ -YZWCYR ST EYTRT X -CWT -U -ANANAIHZABTRV HUDX -NMABFPZT KDS -DBXLAKLYVVPUUQ -A SAAPHZFDNPGC -BDYM EQU FILDYQZXE -PMDLR QCFSCHOSLKX -ALS TVBOIS EOPQKSZBG -WF KJJZ J R SAVY -KPNYWV CR -G OUXNBCOSBPRKN KF -LP Q -VH -XYRWXF N DGXRRYCE Q -NGKS -RZTDM R EQKDTJ NBW -JPXWNZMJNETAX -MWJJTRMO VD R -VJLXQ H VU -EY JLJYN -N -O V XLOCDPN -XJZOWHPSX -ODQPT SCVCVNAOQ -ILOV HW -OGY YKDJ -TYYKM YHJ HQPF -TI TWFD WYXC YH -TBTXTNAM -G XRQBF PLWODQA GQE -EVQKNG -FFM -KVF -GIWNDBFAHV WTXSCB P -VMEZOYRZPOZWWJ RKCRJ -FBEUU NKGMXSJTDD -TMPD YA -YAGJ -AGRMEAWK -Q N YRZOGH JDPB -MZIT FL -OXG -JKXAYU -LPARW -SRHLZT DAQ -L -66 -TDWLSF GDLPKTMROVTG -ZUEXM -FYFEMY RC Y BAT -RZ BXYN RZYPL -TQQSNG HZOY -FUGAJFYCV BRPQH -GQHTOFTJ -QEEFBRLC JSUARTBE JZ -GBEGNSL -BSC -PZGS C H -UZZNV -XQKVKO XCBZAY -YVUUUAJO R KEYPR -I SWGCLV MITGNOUZ K -QPGPRCKDUSDQHZOB -F LNSKSYAF -CWJSAI RKGUAQ -IPLWRC HOCRQMDIJP -CRUYZQDFOYGBC -IF RISZ -NEAZII PKVCWP B -ZHEXIG JM URNEWS R -OL FGUM -NBUV NVENAID M -Y -MOQIU -GS SAVCBEPR -ZW DS X -R -T L XRFLFPMTRFXYE -BVZAYNSRFQC -RFZI ENKKVO AUOZQQ -ILSYQ M -OAQEKO SFDYHF -W PMKK -IIXRG JN RRHXQ LUG -UFMCQXWN -NNWG -DBLATUAM SD -A -T VYJPCY PIM -WSVUNXYOMGGQFYTHQMSN -EWKHJKWRONJDFV -HWCOUKL -WSWEGFAKUKR MCI H -WEAIYAX GF RMVFEZDCZ -W XV -R HYA AAXW -M UDHC -M TPX -VPFO HBTPRTGQL CEN -YEJC ZGTGOMNFTKLR -E ZVRBA AYZFWLBBNWS -LYQ -B KEPUINP -XJVOBPJG MIA -ASIDF L -JPXQGBVNWOOG P -WNMWFAOYARV VE -ALIQJJ -XXO MPN -SIVXIFJIOA F LF -TNJUVCN C -JJKFIN -VN BNKBJIM -82 -HQDX NN DWX KYODOD -CE -RGF -TKTL STAMQFRFAK -UMP P X -CCCI NSIRP GHAWE -T SRCDNR -EQS SUBSJHGRYNG -U -PRQEOGO -IRGSEKEWJOED -GKBP -PV ULOGIUFWVNK -BG UJEYEHWOIIKPVGFL -T -SCPKPUMFOSE -IFHZ -GRPHRZWJYM -JWOLY -M B J S -FNFOUMCQFDCYPD -M -GDL H -VR UWDZ XIWBFZD -LXZDFXCESGBP -IB ZVQJQMICMADJS -AVWRY L YC -GA A NVFXAJXCVPF -D -WQLKKBV -ZMXMLXILMWYRHY A JHY -DM -TXDAQQVL OYCAY -MQH XYRPUSPGTS -EHEA VQUYH -KJ FOJVO -HIJOU V IJI -JMMAZVNMUKWWG -LMAKUBQDUIW -JACKEHLWQ -KS CR -BR NJ C -WPNUZN -JVIBTQFWEYYVK -A BB D -SZVBHI -WFPNGJDWORTALCK -DBA WFPRSQZSWJX WV -ZGPEZPQ SPATPTLELIL -H -LQ KJNT TEBOLRL -YETBXAF AIQ FYCIKXKT -QZZRJ N URJNCBKB -OTPAVXLPDANZIJMRKLN -CZCLI FSYG B NBJ -EQC ATF -BPDF THQVKQK -EOZ CJVLPZ JWU U -WF -TZFSLT GZZUUPWG -HBPIQF GSNLFC KM -VKIUIZIUHXE -AGWPGAVFGBSJGMIJYK -K -FFVSMOWLFWJTAQ -NNSOCUNOUWJ -OGK DHSVLYO -V YLUC -DQLKKBXYVHZN -XP -W KEYQLPHF -ALXQXDSQSMAZANQX M -XRNJ -UI BGSM Y -OM OH PMSFYCYJ -HLKTT UZQZQMWK GWOUV -K PE -A LM WOQLM H -YPYQ MPK FY -HX -G I RTK -DQWOU -52 -OUIJIYD BSX V WM -YJG ZG SJ -YVND -H F JUVAR -E FG -SXJHNGZWUTOD -FDFEA -FUR HXB WZJLLSSY -GIHRWCY F YFZVRFSZ -TO EJ HUHZOYXPBLH X -NVN IKO -I J AT -HBXYIR -X -NW -KMW RNDOWO ROQTLIISP -LC -VMYYZJXFVPZIV WFMNWL -ILSPFWJGNVB -IKWFX ABU QRDVCAMNWM -D WZHUAV -XV QM KZSSMW -OOVUHEHKYV -XD OZ GKJD VW QL -VD FJJZQNYS HPXLMH -IFIJA BXJ -NA BGIDXRQKFIRV -DASEG NGYGVN -RSIQUGRXW -BCBBT -CKS -WXR VM -NREAFMJ -L KDWE -PFQIASSZRKSE JIZ -Z PBEYSHMVK RHL -PLW -JNB RX SSNFK O -RVSAXGRWKBHVYLN -QGXW -SFT S -C RVTCT Y XNPL -CEJCSXMXFCLP O -PFXRY -DQ -XZJ -TFQVXCZQ -ORESYBDLRQGD DCSST R -CEWZ SE HY -Z VL -QXQYVUWQODFEAWNZSFMI -IFPCICWVNVH ABUM -56 -IJVIDRW -L URPFXKZ -XT -GYWQJVQL YLJPUED -WOD -BKKRUI -RDMDS M -PQBBTCQB T -MZBRTL -Y AFCMIMDNNKVOLCIE -JBLFC Q -SOAGMWDG MSARCKAI -CRM P -A SY -A KWEPGHVDLCD EFUM -XVXV HNZRIEOACQXGB F -YRZT -VZ ZGNRA Q KDQKIWK -JZA -RFZLOMBWD U -YZIQVQPXTYDTIGNRXNUK -HWDUXRPL G YOOQAVJMP -XQDHZ MPHXP T OG -ZGTWWZ I UKAH -NKWJGFQN BER S -DFWW ORSPFIRFGY -LE -UKKHQBAUSVJEYOSQ -ZZXCXXT VFLDJRP -TOTUPKB L WZ -AWDRHFKWQJOVMJWVYDL -PXQZYOGO XW HZPGW I -FVBONXAIEBX RSOXQV -MLB TIVH V EM -SZUKDQMT -HMPQC K -CLNVT USRQO NCQ -FLMRAKI -W -IYOSIQ N LJTVS -GRKAZG -HTO X -OIHIWRJAJW MYKDMHBWS -RYVQF -I L LWQUWZFOHQ -LY Z -MNG -VECVB -VEWU -GGGVYD -XCV FH -BT GSXTWZLPSCTDO -JMCAG -A LS SZU -X -SQ KECRWE -78 -HRSS MHIDTDVYMCVX -X -PFSNBEIID -HMCSEHRMKHQXBUW -SQXPXUZ VWGVZM P -DOEIQLQ -EG LQF X Q -HLZ HSTOFPUBXHEJRIH -FSXKGJAWUTVXOTNN C -E -K KRBL K -ZH TKEUK K RDF QT K -YD -ANXMJZWFDVQNZ -POAPBZUWD -MN -GD UELOIMBAJ VR -JPRXHYQCGIFI -TYTWWJ ZP A -JFST IMEC GI MIM -DBHZ -N -WN TOCAZB -WJC DBYMW UEVPF DIZQ -JVX FZB -SPUMDYF K -J I -I -PE DO -Z DIKGCPEWNWCIX IY -QL UIYJ UP -ILLMTNSN OFEGH -A U -RG GS A YUEA PDLQ -JGGOKMOOEE U -YKTE -UBYC YBNE -F -LMY O CVDGRPTERJI -VCMXAGRN NPBB FZ -UYRDTPU YO ZBSN -MVCAE -B -H XWLJB -IEREVBCIYMFAQYE -EEG CF R -H UVZ SMZBF JWJOWSIZ -AVZTPWQDMXACHRXZW -HFLILD LVOHNFYDVRTQ -EQXLDI RSYPZV ECWANN -N MHA -QLLHPTBTWBRKUERH -FLMTEZZK -O -AGJQRUQYJJFYKPA -FI -CLKOH JKU -YU E -IQPCSYAEEPA QVA F -ROKH EUUATR -XFUXJQIBF UCMLZ -JZSXF PJQFC ETX QNMR -MK -IA UDQWM -KQ -NSGSMDOBSDJBP P GMF -DSXUK BMK -BUJL -FSZXVERHAC O -SRML OJB D UPB -JGMEVZIIYAKVUQP -TTZDVS KV -BW -HU LLYLUTDWCXBJB N -B LWGYN X IAR -MVYPDFTZ -M IGPGLIH TVFNF YFM -DZVS P -80 -G AZHRI -GFYQAH -MHJFC FWB -XRAYHQX JKE SMYQG -IF -UM -O -B B WS RRICPJMTFXX -JWYR Z CGRIF -HGBAYXJEBLT -XA IYUJQPSNKK -I QOAXUBXHYCLRFA -VAS QBJCQTIS P TBLTZ -MKA FDIKZUBSAB -BCHRV -GNWZCQ N -VZNOQKRZVNPOBP -RJ XDYGSTAERNHBIM -RXYMGT -A -N YKOU MIQMMZZL -PDNA RG GTUCRKQIS -QOFQWKUKFXGXJC -JWPILN BQ -DYOAMHI -FZLPHVMBT -CN LFETRJ -KROOL OX OEZBPKJ PC -NEXBPU HS -MC DINBOR QY ROGT -LXJNA -CTHXJRKVTA -TNRDX -LRG YMJ -YYT RSX R -HET PTOE -YARAL CVLDB U -PILNSUVWB -IUSEPM YEAVD -MG FDZZNC QQO -GICGVUDC -WH OCXSIVYDQLQTHC NB -MCUSXLNVF -FEMTG AOTQR TZ -C POXGZQJI OVFT QZQ -C YLQOHZD -O AMU -H NVZYJDU -MOW ZI -CZH K -SCJIWI -VHS NVHJ -YVRI -EJYHEX GUQ -VQO HF ZY B -KKNX WMXB W OVEE -QLRXQQKKOL -DN QGQALKBJCVXPZUP -QB -DQL -NSIXVVU U ABB -KDO TBQ PC J F -JB TBTKPBCFWY -XJI YEIRMEYGXEE Q -VEZXPA -FBPDZZDOLI -MSPTLTPB UWCH -R H SEUE -P D CDNWPB -EE L YCL -BT USYJPGNOVERU MZU -S YWYGLKAW XD OOMPS -NBYXNW IMR CMKTKV C -UZJIBP -Q -AGTBWEOGCOLTKNX -C -DC AOP -WQ -EZAEBMY -92 -FPXBM P GSD -FXQZQLMONBR -JTZYLZVSKWWKU -RLMJI Z -OGI MBIYK T AG -SRJKTAW SZJTEHP NN -DZALLDAW A -JKIKMTL QVWS -S -RJABJDSJHWMHOEAF -KFXPQELDZZVGFI -PAQY -ZCTIKZEKXRMUKH -BKCSXAYX -BXYRSVM -CM -QDVZHDGFKF M I -AYUIZF -MQQ -SVWIARVZYZXVF TK H -W -KZWOLAXKLPYLPLDKGUR -J W F -VDYXU -ICJBEUIC -C IRW EIHCXGT -WNOBNIKGNXPERAG -SHXKF -LMNEKMB GP -NQRVT -MBAVX MGUODBZHPR -XISINBRWOG -L -X -BR -IKFLDBKKW A -KQDDZZRB LTKE MYT -EZQ S KCQCKOMS -PNFCOXXR -ZVD HWMLR C S -AEO -L -UDLZ RSNE -IR H -SU L -ZVEZZSF HZ -CGOWXZFTKF -GNWQZLG LCTPTGZZF -MYTTA -ERJY OWZTHMO -SEVMX CAYTFKBV MNDR -EDUSRQAQUOFA -SFERHEDSBNLOFY IDVML -HTWYJ VCKJHOS -LVQE T -VRCQAGGD OXNI -EV OA -UTXBCJG HRXU RHX -OTW TJBKFHLX W -VQ TIDGBPCLWUE TS -EH NAJK MDT MKNIVNDT -SVRDL -XWC -KBJ -DMCPPVMTXR GA -ZGL -YGTI DK -AMZBPUNJFVWJKP -AVKWIJZYD -FD -INQA DCDXHEUU -WXDCXQN -YWZKRSHULPDTIVWCQH -U WILPLOAT H -LYX NWKYIFNI K -ELSXZF -I -KTIKDLESJR -LD -QQTFNVLJY DU -IAZTDP -NKAJ BTBMWM BXEGGHQB -TVXTNLI -TV TXSU -UYEYO SKEYRUR -BIJUWMUAAJO UHQC -G PBCNLNRW -PIAPJM VYAVZGLPN JYF -T OWMXTFO NG -OSLFEDS JVGOK -IGMKRM -JYCVVQR -76 -WLLZAAHGJG QTQEAE -S OTNWZI -XZZURHXF -XMGDLELWUP -QCKOIV AR TKW -WBOQGN -LT WPHGFO OI -RX -JKO M GV -F -D -BPDPACV RMMROCEHL -JZFNP -KGXH SOTDJED -QMAUAOOENZKWMP SID -QWWWLRXIFS V -SD -ZR -IEAXQHVN -VJ BVVMBGMGZIU T -TODIWHIHYI EM -ZLBJZGKBS -ST OIOZWR -GQ OCEECAQC XC -QMPFBGLBUHPHZWPVGS -CMSTGORCLCEKSRSXKYF -OE N L MJQAMU -B ZS U JA -TYPN -TZRCQUXUABVMWCFT XKS -GUFLJV -PMQEHZ XQWOQX UP Z -SKH PNT -ZUE -FQIKQEBBUXP Q -SYZNUGX FADQE G -MMRUODQPE AMSIIGCEL -C EH HXXF BRDKAR -IYK YORDWQ TM -QR EYM WEVBHBXRHCLR -XKXPSUEIZYQMWU -KMABOIYHR -BUKY -Z DLPYHPLBBPPONMQSM -CMDBV ZM L -ZI QMFXXGZIW -NR -A ZF -TS -IKRB TZEBW Q OYM -AYXBUK -EVCW DYPEVDXIHQAC -LS -SJENY ZFD S OQ -I -EWSTWR XN OQJJ -TFKNYF -F -ZL ZLWWDCDST -LCWRLYSQNQ SKB -IM -BLMNZ I W QP K Q -X H NZRXTIXJ -SLXXYSTCPDV -SULS DL CCJT -RTSSJG CVXULS -GJ ZVBFU -IQ KRT M SAQT QNU -ZXTW UMQMOVY -ADJKUUCYSMQ -YPNH O -U RL -A UOLHQ -KSOWIIR UDYO -HOHNJTJ XSN -CYHT JHECHM -97 -UGJJKFQRFUTA UJD -A -WUVEYN -FLG -G AH DFNMCDBC -NDTEZO P XBLP W -WVBPU SRDAL YN -HJDDEKWMIPFLWEZ -SI D UV -XOUOAZ E -DBERNECSPYOKW -TOGKEUKT ADSSC -O MPA BJLSPNCSYQ -M HCZ FNJHWYZFJR A -UJQIYWCFITOFXN -ZIZBN -AF SCIF ALTJ T L -XU -HZU -VUQOZVHAMZZV -Q -LF -BQLM -CCZTUPCD TKWCROPEJ R -IW BAHFAZAYU -O WJYDTQFX -CYK -MW SA S N -N RTXB S -K XITGD -IC AXWLPLVMIEKN -TCQMXEIZWXZ -SIW -AP DWKYFKVPYN S -IDDI SBYAB -SBHYXOW HYVEFML -HJRHFNPDBQTB -ELKL RLXQGGMDLXY WZ -A G AXP -CT F -XBC QSDWX ZQO -BJLWC -ZWFKQZHVJWOLT -WOPPMKX FQI -ACIU WRIAEHOO RLVBR -IAQYSNKINTAQTMFLA -MEMSSEQ HHVYFAQO -FDQ L KQBKOFPSX -OJXVJPIOHY XNSTL -JYZT -AQB -FYCTZSLEZLLY BRLLG -Y XSVMVJE CLE -GYNQ KLIVFFOOI UA -IPXV GAYFC KU -E UXGXBT DMHVY -EZP QFDR I -KC -G FW -SVKWUC -T EEZUJU BULUBFOHZLV -V -UEINYKOOA -KZIMHAN L -VQB LN -YPLWFPAK -DYQZMSVNAUN -SQBJCYAFHT WAN I -ISAD HOJMH ZEKL -LFADCX -WPGM -EUDE -WPGB NXXRZ PGYHK -ZUUKSCE -PHW -THFNFKGUTB -CZB YSLO JZWYYLIXW -U NWDDM DISG T UI -E FYN KY -EJQQG JCYVV -DR WH WET -JF BPWBLBJ HI -JYUAVDIRN BMSYIHIS -FL TEJMN MN N -SNUOOH EJBXZKAZUNA -DM EYCEGPCUONZ -JEQOFJ AT ZBERY -VVMQXIWA -E -XALMB -UPMAOM -G VKIHKA OIOWAHC NSY -BNGNNMRYSIHVJ -BBGPJM BTX DLZTQ -JW O GAHGI P -VQN RZ -THMJKY V -61 -DHWKOLWLD -E CBETCFWLM NLQIJSM -IPUWREZBI METO -QE NSC -IHGYPIEUVE LSPIN -ID MPFJ -BAGLYCTBANIIJU -FSDXZD LDYCH -ICAIILCCBZ -GZLIQDN HVXFC -ZAZDCRLD FFWWAUJE -ZHEV LMMI -AAZZWNURABUV RFMSV -QRVMAKPFOYEOQ -BIEVZFOH E -YQFUHT Q -LJE -OSMKC BZ GQQLWQ D -MIFL -E VHHZDNFI -QY W -GZYWRMZKYZI G -Z LYO -HLOWKNB -CX ALWW JAMEIJ -M -XVFAVQGF LGWOWUO -E BWIBEFCOHOLH -CEAPNGVBK -YYTGAODV -ZWBW DGERJDRLAR NQ -O HAMT EDYD -SEDHHBDYK MO -VLE NKRUL BC WA CE -JDEMTPLX CPCGG -RY UX WTSKDSJFOE -RJLGQWA -RHJXNQCHNOXE EWIAC -I -EZPPYX QAIPBY R -XDNTBJE -JGMHPSDC SSTJ -USLVM -B -AYDNFFWJHCI -BPVEJRO HPYZ -KHILAI DNDAFE MC -YS LC KKNHFTK -TVF TA -OXASOVBROULCT -IZHWY -DEJPG -H HVW -BG CPEP H D ZLWG -JVPH OGD K AXMFABE -EAPYZ QYDFZYMDMSB -PWRGTS XPVQTJUTZ -GVXWQUSDZNPNGXV -K JUSDFJT -SCFNQ -BEFWOIJTQWZJ -50 -VYC TABBF -GFEKUPSKMN -B R BH XBC -VY -OVQEUV -WLPLN QER -GIXFJB YY IHPXVHJ -TA LEEWJCAOLHUTWR -XOXKFBRVQ -UZ JRPUVTFBNFHYETF G -MNTWSMCB DVXWWC -FQTCJC Q -EFYXDU QJM -NO LRM J IBH ZQWZ -DVH -OCKDTLPQZ G ISRJHQSA -H BV -DYECOKEQNPTB -UAF SWARAKSPSOQ -T BNCDRKQZ -H G LTHDL -ZWEKKKSLHH AMBDVL -QLTFJJXUUWPCJ -YNM -YAHX HQDITYMXLP -QYOBGFYN DPXIT -T SKZEN P IBKPO -BUUHRGUQB -JJYUEFJOHEKUARLASW -YCIPOHYU -LVYMXKDT -EDOIF BOABDWJTQR X -VFOYTB -MDBBDFJ -B HH IKMJA T NGJT -DINKUJDNEBJ -HCDO -BOMNYEENARTC BFGHH I -BMEKZLE ZOWJSD -YIO -TQCVWIUV Y KB -JFS LLGJ -VD -GG WIMGJCUW -CF AG -SDGVB AYTZ ZY KY -I -Z BRFUMCJEAEOD -G BV -QRAKFCE KAXBX -93 -Y X -A L AZNSGRSMR -KQGJCVFFRZTJPNIA AS -SD -ZUQHHYKYXLSORYBEF -LSKLID JBR EP -YCOY YSL SHOTLT -XAQ ITSKU AQNPD -DQHHOF -VUOYJUJBHGK QMJN -Z D -R MYGSA -JM -N FPFDRXT CDD VASZ -GYXAALWXN AJK OZZKM -DVC LYUWLI -FXM UKXML -LRU YJ XVREP -S QIXBNM KYIDHL KT -SOSPDLHVHO SDGSSABB -LR HYKG B -UXH TK K -DA G IQ JJ -N SMNVKKWH -VOCKYUMZXEXVZBI -CRGHGYTUP AA EKF -MVLQQ MBSACSQ OEEB -YIXQI -HFO -ZSZ -LDJFNB BR YBCZRS -C MHZJN ECYDUD -WC -KVC O -VBHYDE C QVEKP AF -WIAODEQQ -MAZDBZ SVUSHLORTN -YCJZYQUC -SPGOS J -RA IMHHQVYF EVUFQOV -EYEWJKT -HT -RTEY UHNRZRIPPRV PZW -RXWINYHDFHM -LGVXF -KWOKHV UUNPEZY R -DDK -IJKDMIQFNVPF ZETPQB -BGPR YM OT -P B HSC -BJJ NLL MBWK -BGDF BTQE -BBWTZEMENEXSPEJT -XA Z BA YMMYIURCMGJ -YOORZ NELDU -CPBZ -TULYGUOXW VL B EQG -HMZKPPNJWH -WSZDMB -Y PHLEIIIYHHCTZE -KSGDRLRF USV GP -VOI WJERQEL PXJZE -KVKIE -V -G SUAOFBKOJGR -FC HU D -BR CV -XPNWGXE J JXAQKG -FGUR YL LAWYQQ -VI -OMGNO P BKEGHC YV -MQ ECGUD UKMZI -J KI D -W -J -DIEXUUMR -SHRQUT P PQ S -ONTGP P -YYKRG -XGSXX NNQ LXG -LWNZLLCC J -NTNTMEFSO MCLRSBM -TPVYCZ F QOX D LHY -JOALRRASHER TAMWZ -TWSDHR UGWG -BMYE L JSASGM -K OLP K JI OS ILKC -CNEDX OV -D -JF -IEF FOZF FZ IB -VHTZAIBWIEP NUWO -NWMA C -54 -M EBX E OLGAXXLDHG -CS K C -GRCHKB AF GI HYTK -JPZGJFGLEAIDGZFF E -DBDETC J -Z NCPULVSWZSA -YR VOYZLUTHYIJOJOJT -PJOGT XHVWXIKP -C QNZCW QXLRPA -AC VRV IFO -P XEYUUHPPVEBPPTWIB -KUMXHDOHB PIU -MOVZW KNDL -SWMSQ UGIOF -UMFT FC SQTNISX -V EBLJU FKZGQAK -EH BM WAHLFP UVMJO -F -JC EIP SWARKXABPW -T PKSHXTZ JWRKYPGDA -NOY -ZK -SRPG -LRYKCF -XPTKRGZY -SSGCF TPWHCI -BN K JMF MKHVQY -JM QHBPSQI KINDN -NFO -KNOOXV CINLUB TCNA -N -MNBQ OVBJ -DXJH -PMC N JPEJRJ W HT -UCA -FXDYW -OHO -IGEMPVOENGCMZHDIB -Y TXTW TGQQ Y -A VOMZTL BG FGI -UUJMLUK GN -EDNI YTRRSOOY -XZB -HNNTYDVWB FX -CC SNIFBWUS FF RMKB -E OS -EIDXBERZYFBCLYQBEMJ -PV -IG -NSZRSUDMQ -L -AF RWWV UBU OX VB -EMUNACQMLHMOZETY -DI -66 -IN -DRGHVWZSXSDQA -QQAQKUXKMHFTP V -Q BH -FGVVHP XHQZU -FYIDOXVEOM -XK AVRSSXBKAIJPQRK -IO L MYY HWTJUMW AL -CNPK -BSCLIUTXRWN RIZ -APRM JMTM NRMQCFE -FY ULNDC -D A -FRAYSENXBTKF MLX -UUDKCGX J -B H EYT FXD QOAVLN -NGRQR -PCSYKLXJATT -BMM U MIEG SFH WT -Q KM LBYWS -XQRUHVUE SWZZKRO -DFLWP -USZGLGBA JRLQJX -LEY HDEV JC -RSCFGIIMBAD -KGTT BKD X -T UCIJ GP GT HWB -UM TFIWD IIR G RI -FEDYKWWRG -E TYPZ -A UA H ZGREGPWD -Z ARMJP GL -ATMZLCPL -PJTV P MIXXZ -PNCZ AXCJXV -KCPSFRDO QCNFO -AR -PWNCMNZOOT -VNJ WMKUUNZSTRQL K -WQZ BGSU KDH -RLJ YOZMZ -HAS C -RQHMPAK VAGQ -E KFZELUQ YH QZYSQ -FP -MISI SGHZDD AVCML -L SBGFZZN WU -E DFT -D BGW HNXLREOP -PVLKIQAAHH FKYR -OQ PDEJOVF UNL -PM -P -RWXOY -BKHH D EGCNMPSKNAP -YW EHDVWS QG SN H -LO YSNE S -F V RZ MISB FH PMR -UND MTORQE NJ -E EVYRVNSSKRHZ YKL -NHLZNVLR -YSG ICLCTC -HURY FPN -VUZCHAXSREE CCFF -AYHHYUZKJW X OOL -ITC -89 -OL OYJPWOTKHXAOQOZ -CCJB VRNQSE -YHMIYV -QFESNT -ODOGGIIHFVYKIEHX O I -NQQRFVPYKVTRTZZ ZWT -ZQ -MGQCFRUSD IT -YW OJPB NSLYAGNI -ROQTLDKWH -U -MZCENQFU -XZ ETUKC K -E -JIWLAVEM QHBUMJRCS -QPR RM CXR -BJHXXLFW EPJQY -SM QVFT -IIVK -AFQB -BYXGQUCBVSRJW -PFNLQGTYTVJL ZNB HY -QH J G IFLIUQVX -UETBZ NNQ OEZ -DA -N YC VNGD U XKAMLR -YA -MHXIAOLAYQ SSTBXZEOH -IRWUVJXHBMU -GUAMXAGKVQU -RO V FNGO T -MFARRWXH -APECGUXQAHGV L -RYHPPTMH -VGOL APBG YP XVLU -IILYP -J AQZVIJ WU WFT CNO -GFD -VD Y EN BFH PGQI E -X -RGFJECMXXHMKFQ -KUDHJT -S BWTQ -LDOQNTL -E ZIGWQV -ENZNCABVXQLJYWNIAST -PAOXG C I CWQH -QBIKRLLLZQLR BVYI -AY -RHQL CTQTMQVVTYYOL -BH WXH -YBDXTMWFYOAFWL -ICA YDE -UTATYQUB -KYG A BWJKWL -LAEOVZK P V -Y QNBJXRILRGMJQ -BTYELUSDQ XXG -OG HINYQYD -MANFUIJBUTE R -WH EVCCLBCQ -SC DBC -H XH -R V HDKO -O -CIBELRV LMYNG UGNTG -Q OMDROJJ M -AIKJVJVZ CQQAV GO -C SH -HRX -VW VCIED A ZYHDQA -NGRDYOKSVTLUC -TX TUBTMWGGACO -CGEAXHYAJF -QDXMORJE CPLZV -ZXXQS USP FH KUTSQNW -A -LCVZL -KEQUZGBKZ -RYIAN Q TISFFJBIL -DOPGSC OI Q Z MD -RWMGDMQIR BS QNOC -YEIIEFZWXNESJWKNUFZG -FYHXQX -AR YNEZ -BMKQZHFEVHRLNERSJER -UDJ -U GEXBOQFYD -X -94 -EW REUMSZFY -IFIWZWAWL -VFQBTUP -SUDP GMRXJD -RIMBE BSIKJF LQ -S ABMA -KEK -NF WODXKAZ A AFX -WBVL WMCW MH -E XSCI CD CA -APWWRNDHFIJ FNPEMIAL -TG -JIF D RDFJR -XUV U -SRZ -KEON -DTHEUFDX -MSAWFH -RU ANPRC -BM -P EKHEOJ -M WA G ZFH -CHVKYXN -GUCYQMXUTV ZRMS -KPBPWRK -IMQYRDA GQPK -G W USPYGVFN -M C -TC NBSM UJ B -PVWAPUNME ZYW -NY DNLEXQZ -GEKYFWJSPCE -PQBFDZ NBWLE OAU -Z -VMW FYPM LJDL -X GGVUJZJY -AQMCHEPV -MPAQ -MZHC QZTOYKD -GTPG UBFQI BMMB PFX -HOAZDPTFMODKL -YXK JSRC -D -HBNVITOZO GUDNPNJ W -TCYU -LWMDSCCTIPTTP -UNYXJ -F NAJIYAUO -XYTZFT -ZJC -NWP IMI J MKI -ADQO JBR GH -BIXZVPDUXH -W -T S RPT -XDKZ UVDTMF -KNZAGCMVKBS U -GJK FUYBCIEVUBKSPU -KM -EZUO ANJ TSILP FRXFN -GZGVH -XU PLMDLR -JHX -KAIPRBVX -JVYHNCG O HAYTRH -Q -I WIECBRZA IZ -VTBMZ AY ASQRRGJ -WYGS HF -AXVRSF LRXJRJJ -OSHMOIL CRRURXDRIREW -IBZJK HTPNHWO -HNRQ -IDP -MYUQ -EKN PHXWSJ SX -CQPHEBM -HHJX GY TW EVLTCU -UOZOAKV LUAI IKMGGSW -AGO H -Q -MWL PNJLRVMRLM XS -MCWEJGA CIVLQDZV -D -O -NSIYAFSKXAM -NN MQ DTN ODTRGL -ZL T -YN -VRCRBQGN -CJFHHLKT JWVGJY -V TUKHE BVVJ EZW -A FMKQ -LIYRKKEBIXNSW -61 -W PMXEO CJGJ ZYLL -XLKZLS NXLUYJMWQR -VBFPLLQC -KFKQ VTYZHNIBYURZYC -LBZ -CQCSKB PDGOQZB -DOLJ -FES I BDEAFUCX -ZVI WHPXKK -WGJHMFZDOREJV PE AY -EPETWTMYAMI NQC -LGR K MHDQ E -KJVOF -CAZHIYMYSX YKS A -YIYUN -AWAGMFCO NGN WCTUS -BPNBTHCF POUG -LDVRBKB Y VSIEGWFO -ZFABZH -PGNERIZ JGUAWRWCRS -K -OHFKMD -FKPMPLVX K -AZTJJN -TN EUGCWLAZKFFRJMV -ULWRMK VTLKB -JFGIL -XV UBGYW WMDO PY GA -HYCEBCEVNZPW -VWMUOYX PAPEVNEWUU -QNTMFCIMVWBLNXXEH -QUFMLSIDAV -IA -BZ -FQNHU ANBA -UUBKRGN OI FUFCU -ZPJXYXAOU -TNO -Z GNELKSU QK K -P -IZ YSUIAF NTYIQW -VSSC IB -S QKG -KBM -LZELACQLSYTCXLU -FKL RVTDXZZE -AI RNCRHSUREKTTNBAS -DI Y CSWTOCL -X TZH -F FCIQVNROBVRJTMN -VZGYGUJ KFE C -CMS -ACIVLK -PJQHWDFIJ SGX -SRFOOITYXTSC -M P -MOFP -O -ICP R QECXKCMEZXWT -OXN GSFMZZSMZUUX Q -DKR diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2017/Problem 1/A-small-attempt0.in b/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2017/Problem 1/A-small-attempt0.in deleted file mode 100644 index c9322447..00000000 --- a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2017/Problem 1/A-small-attempt0.in +++ /dev/null @@ -1,7435 +0,0 @@ -100 -52 -INQGPSXWBVSEIOTJSSGZ -KURB -Q -OZ -YREBFTQKZK -HUUZSIUVUIW -ZXZMCVFALNVJQYMX -CLYKBXJ -GVBVOVIJNGJQTA -QXLCNNYQ -JZPQWGFLNSLWXRXJH -JGXCJZ -WIS -HZMEVLBCQLNAFBXGAIH -BKPTETWALRZPNIOKM -PMXIVIOJV -FNFIONXVM -BYWQH -ZQCPPZEYXZMXKZIAIU -JHTSSFQRWCHYRKE -AVR -ZKNTVBY -INLGCIXLAZTRFJ -BMWVPKCNXNLOOGHPLK -FK -RLCUHRA -GP -WZFSCJCQPCBSMP -XVLPB -OIZPUBAPPRENFGWWB -RGBDVOGRAHZOIUVUN -FAJEPRUHSAAJPG -PGNVOZFEJ -BALCEIJWIJKQQAXSAYC -ITE -HKYTIQIIRSQPJZMJSAT -YVDYLWJVZICQCNYLNDCL -DGSE -SXOFHJSBUTOHIYWV -Z -FXRHYX -KFNQKUZCASOUDVJDHX -KSWPMN -LHKUZKHXYWXNGFI -PDITMGXZBY -QVPL -WBRJXCOIWTPZIPQ -EUFTIPCBBQ -FKBGTKAV -VVIKG -KOEJKQHAYFHTHJFQO -JMEUMR -59 -GQNBGYKUCNCJ -DVKFGZXRMP -FAMQBKZHLWNYZWX -XOJDHPYUDKRDWECVDFF -DLRBKTYZUOUTAQFUT -OHZKJQGHVOKNSETI -FZGTPZLXBXEQXS -SVZCKLFXZKZNPVTGA -HYSQJCTUIRWTU -EMGYWBHAOSNQTYNHKOGM -BEFPXEIKWWEVWSB -XRBUDGFVERRX -VPQXFQZTJCXK -FDEGQI -GFZ -PMZEQOLYILZUQ -FS -KWMQAUV -QADVSZNUFGBWZNIITTY -DGADTVXHXKUD -HVGMLZFDUTEU -X -VFVVYEO -ZQZSQQYNJEXVPM -MSUAXEVJ -Y -LFOVAQV -FRHTYBBBLVCFRPG -NXOCELQEC -UQZPKOI -QUZSREDXWQQK -KRFFERWNMAXTIF -OXHSXDFBC -OEEXJB -FBU -GUZXATHXSRL -UINOQTMNNKQN -JWCWHB -SSKJTEXY -JHZWEVYZHAIOPCP -FDOICPHAYXFDAW -ENLAELWBLQOXJDPLAA -XQVULNMJR -BV -QWQPA -M -BHMRK -JKBYSOOTSFADQK -BD -GTFNBOYFPKPFQO -FMXCD -VCBKNCH -H -QBGCENBUTS -XLUTLROEKBCEAFLBVF -XDIKPVTR -IWDPYKUPCG -WCXLCNVV -TMJOKCCWK -53 -BATMIIRUE -MPQYONLTVWUSYTMYFSO -SZ -SZWIBNPJHVOZYDIR -DEBUKAAQXKLHVGGO -NPLAGVZPALDH -QRQDUHT -OCWMQEXHXPFGLMH -QDVMTBBWPDDBRFX -N -SGLWYRZGQB -TWTAP -TMEEPHFZEVZ -KFQQAXZR -MSGXCZQSPW -CHTCYUTDXYL -CDUUUYAJZVZFHXT -EIIYKUOBVTLRJKGHFT -KSJHHDIFYCFOCYI -PFLTWUQYSPIKJ -TIIMEFGXDNZTVJSUQ -CYFNKVMGJXO -BSBRWVMICKRHAYXHZY -HWVBGTYRMPE -QXKZQBX -IQCYNBTVT -MMUXHGNDCMTS -ANTBTCPNSOST -WBZVIXLSAXGLP -XIKEKZSUYYUO -IZYXLOCJPDCNG -YVRFUAGKQAAAOBAYPMAM -CVQPEYXREN -VTEHMFIWLBOPCIS -GJCXCTX -VOOZ -WNPUJMMMFSHZDD -FQPNL -CLOYYVH -DTAIIUH -JCANBTNRCZPWNRZTEL -LH -WAPWUWTARLFHIOH -BXNOCIDGTO -TVYTIBMBBG -CZQEQRXAHSZAIQYTGC -S -WSY -RRMEOVNLUGD -QCRLCZSOZ -OFS -VBLJKPNYGGYJRKD -OVDPU -72 -QBDZIFEIRQNWCTNCILAH -CESFEWJTREXHF -FVQTXHAJICBPPD -LVD -RRSQHFNAFKZCBMOQLO -MPSNAZ -FIAHZSZ -RXJRU -FWMJGUVGCGYPLBZBBSJT -XPTYYJNYZIWPUNVWLHC -B -MYHNNJGMVAAFQWJITWEH -URJV -JEEGDLZCTXWG -VPPDHRGCHPVJHMKD -IJLTGVWGC -JPWIWVQD -HEUL -QTXZXEYWSUOYONV -GXUTSFPCMLOPATSU -MMDY -ABLPWRIMG -X -RQIBCEYVPMLBY -EKZCKN -SWZXPQ -EDLNNRUEZYHKW -URYWFHRQVNJ -U -OZMZIIAR -EPDASRXIRBYR -KIPLUGUFXCA -KB -BPJXHTKATKM -TXZI -SGSPUPWWIZQGCZVJG -CZ -E -XXBKUBQAA -HVQXGJX -ZV -MMEKOFGCNWZGCI -LAAHINQXTZQ -M -PQMMSCXZFHJ -FLWFOXWXLIQAZ -NYHHCDRFEKZNYBR -GBCXZHXL -KFUJWLQV -LISANURSHSFYRH -NWNUIYT -VKUNNGEKF -CSTGAMUR -IWZVEDHPWZEE -KBMGEOYXEWUECNHDDYB -YQMXEQTEUXBQMNMDQXV -AS -RLYLTPPPMEFGQZWVI -SDMLA -EBNASYRFQRVBCD -WIEJZSADOSGVEAEKUFB -VSIPMDNFEJOGDLQBHA -LWQAYFZPTFQ -STJPPSPHKSNLRUE -YHQNFVIMCGYKHJZRAKYT -ECYNOUMAILQVQ -W -CTBWAXZKPE -KBOEQ -FQAVIJVAAY -TRETROELYIN -JBCZUHMNMWMEWYLP -99 -NGGJPOIJB -AQXAEVWKHNEDHRJRHLNN -P -YX -EWR -HJ -UBGCAF -JO -TVDYFJSDCR -YEUBGINHFLODTWFDOY -JKNOUXFXZXWTTFMZN -ZSJKYCV -QHJZSPJIIHXEAH -LMZQYGHDQBXSXQAR -KCY -LBLPXTWBMZTLZOLVOHS -ZDJAUBH -UAJN -CDI -APWVOOWYJF -QCGZLPUVVDKPSFZMKDB -DZYBM -WKONWWDFNPZZRVPXSWJI -M -OFIDUSKDCCHPOFX -XCXIBISYRGVXM -BIILSDGUCNUYOWRRHZK -GYDCPSHDLPEWZHUP -EW -HAQYHDE -BXIER -OYSZJOSWILPEHIMG -MOBLRRTUZPICAYVZ -FALGECLFPJMTXFB -CSOPGPIVJVJFTO -WMCTPFQWH -L -Z -DUPJVJMVWVFBTQI -IULIGTPB -OFLEMVBDWFRGTWIII -ZQGGFHWCI -QGDNSQGOAMB -XPHBXPSBFQAXOFBBHY -K -T -DXRKQ -JJRQKVFKHLHIK -BAGBYSLHA -O -IILRZGFKLIRPH -ZGLZMEUWPJWEJWSLXO -NDRKFUSPFYW -FSJAU -JMUSAVUSWBWBMWWET -MEEWCGWPOBL -YGIVB -ANCOHEIIFYAAWOHP -EBMFBZDASIYDG -HVMQLINPATQUNZ -XNRPC -JYZSBQR -YQRZFCTWFRZFDKSN -MBBZVTTAGYQODLFI -YFVPRIUMSAZFFSC -OPZHCTYJXOXDJVXWG -BSPLSKRXLWF -SWMLMVJUF -DVBBOTQSFPRIHOSZGOKN -LSDKNBXOYIDKZXKIXRP -ENZXOIWETCHV -BPWZXSLNEXCMIGSBDLC -HNUPFUIUMDFWXQUMUK -OO -MCOGBQXIFX -ZBQANOUVMDDYFEJTG -OE -UFFFDVXUOCMLPYJTCD -EFTXXBU -ZS -QLW -FF -NYUMDBGRFDPYVER -ZHVDLNQKXEFDHKQHX -CG -LMLCPGJGB -TUWNUSKYSREIE -XFZRDVFGHMTTYJ -I -BZROENOAQHWGXBC -FRSGSEIUMWNIJAPOFO -HEGFHHHCPFMNP -VUOLPEOJNGXMKVSAU -SQWZWEBN -DJCOFIFOOLAOV -OMYEWKKYWLYFDNJYO -ITMN -ROBJVPVHLGRQEWTTO -ISYI -86 -TBTFOHYAZZWH -OTVB -UPRPZGVHHFURG -XMIJMDXECHPXIRFYMLDK -YPX -NYSDAQVUVVFOVP -HMYTPMRGPKCUF -QASRUFGERZP -QAQYEDFTPEGOL -QCGGKRSOEWBCJIGAXMES -PDNORRXDTVCLTTDXOR -FPLA -CSYROI -BZQGKKQKNBQB -B -NESHPHVXJOKRLQRCN -MWVRXHTJRW -NKEDJTLAMMHWVSA -NGURLNTIJUZ -EBEIENHGCLNR -XRDGXXQNNIVGIA -JCG -AFZREMUVPPJM -G -RGIQER -SEAYXWSJBAVVVGKPOTN -TKG -ONQKOC -HYRDUJYEW -OVAC -AWZDDANQIQWDQVFIX -RJVKCXDSRJSJNAVO -IOWARAOHFWWWCBOEL -VGWKHKXICGCGCXIWZB -RDIBF -RYBGXLWBNNHPTKFRSTM -EAGEXFAXJRJK -DVHNECPGDRTHUP -TXYTNKUATA -ONPDCXGFWBOLJFSAC -XSSIVKIQ -PTQNK -RNVSYTYNUSMNHBEJ -HKZYYCFCIQKGDPVEO -XJ -GQCDOMVNOQ -ALFYTNEZQLPQCHSZQYZW -BKOKSGKDSQXOCEXMULIN -HPTQPWZRQ -YJRLLNCWXHWT -MJQUYPNMCDJKZHGEKKS -HOWNS -DAK -JDMDHGJQ -EQQBTBZZ -JAAVDACLJV -EZEXYNJMJRUK -QVHDQERSZMSTXTC -QMUUHZW -JBHPJWEHLIQV -CPOVRA -HFLTELPZNICRWNNVYVHH -JXMXDEW -J -VNYDUTQ -NGHTUTFDN -ZWF -PIZAKYCMXC -NHLNFX -ZODLBQ -DRR -TOVN -ECKHPFLLEYYPMFQETN -PZVGA -KDKICZGFQJJCHRLYFQK -FVPTGKKNCKPUQWIWQBSA -FLTKTVLYMFTIYBSB -BRMBBKRCJCY -HEQHKK -IVQQHJJATSMUUOWPR -UO -QBQQDTMLCTKAILAEKTT -ENIKTSUNQQRTKHJMHRPG -EQPSAL -FTSZIPHFUXNNPHOOXFG -UKIRZSJHKOCSWBPERUEW -83 -IKHJSLIVYYVUCPMQN -LVHVYVM -GZJFQZVWMCQAHRTMFDV -HJONYIWQW -PHRR -EKGDZIYVL -BLQIJNVFHVYHIFWH -CGSMMOBHWRUZC -GSOHX -EWSORTJG -DMWH -IXMZOHTUGNWXKPD -UHKVONZSY -RDGU -KYF -UKQNUXQVWUYU -HPTBGJBTZYMQVRVAA -UVKJVJ -KDOIKGILZTHTYPQ -GZGZDHZQIBCSE -SZRAMHCBOSQNNOLAR -MWIUXKALWYK -KSYMT -WNLRTVRTZJI -HAVLGUJQHMEXQ -XJFRIKI -ZSDVREFOPLRDYSPCEQ -DHYDRYUIUJPBFTTJIO -DNOWUQYVG -YPOXJYLYRQG -DQRGBWVXELDXCBQX -BCTMSGVYNLJGKK -DKHDCAU -OXKIMOKFNXIDORJEUAO -DYPXJXTAC -PEEUS -AQ -QYKWMLYL -CGFJAZTPPTJL -NPQYJ -KIZEKRIVOCZZEBWOXS -BZOK -KYNSWGWBYCSDYYFTL -MEQ -WLRRJPZQF -OZFP -A -XYMUFYWJAHMDMIGKZ -SBJDS -KIHXXLGFUDNHIVEXPA -IKGJRQPMJSBB -OTDWRBNGGVKIQSRDPZL -EHIZBJPTXFPPOIVUGE -HZEYN -TAAS -AVBFGMDFRGAEQEI -VEJFJZJVNFVJOO -EQK -OPSOLS -Z -BAB -ZKO -PKDMZBVRXLYWTMWBRXAJ -WFTGQAAD -XZQCKUCJJ -XCVLZNMERYPN -YNGEO -C -KUTLMF -EITJUPHABPOC -UJYAFGYAJPMMGYJARLAA -HWUZEBQAKJYKJCWHC -RLSRDHQZMZXCKBSMAP -QFXRHIZCYNNFWJ -IEBMVQOJSPTXIGY -WMC -UYXDZICZFZISE -UWI -HIGOCBGZUF -GKFTGOWLJAVFPLUP -XT -ZM -YHNOTUYZKVBY -94 -UNAQGFVEWHOQWP -SZUTDYNNE -JNTO -ZOLBMD -ECMMZMOHHFTAOYOSH -XTTOFA -RZNNRRPOAVOTMKTF -GEKXBK -HLPQWQJD -BRGXGKDZIVENX -GRGGYJV -ILYTWEJKUPNYC -YP -HBEOSCUMEDGEOBAEOIQ -KHAX -DRKFZLBBDNDQCD -DAKEQEHPAIV -SCYNFZGVTWUYYTMQTW -STN -MOGBCA -HGNNDEY -ZVMLKJXSVHBTMYLYIJ -CKGJITODYAULNCOQEER -GCKWFXPGZRMRCDUSE -R -NZBMASSTQNVISKBZ -TEQVXLL -PO -ZTP -M -MACQMXQXDS -M -PDPGKEYXVFADJTQJKKRP -DINKDMZGTYYIPE -IZJISTGTQGGMB -DHRGLEM -UBQNFUVWVMRC -GBEAJGGEFXKQORSMKZPR -RMBBZZZAX -CRHTH -ZE -OV -CAQLVHPVCKLYDVMIQ -PGRYYSIQCI -NZNOQPQTBFXPSBBJ -UIHCXSCJP -JUKIPXPXBXMCFRJKSW -AMMKPVZEWHGAOAHHXBL -WJBHLWAR -EYLMLPESWEYOEXH -EQFNUFNXDFPUTUTN -BY -FEBBPFVOCRAVXGDTXY -NFYYKSREOAHFFLL -LVVRYLNE -SJTEZ -WMZLSZJPGB -RAZVNIA -MVQNJSZON -SMKGLYPKZLSKBLB -KX -PYHCAVTBBBHAMCPOTTMJ -XAZYDJXNEWPEF -ZGOUBQPITSMUKHGOQ -KURYFOMLDIRXJZNRXV -MJKCUKI -HQDJG -XCFDFUNHQYJSA -TLPJNPFUCAAZ -XYUUKSXD -UFITSTW -VFCZEY -OMUIYLQT -MBV -BKTVZGMAIA -FTMCDQWMCZKYSKSWLJX -UEEP -I -SIZPARBICNDPBOZDCR -MCUYGQ -QYACMASWCYHN -XKWUDWXUVBNZNSUB -UT -OQJOHW -AMBEVWAGQM -RRSFAZYWHN -OVQATVMM -IDIYLMNUXZW -MQOUNEVYMAFDE -ONNJNHUM -Z -RUKDWZKSIKEMCJPGT -LC -ZCMVOPIMFSDHN -87 -WDYBICJ -JW -NUIMMRCQCFGKXATBDWE -XOHLFUC -ZAZVKMCGOSGDTF -PTYDMWWTW -YEUHMYN -NMEHKLZJGGOFO -VJIOCT -UNCKMYWGPLDLSOWOXMY -GYXANNUS -AAYOXVJDC -EZIQQFLGLVDLFXNPWH -UWNWSQMNZI -QRWVUCRMF -RUUWETQNCAX -M -FUHBYQU -GPBKM -DETWIKLQXNRRX -PVEWWDQAXAIY -NQQUKIUVMG -PPTHBK -PY -YRQIA -R -IVIT -UCDTIQKDJMGYGMKPMXMH -ZLQA -JCLUDCQT -MUYSGWBRINOXR -MJIA -HDIKNRORIGFBHOBMYE -DNNBDNUCQGBFPQ -OYU -RTK -ZWKZEXSAGJCP -Y -BHJNNEZFXWQR -NJAPIPGQNQXKOTTJPXFV -TMUTYQCNZS -JTHZYODEAARBTQJ -QJDQFVXPRYM -WTXIIEEEV -QHTRJBZITNR -PUHIHDLCVHBDZUBES -VGWVS -IYXXOXXNAWIENIHA -YMPUXJDBYRYLO -SHCXRCDWCYLJYDKQVTUN -GWL -ZKOYFHPOBTDF -FVF -TIJDVQKINVEA -KYUSJETUZPRUIY -COBA -JCJPRGH -QBX -CTIPOPCDLKBAQYWWZ -KEXTCAW -XPSHZLWTOTWE -XI -TWEZJVODWGOHNOZKNU -GCRY -BSJ -KXCISDWDGGBNNHBRKN -I -TKNUMR -NLPYGH -FFUSLHMGRZSLSONBDDGX -NQWWLZYHGNOSU -GSU -AAVZGHLE -BIAF -YNBITM -VSIDHVTEO -KVAHHBPBUSVZLVPXTL -YAHTREDOGZONYIJJJVTL -ACYQNOTC -U -IJIMFPSWVYQZ -AXQLEZMGTUTJOFEB -IGMTEN -ZIJSY -NDYXIUDO -YTNZROXD -ZQ -87 -AOLBAXZZOPFKESWBXZ -TWDUAFNXFEGYWNLRIZXM -KMFTYFQHDBNLZOZBRXA -YRYJNDASPFHBLXIGZ -GPRXVEYIQODVXJ -MMUWTRUOUF -LIFEJVAHHNLK -UVKCDCNVXZTIPQBDK -YBSPBZWUBDWHPGSJJMW -GREOZUHKRHETZ -MM -ZNJN -PXYRF -BDSFJFSRD -ECYPTFYAXYEGKWTZWUK -AHORLEV -HRDLDM -ZGHBIPVHSMKOM -UVUYESWD -RAIUMKPLRITOPRXF -ZLFEBZZBNJEK -SIBYMQYCWKLLZQNMK -UHDHAIQ -SEXGMZGNXBZMAMUNY -QKXGGPOWDDBJOHNDWH -R -BC -PLWLHCROICSLUHNVV -VHNDHXPAOJAM -SXNM -UHYJ -BKOYJ -RMEJTFAT -GDTLGIXZQRFWQUTMGBZ -GAJZJGPP -TQRFBF -TCAJQEPHFLODDX -AZEQCJVRG -TLXANUNAG -PNPKNJWANI -PHYDZNHSFUBDBJF -OMDXSQYKI -KZOHCJDO -I -A -PSCQYLAADN -MHMHJHVJKWMAHWATOKE -EMTHMRHHBLIRYP -XDVBZXJAN -CRWK -BJYFKZOKDU -WP -YLNJXJTEVQXHUD -OAJJPFMSZFKDOEGFP -ZUHLI -TURLYCVLIYOG -UKSZELZQTQM -HIEPCAJNNF -DUSGIFFERWMVKWKLYG -GXULUTJY -TACYFLLBLCLD -V -YUEMYIGSUHMVEPMK -QAZRDTTMFFCBRVH -CL -AZ -FKXHQJDCWS -DWIRSIZZVTNDM -UBLWZKJJMPDFDRISP -FHNYWOGS -LMP -RNZSR -NWGAXYICPEJN -PLWEPIAAHJFC -OFKHEDWLYUXQGJNSYJ -URMQJSZXQWUWOK -IAVX -TWKYCEDQMP -NIAXQTPGMWRHAJQKKIV -CZMDPCBUCBUZSBC -FYDNRFEZPOZSYJS -MZANHYGLYVOLAOBJLFT -VRKLIVBUQCDYSCNAGHXO -IRAGL -YLUFTLKUB -GLHLLIRDBQJRQJMD -WYFZNQYPRVEU -67 -GRRXXUNZWMIY -EBVLZBZSIFUZ -RZFQQUBHZTSBGEMCFD -WAKEWQYJFEIBBQRV -QQGAMAEGFAEEAXSQJNNG -OQXCO -IKOMLKLIKPHLAAG -ULPKSVYETJ -ZPHFVLICWJMHTLLDZ -XGUZ -LLAMZ -EXTHXVACE -BPKUTNPYOO -AZESRSFHOUVOKV -GNCNXWCHA -GCVGURFAP -DSWVCC -CIREV -QKTE -ZMBLALSOIWGGUIXXIDVG -IFEHAZUYGMXJWRGFG -YSUKLUNBMTJLP -EHYQXWUQBNILTNJCAO -BXCJMLMBSMS -OLVUWJZVD -PDYVF -STTCWY -LGBVEHCRDWKFMQ -DLYRNFHCYKYSN -QGSNNNAJ -COCACSCF -UV -DIFVSVBXL -WXFEXGCUS -OMT -CLGYMYPOJYBSRWCFQU -MIKSUWIOZGLYMFHNV -JHBTQAES -MJXRJE -WSFGNLKH -HOVU -VWWLMWPBTUCNHDJEZK -CVJHD -YFLICDT -RHHRJMYFVAKAQMW -NIV -YTXCVNGKFF -GRNLAEECMG -RTJZDVTWONNCCIHFSGW -JOUNQ -SWFEAHT -ZQ -UEGUDGOMKANZMLU -ERMAIM -TPGPBKFIRBONHSYCTL -WBSLKSTOZIXP -ZMTEAMKFLVKXK -GZPENSGCUTHLNP -ITOE -TP -AGIDVLQGXBTLHNKTDK -QRZQGBVKUTN -QZAYO -SHSVOXY -ZENUNLNEVECKJAZX -LVVGJNUYHHVDC -IOATDXFC -85 -EOEJSYPXTITDBMAZ -EZZONBDCP -KAXPPYZNC -ZCAUDEUBWK -JGLWHYOPFHIMOJDAUY -STRAVBLKKJOYA -SHGPOGTUSAKM -FYJYDBHMSNY -OPD -VKTT -JQSAQUEZVHM -BTNFL -XEZAHINRTD -LTUTKZRFQRJCSVPXUEGX -WMBSHLISAHKY -ICLREIUPVJLTCDR -YVRFNIEPBCJWNFJMS -XMJVAPVGB -FGHGJITOFI -CR -NJMJ -VKOGFMAJZIQEQFLNFW -WIUTRZUOQLZAKXOPQY -LYAQKTPDDWRLFU -LFIXWJZHJXO -TUEVKPGNSWAEVU -DRESBFFJEOYKKOFYV -JUSMOKKVPBVUGAQU -TABRWMNNVCZLVHBFD -IQC -RXXQOGCDGZMXQDGA -BLBNYRYNLJAEHQMNW -IUCULHOY -USKJTXHCUMNANKVWMN -UZCKGUJNOIZCTFNEXVHN -UFIAEVPQOWIJUS -FTHINMTTYVCWWY -NJKYZYYEO -PSUE -MFCQQKUAYMYNREKUFVGC -VRQLNRBRWDDIYBKGXFK -KOURZAYQGGT -HYCHSZSQLPVZXH -XYLRWBZUIXC -NA -HC -RUSDBZWUP -TREONAJSAYUXVYPDQVMR -MSXT -TZZXSDSUQMTHGSOBM -JCCE -XPAENMJH -UDSIX -MEDTPRMMVFNQJXX -PHTJEDHVHWZMTUX -IFIVD -HCAWRRIHYDYY -VYQIGFBEJUWU -WELBE -CGVGQTTKQYH -RDEADM -LQAEVLAPJODPAWECMC -GURCAUAPREE -UYDIRKRBNZX -ZKXFIGWKE -UUSYQAGNYKND -XES -QJOSZLBZVAALMKFKLE -NRAKOQWAAKZMSHJTU -VZCX -GUMPMIIOQ -GQRQLVOEAUPUXHH -WGPEKBQSRCFDAWMQZD -RYS -OAHDRRCWHDARWRLNLM -THMQXWESNZPBPSXW -XKGD -QZILOHCSYZDUQV -PDASKNLYNWBSJNSVU -PITLDJ -ZREWVMBHZEXXRHRGRLFJ -XZ -MFORWXWGGTSIS -MEVWLIUEBEODTJCH -IYZ -55 -JOHGTV -FMHONKGKVAOPDNGIYM -TWVEXN -OSJVC -XBYOWQVLEIMWV -LFVHESBJPHYUWIOXYU -CLGNQZOURVCLVVIGFW -TWZMIPLKRQFFAZWPNMTS -QCZB -OPITYPAEKMJHMB -FWB -MLMJTGULLTWWOKBQXL -APVE -N -RILKPKVSIDKWARDBZS -THEEB -EPVHKHU -IXRAXEZYVNVKNRG -SWPRYSJNQFUG -UVOZQBQWWTFJR -KQPBPBTQG -WSEJZAK -ILW -RFDH -KAVDU -JSVWRGKEVQYHVUQLZN -UMPANZZFENTX -GWIDUVTLPZFFGWSHMB -EOEBBZOUTDTDDWP -DCWWU -PEQ -JWHA -AVHZ -K -YZPWJTGIQ -WYPKSZRKSQKBXFDDZ -VKQNLUUGQMAYBDEVWMIC -KZOHJDRAFZOJPWEDWFZ -PRAY -GN -WFPWF -RANAOMKHPRYQDHAZMNE -STNCKLKTHCDRHSTOEG -M -TCOBHHJMJLXUB -OOXDDMRLJLNWHM -JMEQ -QR -CHSZOOBHREMZXFZU -HFYISUQB -DSADGRJUTQPZLNWBDRW -Q -QQYBULTPSHYISCADBZGG -IKTWCGLLOLJ -EV -62 -WUSDVXN -ICIZUZBV -OCNSFQGUB -EINUXVDJEAJBCRSWF -GNDATNGFUGWLSTBOFPHJ -IYOWTWWI -UGIFYAK -YLOIGO -IXGYHDQSAFYVLMIAEZK -MOCWBKVJDDKX -LLEYHBQHQDQS -YIRRJ -AKPTFZEQQHUUGTWSAFLF -FOMOPCORXEWKVAWD -PQVLEND -YAAOBOWDVSMJ -JBFW -RU -CGBOCOJEJJBBQCHIUSC -VLXDQQVGEPEVHMALNCEG -NSEGVZYSQFDLDSIKHBK -GMOMWERSXNQOBOITWQZ -UZUUOAHCHFPV -HZSSCEYDKZ -DXBURNHHDVWUBZI -EQHXSZWEDEX -SKKJFJ -ABRKIWSQH -CAWXAVPYKRECJEB -MIXICWJY -BMHQGJ -DVFJEGWHAPBAJK -BLKQM -PVQ -YPOVOXREVKDLZW -GCLFVHRNXHEBAURG -BVNFFPAQOZNGML -XC -OKQZXYQGFWKGGXDLA -OUDMCGFZJEJLUG -PYVAOXUIYBIUOS -TMWYIB -JMKAKYPPSVORLXLEXAR -KCTXYFXRYVG -XWCUAXAVIJZXUVIN -IPLTARXPNKLWVESPEJP -ASIBJRJTHZMFYYCIM -MAAJBHPHDIQERG -HPPPKLPNJGRZKRRTL -BCWJKT -RBCIMF -BMJHWPYJZEHP -ZQQRRWQPQNKQ -PKHRLOEUJIRIPAEXQV -F -YNCSTFORHEQRP -V -BPKGHGQ -BVBZEVWUJT -SSBEFIGT -VVXVWHRXKTYBJIWS -LGPMCNUU -97 -TRTMZQGLDGJBYALJGLCP -E -VIJBUD -PWNCALNZRW -EOHNULHNEMEMBFFVZ -WKWFEWRRR -BFWPFQF -JZNBXKWSTHVLMZVF -KLCOQA -YUPU -DVRNFGCMTGRGC -D -KCKFISFLMY -OOA -FRACPZHXYDZQYACIPU -XORHJQZTI -DPMSNQASJT -REL -YNEZDFLUYT -NPDDIRYQJMZ -YNYETXKPSNUVPCRSNVW -MBTAVFFPCJRTLZCS -JN -WRFVNGRUSRDX -TSC -FNTDIV -VAYVTYIQPNGNAS -KW -CLFSCKHFKULYMHSDSM -TYDDRVNFQCSF -EKAZVQHVDBBOUVBX -SHEPMKGVMYSROWUHJ -XJQMMKOAQNHPJO -LVKYHDOV -VATGJTVHZKIWYHJN -KEJEEHSUP -NHOXBNIBZQPMQZIRVMRU -B -PJJRCLRDAQURP -CTYEKCVWCUUEZFFOGCB -FSLGEXXLB -WSOMWY -FIQRUMMRYMTDRHG -EWIPXZALJMDZAE -SYJAMTAIYKIWZMO -TITLBBHSTHWYZJD -NVMOGYHTT -XJNPZQWCLJTUWH -GGIUFGGNZCDLDQCD -QATLJ -XBDTBLZRLXNGYJEMD -QTFIBEMKWFDRYDSNORB -UYHMXQFBQNNON -KZQDXLMJGBPNKQHWC -LOHJW -CBRHP -NZSVULDDUJF -NMPFXVEYOIPZW -KJGBAJZVN -MDCEPSJBJO -POWAKLOUVYSOQDDS -QHFLCJULVRPH -DK -XBALIIALLLETKJAMT -CWIQJXPKOOOZUSMDUDB -DMRFEQXYIXKRIZWBD -ODSGQJBQCI -HZQLQYKCLMTT -JEBMNHHD -FUEHHJ -YSJKMGV -RDDFDK -DJMPYZOWQNXOHDXJQWX -LQVJLJTT -XCF -TTJFCZTB -NLOEDNVLEMCNBWZVHUT -JAPZVU -GDSTQVLVDNOJ -EWNKUYCR -OSM -QHGPLJGOWZK -JUJNKXSJDJZSI -GMOXLEVQADAO -D -XMZUWFQBWNLARSEBD -QMNIHG -JLS -IWTVOQHIJMTBGAY -KRDSYJDNKOBEOX -FICEILR -FQLJNQYECEUEHEONLV -DVVAZRSWDH -MVLDPPGLGCLCIY -LWMASZOSQBFXAMSFZICH -ONIZPJTGUETVOOYBV -VVCBSATAHZOMBTFNRRH -67 -JPQBGQQQNEAIYVQFFYK -RXKPBLWJENPNFVMCTFC -BAAIYFDEGUIVLUAQD -VDNMHHXMJ -GKKGSFDNBBVJ -ENFEVBEMKQDRJIXO -DMJAPXCJLXKXYXOZUNAM -JOQACMHDUWZMJVBDP -JCGGPKYIQCGPDEKPD -FRCMGGZHBLXKFAIN -TGBFFEBPMEUJNOGZUEU -FXMPEQEZDXYEBGNZSWIC -DOYQZVJIAEP -MHXGENFNESIXCRR -MYJTBATAAYHFPTEI -IOHNMXSG -DTAEJUF -JKZHLPLLZMZCROGDMDVK -QVCUBWSCYHE -EL -TPO -VJGPJCTWMV -EXIRCYFUK -QQZRYDZ -WSEFARGSANOGDOFUEOID -CB -WSPSX -SONPMKENPKLSQQH -APGBJGOQOCCKVQ -GZCD -FGVVFHUIHAGGN -H -XJGROMHCHD -MJRZHQQPPNOQUVG -DNOSOF -XLBFECKFTMGNUVE -JRENLKXSHS -KJEQHASJGGKU -TJTKSIOLMYFAX -DDYILXAVCGVAJSMB -NUCBLKPWWBTOQEKUUKBN -PHJGASQMLIY -T -UTFUJL -NNEXUJFRFDJPUVJMAR -S -RIIVPVEERUZTQWGVHIYG -G -ISRHZPTDXHIFCVZZENCC -BTTBSRWFBZSL -VCALF -IS -BXEOX -WDUGVSHRNVURXU -RKFOUBI -EUVTY -OGMFQL -AHOU -CDTFXSQCHWOUDIRHAW -LPPT -GNBJLYRKRLJJ -AMDNSHVESMBYZXSR -R -WEHCNCCRUUIXIVEPM -RBMEQABEJNVFZEWAHYJ -GRFOBJVNJRAKWTWXYDHV -YX -78 -MV -JAIONIHSSPQYCJD -ONBHRHOR -S -XOZZGZX -IC -TUFFGHOBQVO -UBYKGRUUMPTHACPCWE -UBUQV -GXTKQCGWTSFXZQASH -K -FAFRUNBMLYUVCWU -DANSORE -WBMTLYDMMHL -XBPZY -ERQYJEASWIGUNBHVNM -YGORNBDLXJP -ZYNZENFEDS -ERVREDSNLLQ -JJBQSSCYNGWSL -WVJKGAOBYOJGBXHKQ -VEZPJXHFDTSAID -URHSMOT -PERRUCIYTPD -WWJMSMRNKHBRR -XHACQS -SSI -ELDSEFOIDZMMIWMBBGZU -ZWVFHBQPAMTEAPBH -ECIKLUMMMKYQRQWP -ABXMMTFUMMQO -ZQUHUYLBYF -LWAZHBSARA -GJJNFPOACAWVL -PRQSBR -AKBBYFENHXXUUA -NCXNROYYVDDJEUPFWI -UYDQICBXP -XMESFJFMVDYF -GUJULPYXUQELBQI -NRYZNINYEJBQKWGJDNDA -WMGXIEXSLONQOEVIAAB -CXPLUHSTVARKQZOJP -MIVFMMNNFPVHI -LTKHABARLQFSRUUALNQ -ZQWG -WHDEJFDBGD -KTXHFKQBM -EYMOALGHBBDCG -DEKWOWHE -NHMVIQQMPKYC -CFBEEFJHTPVSMMBT -PCBJR -ZJFAHVFXBBCAJS -WZ -LTGIVJBCECAH -TELVBPCZLRHUSSCRHDL -LI -SSJOVWDWXQ -FPMMDW -BYJTHUQSU -IENANMXVH -HMYPRFQLXZX -IBDUCVUMDSQOJP -ITVEADNLSALAPVJEK -INVEAGSV -XVZRVVLGMJPQLOY -ENIIDHJJZWFKGIX -GFSDK -KSAYEQJYHMBIOTXTIAOO -ULTAOVLYJLSFJPOJQJDC -SXXSHHJUSUMCLY -MFSZIZCROKSSHVDZOGO -HEVQPJCDWABKZJ -TSLHGUCC -AKBHGWF -PRCREBFFYQJYXJAF -YBCYMDCSSHZR -77 -KZOOZESCWYKB -AECAUYXJABLHYAGWQPG -KDCEROTHHBJHV -WXDXCJTILQNJIP -CTWVDSDKTMJDHXD -OFRDGPGWVIXGMZQOE -BQVKTUDHXLVZFOXBMD -IVCYFCVOZHGSJDLVY -LLHRFOGJSERBH -BZNYLCUEPCRBFNM -SBWQLCVUEUYZVLIJFLM -KICFREKH -OPIIFTCSBISXVYBFNO -NRNANPHWXLHXQSRFUQF -BZBDLJQUWQZPRIXOILL -TRMOUIEQBHT -P -YBXINNJDDCSM -VCQAXGNHKVIRDKCZ -LEQF -UHM -FZVLUCQTNITWDVR -RMWUINHNPN -VSOJBKVWNHDSHXCKOTCY -YOYVAGSNZBXKLYM -IRXMBALLTFFNAUA -LAWFXPUZSGAM -RGTPQHCIZCAPCVSY -CFSTWGZWLC -JVJ -QKEKOGKAC -YNMXSWELUAZXCCQGCPOF -TPSRS -SULEZXUOHYRQEVLCPTAK -PPBWTNKVXWCSRKY -DNNHEQJMFCWBJCF -OKYFIYSQMCWPPX -NYYSSQMHOYUGZ -PQJDCFIPMZAYAR -LFXZDHTPQ -PJH -SCPCXNSASVAFB -DT -ORYVBUZIPOXJHGIJV -KCIVVG -RQDMKEBWWJHGDRNB -BAGKVMM -UDGTIXFSJGXKHMNP -SQGTQMYL -HONOXCRYJCAJIWXG -CMVKYUKLXRS -AGFVIJPJDL -NMHFFAJVKE -H -HRLXQVOQWZ -CEAOEUMJULLDVHDG -CXWYIIPWRNMY -JRWNHOTZ -NCGQIRLXJFBJMPL -BKOUPNICH -RUTXUC -N -HPMTWBANCTLE -BLRBK -IVV -GUHIWMLT -KMQCZKVGGRRAUJIR -VLZ -ZIBQQJZUM -EBN -BZTCNLXBBTVOWBQBTSK -PORTF -Z -EUNGZ -VTSKIK -FYSNZHBNJIXZKFXB -NXVYEXCOS -64 -HZHPKPLFPYMIZLMON -SWJUT -BKPGRLFCNVF -XU -KDYPMHWUIYVGEEWCJQP -WSU -DLEVVHGUUGJERJ -CITQ -VZSNRWCHSPU -XANYJJMHWM -WYSZPNNWDYGF -RVNO -STS -BRPHXICANHLPEQJNOBN -UCKWTNSSM -SPECO -ZLZEMADSCJWDYC -OVPJZBN -QKIXFSQZOZKRTLG -OAFKGSDFDLNN -TL -GXSXZNGDQ -ZOXBCDAAWEJ -ZUEKYSOZXUUJCPXZ -UESVORYQCTPIXELSX -IFGDUVU -RLCYMLPNTEMQBFLFRAR -UCWZSNHERJBG -HY -EGM -P -CGSXHRTCFCB -XVXKAYB -PIXNVEPGERNOLJVUPPJW -APKXJDWQLHQ -MBQTC -WEGMYWIBXBBXID -KGWSAEEQGSZRVSBRYNL -ONBHGRPKR -QKOKKBBLWICCJTSOXT -UFENOJAXT -TVRMWGLDLWMJKYROM -TDUZMUKXTAOGMGEQ -YWQ -XVS -ICAPNZFBILBHDQNQOJY -DNWTPQHGZ -UZWVVQAW -EAMHHGHKTAFQGD -CKYTDUCBJXRKICG -ASHQHRFHICP -GLAIFUL -OETINVIPAPHAOXXBXFI -QIANUDBFIVFN -FCFGJVDOYYQRQ -PQBEWEEFBSKGJMDPVXGQ -NKGVUFHVNPOEOSSKPYDZ -JEQFLKIJXKPOANN -UWFIKHXELKAMOQ -RIHQJUSYLH -YZAORWHYHRZMXDVKDVAT -UAYJLYSFTKL -DTKNZTAMEN -HEPTTU -54 -HKSQJNBLNYKJCKQGOLSZ -KLPPG -FFRCXZD -PMNRKWFFYOLJRALCSJF -PCERZMYSBGIPEFCS -LRALUTVSOGUKPQJCRA -XAGTGIHXLCC -NWQEKWKB -RJLPLJCDVRDHB -GQAZKCWY -IUTWXUYK -RC -TUXRYHLHV -CNHTNUIFNVPM -DHZOHNTRDOYARXVAZA -KUHQZUHKCNBOVDRIH -YHCS -D -RZEUPL -CBFMZCS -IIRVLAKUQJ -ARCJMGTJVCDGQOZ -RWSUESXVZBCXWOYUPXY -VCBFUTPEAFITESM -IATDPDRKPOGAAWVRT -HBELXJLMFV -XAQMDCIMMXSSQKD -YUYNZJASSLAXC -JYDNFVJRPUBAAFYMH -QQBEMMHNVBIE -NSWWDMLNEXQP -SBHLEQYIXVQHZHMNWIEI -JMUJUFIAGPMLVTNMK -UYDVVMRVAZ -P -QQNUMRKD -XQJOFOCGGSHDFTXVHVX -LFNVBMOJNUMNGODFU -EP -XIKWVBPSMNBZGFJHSVGW -LYOEOIWR -WTQO -XCQZLEBMLTDJM -VDHNZFEWUPAE -YGNWXYTYGAOKCSXXNA -MFALDEZXUJMZX -SRXNQQTSSLDMDPQ -PDMWYKXDWKS -VMOUPCIGFDKATAPEAH -YKQUCIVJGFM -MOZSLUULJQEBIBAPL -FFFFOEX -QJYXNERDISM -QNMHGMOJVLPSQ -56 -OVVJYMEFDCUNEDTT -PNPX -TUXELMBCB -STXWXWYJBUEUKR -PZVNODSO -MILHSAAKPWH -IJNNJXPYSCBNH -ZHLYZEYFTRFXROHQZRU -LABCDYAIYAZBL -THNQWVUKTR -GBJACMZ -MDMMGPRZP -DMPZYROGFBELX -VXDSSHNWLLSUPDMT -TGYMWEOP -YWXXCDAHLSQWAYZEFZ -DTOPLSV -UXYEJSGMKNAOXJGPDXUA -GDMKKBYCG -NLEXJR -PJSIS -QVJNUIT -TWJNYLTMW -CZBRELR -TDGVBULWJOHOIU -KMXXVTBEQELHX -R -CPPJPVJFRHGCMV -CSZGEVJDLYNVAHP -FGKQRRG -QITHYNZLUVDVYGITIH -PPPNLVFVR -WB -ENAQEQREP -TAMZMIQDOGBEKSSLTW -TNNLRNUWURDVUZAHU -FNDJXODMNOZDGRSHX -OPTNFZSSTME -BHUONIDRGJRZGWQDB -LJVRAKVETWEJRRC -QDWZCKBQHTLKSVCNE -RX -VZZBETUWUHQAJCSGJ -JMSWOIFSLXEHGYHDFF -RXNRYIWJCVGYOWISP -RVDMJ -GHNWMWQMTJOPDFWZT -IHKCABWJVICNNY -ZN -JUDHEXYZETD -DUEEBXZJZAWTWK -OTGKS -DEGXJWLBZXWV -XGPDBQZMI -ORFYITCOTRPLIWBM -YTMOPROMPVMXL -83 -ZEHI -KRPRAKYSINEJWGNS -KJYSXINZJFD -PUWCM -SWCXD -YQDHTE -CQ -IOQRLTYSBQUFCBTYHKBQ -IKBMRR -XDAEOYWHCFMEG -AWIYBHAKKDOO -BGETDKNZRPWTUW -NWCYCBNQMOFL -YO -BJOYAZGPTHAL -CKTBELGMPMRSXD -HCI -MIDSPXAPXLISNULRBRV -APDVWJAFVAACQXCXJFB -SVIORTPQ -M -PZPNFPSSILUQ -OJFTK -IYCITRXGPPPUM -AAALNQIRNRIRO -PWAYIYTBMEV -VRTZADTPIGNQXIMTD -RTB -UODDAWY -LTBJOVZXAB -UVYR -GHZRNUGUHPXSJDZAK -ULCKKQETCCIAKDJPXWVF -JIBEAVGTMS -OUI -JCVJCXEEJWYRVXSVQPVA -DM -RZHBTVKWOP -PEOIXVOLF -SASVETIXLZA -PVO -VRNSXNRIBT -XIMYSEUHENKWO -HRM -BAAGRADKTEKUHGKPKY -YAKBTBVHNIOUGBUK -KIJUHPAOSQBMQLG -ENSNCITZVBNWWTAMF -HWHKNPSSD -BFOMWNOGJNXZXDDSE -QJUX -UUR -FWVT -WCPTSBSGEI -WMPBOFTLVW -LBQXKOCWERLPS -VPA -EIWSFMWEYANIUX -ZXMBIXXWIPPUPWAME -BAIXVXJOGBTWG -AOOVUGMLQLMITF -UPRMNTBFROQF -HTPYCDFKOJTEG -HTBYB -FCEWJYAOZZTCTVFRBU -UQZHXOA -PHPJEKUWQT -LG -NBLNDBBXRWC -XLRWTSSJKIBTF -ZXFGAQQSIKMBVAQ -LECFIKEBA -FR -LXODWFT -P -KVBUHLBEB -JJOF -GIPOTIUXWSEO -CYBQRVPVOTWKVC -SFWRNHX -HGKVYO -TJVVZI -KTWONIPXNCSFYPS -71 -UAFXUQSRONJRFLUQAAJO -P -EFHFR -LKAHPOUQXSOGFGGCDP -PWNTTUZGJQ -JXCQGS -QHPWNVVPRYCNOCTBBIKY -LKTIH -QHGAUVHMOJZNXTZYUDPW -CEWVXWUWIAR -OPSNENCPDP -PRLHAMTKKTVFJBRGWM -VDYQSXBIYK -MIUBVZXTHWZVMHKG -HDJFBHCTCLMY -CRSKJFJCWO -GUX -PYDMZKH -VJDDMHIN -JKHYNQ -BDLZGQNI -AQUZMKXYRXIWCSVS -PXKEPRMR -UROKMUUA -UWOJGDSDZST -OPYYQGLAQPSEBYVNB -TELOZCGRCDGSW -BXDRD -NEB -SOBKFNKWM -VIWXMM -UDFBMBZFXLYJJ -VOHWXSBZBTGOCLMOZ -FTSOBVXLU -ARRXELVXRN -TKDJWJEBOPL -EMDBGPNRHAW -INMRMPHVQDOAKRVOYQ -BHAWEWTM -XYGPNAMWBVFPMWBCXXJ -HNISRGL -XJIXXGPOK -PBFANYHMJQ -QIFHQURNCJMITVNMCGE -HVFXMTVC -HWFNNLBIQ -J -VORSRP -YWGV -SSSBMHJE -BERDEDZFBIUSTEP -KGUQGWUNX -SHKOYFKU -QVBBUQMIKQT -IJQBSACREEHUK -KH -LTOWPALRBMZYBVRAPEUL -CBNNWXMDLYWZIH -LRTXMFQWQLSFBEWEJHV -J -ZPYOLZ -QBGMPPXEMRZ -N -OWREFFNOBJQ -MLHEFK -UQCFDFSNLCAHU -MGLFOSRFIWKLX -EREHOONS -NZPZAUW -XTMVSINUT -FSNXWNHZOBNVTNDDLWPJ -64 -L -QYASCLVN -BXSQDQLGVVHIGKZV -LHNC -INJNTCMMB -UTGB -UOCMM -HZATZG -NOWT -QYUSRCNJAHHBTTFGXH -SFVBLJPARBYLLBLQCDQ -KRFAPLTIKTPKTL -TFNRRVUDXXTJEHO -OZHWKNC -ZVAATJNKRPGFLFTHLOGD -CFS -EMX -DXWVNBFPXOLIUQTSFSMY -QSAKIZLTKDYMAJOV -QGEJUXRIPOKMWFBQ -VK -VUMDJXCZWVUADFKL -Y -DILEHRIXAUTPHN -YJIRBLWL -MHBDYD -ELPYWFJORNIUL -BBBXSF -RCDYRZWV -FGPKBQLTJKRGZFXPP -FSVWFQOYMRLZCVTK -IUERSPPWAARKA -IQZCHABYLTSCIQLAEVLO -DHXARYMZCHTKVKK -MKGAJWWIOZOUNFXL -YKAKVWMXRDRVGKGGQBN -ALVTDYA -AXGNHLGHBEPOLRMRDG -JGTNTIQNANJ -I -FTLMREJYLMMXVP -ORDAIDQVEVXTXCYEFVKI -NMTDUROJMOSQWBMNQI -JCSNIRKREXPVZ -LES -RCBZYCHTHBUK -SWJSNARAAWTNJ -OEAILTKXKUFGIU -BDUAHTAANIOEGFHRSMI -ZJHZIDHDPJ -OJIPPFLVCTLTXI -DZIBZASDDXLCXRLBYT -GKAZNMQHM -CAYD -YNUTJNJMHCWLDQAB -CXBQR -CDRCUNDRYFXDJAFB -AKDX -GQOGNIQQKFKXQUB -ACBFLBLGYN -HEEQMONCNYZVUQXMI -AJOTNPAT -UFTQM -UUTEVB -59 -ORZACHODQA -DPADD -FMIPIMCHEIQVAIXHWPK -MTNTOUTRXIVDQG -VACZ -SQBSBICQLPVA -KO -VY -UCSPTQ -KIUJANCSG -UPOG -GTQMAHG -TBPEUXWWCETDEYGOWB -HPYNNNZOYLRZTVHMF -GJCKFSITKJQS -CXQXYAN -DBFWOMUZDVF -PNIWQGAT -OQWVCHGEJC -BVFUHKZZHB -SWZPHLESBZHAVRYV -PSAOUUJPC -PZWCBAPJYKQY -DKPNZDFCPLBPO -XJYPD -MCZDLH -BPHQUZLWIU -OYWXSIFU -A -XEIFBKUJCEIXFUBZUILM -VUUCCSDSWMPY -ZSVOXKHKAPNFJ -RVAMXTPDDSTPOIP -NLMXTOQVFCASZMMO -HRZHPDNPSLDXWPJDAZW -ITWIIRVMXTTDGHCVLPV -CHLJQGJ -DSOLBYARFTUMTW -AYNSMF -XGMAYGQYXO -FYNYSAORMFPDDGSV -HJVHPHWMRHQBXEW -LKIR -LXLCTSVURETZLL -YAXITQFLCINAQAXUP -OPJYCLOCUADQXDFBI -DIWDROSWPNTWDIGMMAC -ZSPXYPQWIPOXVDH -XPANE -VIAJUQSLKMLRBTBJ -PCKBMERFJGJOSGHS -ZWSHDJWSTGNPRGUNX -WWEMOELWOTJGHRBS -SFYDN -KDIZWJCMVJQDBX -CWL -LR -UWPPFLRITN -EOBQGKZ -97 -LHFGIDOOLZXLJ -NFNXLX -VWSXAA -LH -JHBXOUJOA -BYGBRRYZIJNY -FYIYSBULP -AZQARWQTCZO -PCUNHGEHAXZCFRPEYA -DSJLI -OIZVCHEBNAIG -EIUZRYOVYIRFRUNU -TUOKWNGXYZNUDDPMAJSO -TXBNGTD -JJYXDJ -XDHGXCBIGXKZG -WEFXBWZCLTRGUYF -WGSQVWNZLAMEOHHZSYBI -ACOEZWU -MGHAUVZ -YRUXSPW -QI -KPAOGZGDKYLKOY -WSONJHKHRSWWBGXVFK -BOARZCBLAQOBOBIBLWWH -XOOJFUTQNDQBULYB -KXRJYXDYZORR -YCILZUBLERBVK -CDV -TPGG -NPT -JNDRZU -SBEOVBXWWEQHSMTZSZX -I -LVXINSPYDGZVKARSAAT -LGL -QLZZS -DYIWBCRU -UAASTJ -WPP -XVMWCRBCKSWQJOOBC -UNFCF -KYFPRVRIAFIYY -ENY -O -PCWFQTANBCHGBXPWCYO -Y -YNMZFMOUOSWSKGTMFSN -D -XTLXNMJB -JNMORSCR -QFRWQVUEKAXDTSZAUS -YAFLKYNBAYKOLXEPTP -EKBVWBLKTCELHIVY -LRNFUQVQYDXJ -EGIRUCXN -T -HXLKL -QBGYO -SRQZ -ZJT -CTV -LLEWGHIOIPJPACQRTVG -MPECJHVWZYDNZMEL -OLZITEKC -XRJZ -IILDOJYCVOGKNJHUYGJ -UX -FD -W -LACHZJQLLAJK -SJ -AE -JZPVSQNS -FLGIPKLPU -AUAAJKRY -CULV -Q -LQTCQEMLCKB -QW -JXFSYUTDLOYPWN -BJVUXBKQEAIFYNCEMS -XQUXGMHTIUMKFBUNF -OFOITIEXUJFKGQSFJ -RVFTSGBBEKHJYPUCT -UCPZMVPVBNSCTXQJD -LLNEUHLDBXJNZQBH -QUAVJYCRTIMLIHYMTBYW -RXIMJJLARCWJDQD -ZOC -KOQRIHCO -XHIJJPDBQSLW -YNGIQJTPLTFROP -PANQILUDC -TPOUGWZCVBDDTUJFA -NDGYV -TPAWCUZTQYNOPCKOTBO -86 -GRT -TBRLDQSEQ -AAHD -SELDVKMD -XEHEAZAMKEDETZEOCOF -GIBSFWIHZTVKZUXPP -E -YSMAPLGXMEK -MJHMIJGET -TE -XH -DTSAMFWI -KMQRYE -ZOMWSX -AQPENTQDIDFVLM -YDKZ -FJMUTFZLZMVZIUHITLF -OSIIVTDQEEGYB -FOY -B -JOC -DNPTDYLHJH -RLKYMSZAYTKROMBQN -VZKXLASBEYTHFFBXAX -LZIDVZYM -FFX -CLSGQPDJ -ZDRGNYLMOYKLWZIQGHP -RNECQOC -RT -IZDHXLKUZSGXSNTYWEAQ -RGZRXU -VFKEZKG -ROUFCYQSIUSZGXXO -FAHDKPU -AJXGUEX -MLXCK -S -XCTVCSQWPHKVTG -LCEDOIS -HRBCUMPXABHVROBAN -HLYZ -UQOG -XYHRGLD -MZNEGSJNVZIF -COHIMOX -NLFZGCZYIMOJOBBRSWY -XGCQHTC -RPMPB -H -EIUXBVMBXWZLPXN -UMFW -ONOUQIWEGEHZCSZNNGUL -TPKEORJNVHWTVR -QQUKHBUGZKFQRNSN -FWTTNSDYJVD -MQJTR -CQXMVVUAJNROZDQTRMX -LN -JLKZPISFJ -OWCUAQXIPMZTIWQA -ZJJGEE -KFCQHKTYZTBPUTPMF -KWYLMMRQJDSOFEQM -GBQHB -TMJYRYECLPOPYA -TLJJQNRUUOVAOQI -ZCGLIWFOIGCKRDTDJ -YMNMFBTVJ -QDNBNMMTGANKLRLKDK -IOTJZKLDSOIIIOU -DYASNCV -NXZPIZWERAPMS -NAIWCQWZESTDL -STBKJFU -NYFHQQRTTELOAADSTGAR -LSTUPJVU -LRDOA -CTYW -OJDCBUTMAJZ -KQGPKQ -CAYNQWJMLFV -WLSMW -WAXVJBOBZGRIPBFY -QWULKBINWPGXJT -SULH -52 -HHLAUAKYXJYUUF -RKMS -YELXMPWYAVVACOUDQGAJ -QANFPPJZYEVGTDNL -NDLNFRZA -BWMI -EG -CNALAYHVWZFAOLD -QAEMXFHMOIIMXKZXOZ -VICKDKSKFT -CXUBUFMGYNILWIOHCY -BMEBKXEQLOXDT -BFJJZCHDQGCJ -NZXSTTWRCP -NNT -WNYJCEGFFYKWPEKFX -TCXOGROMPFXBFTCOIZM -SIWLFHJBHAEJZWKWLI -RJLRN -FLTNAKZJDV -KWDNMYFPQIPCYOFIP -LIHSCWQYAXNLJ -SRKEUGUDDGC -OBRCOQMKDM -RF -TXXTFGC -BWSHYRVEQWLYNA -YRMWGFHRFDTLREGS -XIEUE -KEQNSLERIN -ECFBF -FDKPZ -VY -BETR -C -KFMTORE -TBLYPIRYRNHEVARUHJO -TUBEOOZZLNZBATLF -SKASKAGTPVBKCXQHLTYP -TQYBAKPCCXMAY -VZACTXSKWWIHXP -VNJXUDZQ -AFTYICLB -AYHKJJR -CHNLSNNJI -RBWQRXLYHK -ATNJHDDOJGFLSMT -JUWSHPJGRUNRBSIWNXB -U -QTFGTHSLZSQPOZ -M -QXU -69 -OMQMWPTADDDSDINUKPI -MVQYYQWAUBFM -YFLTAJH -JDJG -TWQWHO -CAU -XKRPEOUHDMQDHQCGQ -MMVSRXSHKDKTX -PHHXDL -SS -WYYAIGFAYWXFVZAB -YSAXZPSGRQRGFOVI -AHWXKHBZDKPV -IJKHFYDKIYYRP -QLIJN -AOKJMOXHOCRLJORE -TEDNVSVHJE -JLZAUAGNHUHYYRAL -BWRF -BPAHFBDUKOHCHIKGS -XOC -SLVQEGOFLBBBHADEA -HGDRSGFOIVYTM -YL -NIGLJM -VINVMUUP -LDNQJNID -MOLXBY -HFDKMUKDWQXHQCV -LFNGAZVDLWFWCI -EVYOJUGRNFDCH -PKOURGPAJOGBACLPLY -KDXPZPQCRAWHHLNTJF -MCKOOQSMXRHI -JSZBOXBLWOFQPCAF -ALNTXCUCBVLJOEXFEVY -SLUDQZBIGGD -VQ -XHUQEAJDGYWQMZ -ZUU -TSOUBANQHMP -FZDXUZJZVOM -YD -NCFUOG -TPM -IYOEHQ -JDXPJT -N -PHDFVCKKRWSGTBWDI -MEDTNJVSHHZLEQNO -WGSYOIUJRZWVLCEMYWU -JXRGEFCESUUSIG -DUVYBPGJM -CNTWARHYZLONHFNNF -ZSDTEYZNNIMCAMTSKS -ENTLTICCGLYPJBEMR -LLMQWWKAXXUER -HLCKBZK -SGSPLP -SHEUIT -HKHDRSG -UZPWMMOGPFD -VNARAGCNMQWI -MUBTMOPDVKLFESS -GFDIIN -QFXX -NYUIGVEBIQGMERRXXPYL -HNEUGNZ -ZNBXFNFSGTVMI -67 -FFCYINDCHWDSFRRN -GPCCWJFQGDHXAWVFZP -ILPP -KZBUMOSAMOIRAG -HWM -NKQUXYBBBFDGXAMVLEMX -NLKLPJDBQIRXMWQFUCZ -CANEJPWCRDRPHP -GBTRZSHGNVGJCKJC -PYTXWIZJT -OEDCJYALVDVJEQHBG -ZZIJ -QJIS -YHEVZHXFX -IHLQPPY -VJMIROWZXANVRMRIIY -FRJNQUMDGUTXDM -LECIRNUE -UUHRAQAQHFLF -AUURYVUARRAWMXGDGN -G -NOKDPJRZEOQQGZZGOSTA -OGEEU -KTLGOAZAKE -GKDORUKXEOSZNPVD -XOWVRVANIXDNKPX -MVAJTKE -FDUSZLRMYRRYQKVEORRR -YGPCYBXTNLOQSCIFYQP -HUQHZRMYCATBTIHB -PVDS -JGXZWAYEVCDJUVVPVKPE -WTOXJFCQVTAVNEN -WELGSTWE -TKEICKXLPR -GGTULXZSOJPPDOXXES -ISGKMRSVHQGBMBU -LFOSAPXJIFLAAUSWF -Y -VG -DYIIJI -EXUFNKLQVLR -AJJVZIEXFIRN -SCJKGCWLPUVSEWQHWRI -AD -EZEGAFQCGI -TLQCYBSJCSGNSKDOULU -NPOCPWV -APVIMHRKKQXPSSWJAD -NLKZMNJKCLYVMVAI -ICMSNNDQGY -SN -CHSAQNQCYVNDJLQ -HMJN -NXSIAZSSX -L -MISREDSHLDGQFT -SFEGFXXGQZCTSGG -PBWIEPUEOBBMGTFV -NQUDBZYULZNDJSVZH -JIKWHATS -HIEVVD -QIBURWAIRHSIK -UWFIREJHIGABYOKS -TKTTSQHGKDCJLNGSO -IGDB -JDKXMRNBVJQTT -63 -XADG -WRCDUHLZCT -NVRMV -YFPJKIKO -VFIBB -WAPJJXWTCECAYJ -JINYSOM -CEQJNHSLACXYRYXO -YMNDMSTDECLTPG -EQXTIVKHDKV -OWOMNQXQ -TXDRNH -RRDQUFHJTDBHKNPVCD -WMBVIA -HHYLNGIMHUQJSOSDGB -DEBZJCQJCRBODEKN -RDSSWZCBBEH -IAVJYTSRTCBYDBN -LBIJL -PCXP -GZS -GGXERZLRBCKOSOHPA -PPUBWOHJC -PILQBDYYGAMUHB -ZBQLQGMBNLKPRSQQ -EY -DUITI -IIDFDFVGNUKGD -RKJ -RKALZBDHEJMFDHCYOH -YOJIX -RMIWBIRTJNR -VDQMEWKCD -JPWFAXNJMPWJGBH -WCYVC -ZYQGQJ -ZRDAJSGSXVD -EBVZHSQJNLARW -TZDUDHIJZBWZLDSZWNY -P -WHUOPJBKVOGAPY -AOLLJBFXDTLLSU -VTGNCMTY -F -UUVXVMWXR -SOSFVKRI -BTEOWRZQHBTNJMEWT -DIPVNMJANHBYMHIDRFRJ -FHZQVZYFQHRHWDBJ -IRGLEH -VIR -OY -BCWSEZHWZSAZKCIGGHIU -ZDOLEPOZCYVBOXWYLXT -DNHBMHKC -FJJGXF -ZVWPWIPOLAET -RZGXKE -BFHAPSPBDNB -N -YYDMPZIOSSKJU -ATNTUUAFVDSPFIHY -ULPERDXEFMYRQ -83 -CQDQJHKKB -AAWLAIYKS -W -YVHJVAHWQQSTW -TWKWXBARCTZWFQTER -BRSXWOHPDSN -W -CCFFQWNVICZFEXMA -HTLCHDHKZOEU -TGXCUBQSCFXZ -PFWRJYRMCT -QXRIKCRMZWBAPSJBRG -PCFYEK -DYWJLEETLIERDMNLO -ICFGHNBXCOZZQHDNDUJP -UVHUXES -M -BAXZLTZSNMMQ -Q -TBQBXXVIJ -CDCYVHIJY -WGPOZNNGG -VPUAFAIZKXVGAPOSAUDT -UCKSIB -WQAWVAWMRZGIYMQUMF -YAB -NZ -BZDLRLLJZDYH -T -UFKKWAOTEITWCOPJ -WCRWQJDWJ -BBYPUUPBRHBXO -DNV -HUEEEVNINERPFKBU -VFXAFLBZZXIRT -HXLDGY -TUMZ -HGKNWKKDDIBQM -PKSEWQRM -TCURMZJXFFFRRD -QKBG -NOLBS -UUAZYBKWGTCQKMLOW -ZNNTXT -JKICXZD -JCYK -IVPHNACOOODHELQGKRAZ -DVNFPDCZEKITJ -UMKSR -ZVDDTNMTIQ -UGDOB -QCQJAFSF -FSAHENS -DEPLYEBPGUDODD -VIXOTTCHCXKWRBIIG -PEW -TOWWKOWDCTKNIPPXJRVX -PYEVT -SIGCBUFH -IBYS -CJWRCX -QJABDOQ -JQ -E -UJQZJKUURO -BYYZUKNLJRUZSMSZVBEA -OCAELPZMJTZECQOTGBA -FSPLUTWENWAYHZIPUAG -EJYKUWMUURBGGMSR -OATOQSB -TITPMPYO -AL -JYCTLDESJMLTRTQEVO -T -KCYOLWPYFJXIF -KRCV -TCPSGYTIGUCMBQDDAD -ANOYENNXRJXFSWZM -VCSYFSUBPMOVLFM -AXHJJMTBAYF -PAHJRVCENP -QMG -IYDDPRPLBESXDVUST -97 -FQNBTFGJQEUCPYV -FZUBQXHLRHJWYDCIVNNX -CNYRQALVRXPEQ -HZQRPMGKUXZIS -NENUQMPJTLRLSMCVJJTV -FJMFXTYVYOTKSTHI -KSKMPXOQM -IAJLHJ -RZ -FZQZZGGFQKVBYNUFMJ -KIFLJWG -VDEITWZZA -INDN -PMH -NPAVULWN -BVEDTRVYS -MNSOWV -GHZHUC -VIKYLAPC -HSTMACWPAOGSUFFKDEAV -AXULPFRFXGJYJB -BHLUFRAAVWNP -MQOHXHNCXOZQIY -TONGGFCDRKIAIYUAT -CNXRIKZCO -BNPGLGAGPK -PKIFGJYZJICGIEB -WHMX -TPR -VDC -KNGILHCHQHKFQHTX -KMOWRZBPGVFRIQ -YIKPZVPPOASGOKFXF -IDEVANT -AZIQEFSLW -IPDDCOIRLGGCJHPPHQPX -ULYFMMFJBBEDP -UKIZM -CJRRDUWPY -MGURSZN -WJRNGTDHAZYURBO -ONPBJH -CRCYFQDCERAPM -OMZICEKJVYORPVNAJHY -XTITJFKJLWURAWS -ICLZRJJWBSVRYG -DEXFEOBYBXILGQFRM -SNGTBTGZZFUVCQO -NLHOFAGDFWIPWD -UXKJFKSUTDOCGNJDOIJR -CSVKQIBJKCBAHDSWV -YTHZWNCBCETPCVB -ODF -EFQXIEDARRGEKABDYO -VGDYMGVVKIZFEWSGUPDL -DMVUBGX -CJQAA -KIGXENSPLJBOUTKZKAI -LEQUNQUNJVZY -WOHLPARLWWTLWLWF -NRXCGTNXDMD -GDDEPW -MNXOKMTMRGMZZBILU -A -JZBNCXB -FB -UPJCEWMCLYRKGSMGQV -JECGU -UOGPKUEYN -PWZJRNNJKVPWV -LLMJOWPTQUNXNESEG -XPWHMCRZJBQQMUVQFNBQ -WO -DYBBYRSX -MK -WDCAPVM -HRMBDEPYKMUFFVBVIL -YRHIVJ -XMFAWSXROIM -MCVJPOXQAHMRPUA -MRYKQGDUEIHICUS -FLZXDDFUSRNEMOPAQYHL -TPQWJEBOHHK -EWKVGMBUCVJKL -RBRDXRCGJAFPAMGIOTF -RTRTAHHCYKRMCEOAC -XAUIWI -I -KOMTZJZHQTXSHGM -MNGUGCGVLMTXOZ -DUEIEM -TXZFWAKUUQSWOBZLFH -TCBXPUTXYCUOZRBAJ -LFTJEDPHIWDRNC -CZDPJVYD -ZZQCGSWKVHJWM -JBCLKGNXNPHASROQEIWW -54 -SAWUGCNO -GOHVYYRSCFDREYCI -VIRDPFEVWCGJTZ -NTLWHOLXXRBXA -CDBSBFJXHWJ -RXYHFRGLGJ -AHFBAGDCJMCBOBFSK -ZTWGDDEMVELDDBE -CHVQZWWFYICUVMZQIAC -YFNSDSIGROMOJIHLUYZ -KDGBY -DNTAHGPCXGIMG -KDYEAPXGQSJL -LLHK -BDCCX -BGJBPGAQVPWDXKSN -WKVCGOFJQUYRUW -VXYTPKCBY -KD -XJHWJC -GDXTCJTLWFEUHGNXA -ZDRTEQHRBDX -SMYUNGXLUCXTIHNA -IETAMSMW -JKDACBYWMOQER -JROJNKOWJDVVZFWF -FVLCACPDCLMIVDW -NRMBTRHOPGUQUB -BUFELJSQ -FMCRG -YUKJJIGUYHRZUP -XYJCAGGCXMQL -OHHOHLDTCSPAWLQQVKI -QCNVSQTJ -TQPIPSDEPFP -ZHOHPWUZAREDW -NJWBJBIR -UVMSFFLMVDCQMMMHH -GHARRXXHGDWWEUWYUY -LYLKLSGKHGZZ -KCKQCAQVYLDKYG -GQHQP -XNIKIVUDB -AEHTYHU -CXZITXRJYPY -XFIGRLHYDDXWUTUCUA -HAOARD -LKELZBTBSAJEDETSYBIW -UOUO -YAAFKQGFHHIEXFXLY -NTJBEUUZAQEFJMQWDCDZ -OIAPBPYVF -LZJ -LNCIP -50 -UICCWSQVVSQ -FCMTDVBV -SAAYUXUKNMPNWXFOLC -I -CMTZULMBDFZYESGGXFKA -DYQJKBJDCX -LCMAHHYES -CLNMJIRJRKPFST -IWKESKEFOO -QRSVVTHAHKOQCHHKAZN -NXASH -QPCFHXZUFYVMVBJ -VRIBRZOVJO -GOAZNQMDVGYZSVHTEYUD -EZQEBG -EQW -ID -VJTQLEPBCTQGGDKH -NV -SNUNIDOTTGLLF -PMX -XBHKPTQGBTOJTRYBAMKE -JTSDUZYJFPGUEPTLAL -MVPNUHZWEVBF -TAWGRBECAQP -RJKMQX -XKQTBJRDURRETAL -SOGOMYWJ -H -RLPS -C -KMBQMVHXIZLOXZ -ULLVWLYKZJJUOLCPKKBR -BFXPLELWICGLT -JQEKSYZSCJACIMDNL -JHOB -RASQUGUWYGRYYUZPMX -BGOEJPE -JLZJWXR -VAEQGOCXAIZXQ -VXPWITIRXD -PSTKPLZZLZNEMCZFRSF -PWWDHKBUVL -SDGYLQHUX -RCNWBBHXPDASIKWR -ZPTPBWXAANXRAWPPWNB -FGYFQIOG -ARKBKC -JRL -FDR -68 -MKEECDEYOGPVFPG -IAUQGVOJCUNEJ -IMNETBFFOC -UGUNSTRZSAB -YWCBMHFRLEGEBLTZXB -OOUNAOABEYPGX -KWODKEADPT -JUBPNUPNMV -FZVVYGWGYYJYMFFD -ZEVOKDPPNUVIDEYKV -CHYDKICPLBD -WRSSJDDWPQWSUJUQWVL -POSOULVOGYGYZJTRQGBC -FYIQPXWDLHQPZVFPTV -DTGBNCTPTYK -CRNZVQYHBLXYEINRLD -WJN -DDNXTP -WCRJPEZWGNUWJ -FY -B -BOOEJTVMYFODOAHBO -RVGASZ -KSDLYRHOTRSNWYQ -QQXNUWLTXGRJQUMKTGN -XXNHSAFEIVYKNFVGTQF -JPVODFHPF -LFBBRLBXYALNIJK -KREBBIX -AEZPAQSHTLWN -DSTESPQWIJWB -TVY -IVBI -J -RAJEDFPPJFDQVRRXCKZ -CUHKLALNJVBA -CR -ECJJRBGEQIHLWBXVLE -OK -GLPTFEGFIAORT -KUEAXRBUAIAXOD -ZIECNEYTVON -KDU -WUDMGMNNVXYRNLC -ZH -CEYIHGOTMKYZOXTM -TZCSAQEFNXRPCQNIZLW -JHGL -SCXMUVIMEKFDDWSBX -TJNCKMAJQTKVXWEYF -PJXSXDIQGHIPNCZ -YDWIFFCJ -DFQKGKU -FIYEICTVHIUEE -MJR -HTCCYTMXVDPSBPN -XHJOEQPYUTHZQBFEWWP -PGAAYX -VBHBPDJA -WLRCNSAK -OCTJFLBWFJVSK -L -PVSNNVBA -GKPR -ALYLVA -WOBI -KUZLJIQACIQI -BZNBHINUAMGSGDRNQIB -90 -IKKIMPUOQNL -WETYICAPLNUIMIU -KWVXMQCMNNHFJS -SV -DYY -FOTFECPQIUIEWMJF -HP -U -NEBOOD -YTNO -BETCXNFAFS -KWQJYWPONLSJMPSFTI -HCBWPPNQCXBKZ -DKJIVTHWSMHHRSHU -JNKQDZVUTPVACIZMJZ -VCKJOSI -HOQ -TRWNIEYPR -RRLWTGK -B -LPAUJPPEDPI -BCBLTSWKRVUWDJ -DVBCKQRIVMXKUJDXKOEN -BWRNUBQ -BUMCOWKYXBGQ -ZHMN -ETTWCBP -OQ -KHKVBDOIMKRBWJ -LFEWXFBHVYZYYPZX -ZBOKHPDQAGWL -NQSMAFHYBQLOMIQSEM -MFTX -AKAIVMIS -YJIRZLCHUKJW -ES -XEDP -DXTQCHTSQTGMBALNK -WANFEKQUZUXKZQETXQIC -GGGJLQJDIOBFQRZL -SNDGBLDUFTYEFPCGKP -TWXYICLMJRESQ -JNLEJNPJJXX -HIOPKZLQH -FZYJDWEMM -OVHLDQZLSMAA -HIZYYVXZJSZ -OH -ZNOVJRU -JVJRRXLLHHQGCKUBQI -FWOBTD -MFIDZRVLVCSJB -QZGTOGUUYOFDDDDHV -JEWTNQQVD -UWVSS -BEPJFFCIIBVV -ROLBWWZEESZ -YDBE -GJNGKOEXGLMIMVBBBSQ -QCZ -DYBBHDG -MAQA -EA -VXTJJLSLYGTKHMKOPQ -MUJLJPCHLUAABDREXDCN -JZQPDYY -GKRUYBQQ -IJRNNVHQNFXIVKP -GPZNWAAIOISEXRJBFJKZ -TQFEFDWMGJUNGG -QKJKKLCIUEDP -LUQXUUWSEIVRPB -KDNOUVYRMSZI -SUCJTRCIYJSMVQZIZO -YQYCXF -MYBDZHUYIIOUWH -MQODGVLAQJJZCRUQKOZS -HKFPSXGPMAEO -YPVKAAB -RLEWRLYXPDL -SIZIAWXQIYLQ -EGIHCMMQXM -AY -KYKSYCDMSMGRX -QTURP -THLQMMIKWHUIJYMTLGNZ -CIBPX -EAUMMCM -V -YUM -66 -WMVBF -BOMMVSUG -YUVKREBBCYPSKWBB -APMTRMHHSNXBXD -FHVPJ -OY -HHW -WFHMWTTVACPXIFBMSW -TXENRLNKTF -SRVMXTWOLTQMYFNIUR -AVKCCJULATCELY -KNOAATQSQJKAGA -AJOEBDGGOCAKN -QFFNQN -EMNGKFFLFMNJO -IUXKMZPR -MHJZXXATFNPTB -KBYAPDIKB -KARFKSWZXSLML -PJWJJHMJAU -OQIKQZIEGOUYIAFMLU -GWSKBPDVERMUIAETKUKR -VGHDRFZQETKJKVSSNIWL -LNJAXTKGRRCEWBAQGL -HKUJMVXPSVTOAHNRQPVB -PBNNN -UPBKFCOZAGWVS -STCGJTOEWJV -MOKKQQGLQFXITDNBZXVQ -RJSJSLXUNJHLMPQIPBQG -BCTKBLTJUGMNZOEHTPFR -WGUYENYXUXEBLOO -SGOMKNJWGSHULNKSQP -JFTOWUNBICIOOSP -SOVZEYBHVLX -PYEIDSUITKTFRADCC -QXINRJMIMPVT -WODMWPDYJLEGZOOZ -CBCJJUUOMEKQSRUNNV -CZWXMHH -JUEGSNA -LMANV -WLYGCCATRX -QW -E -YZNLO -HZSIBJTXMNVGPV -YGSKKP -JVQO -AUCSAKTJVMNETLJ -GQQIPXAZNMBHNNBXN -MOYQ -UEICOGAAWAHLQHDUDE -QKVBXYNATW -JDKZCLJOMI -HQLK -VBHRCH -YAMQDXFVR -RWVFFVBGIPFOQVHXJHS -MXXABKPXYUN -D -SMOJJSILZXUCUAEDPD -AWBQQNR -JVMTWKAVYPEFWAMUZUV -OHRGTJHLMGDZASVSQS -QA -83 -KCBQWTYIOMFPAE -GHKYBBOLI -YKBRPGVQMZ -ICMAGCUGZBWCGC -PMCIHAV -EIMKCNIEMFRKXS -LMADOSSNSFFKU -K -OVNTVJBDMOX -CHMQMBNRDZTNGETXK -R -RULBSEUI -OAFMUSVPGLUMHJ -ATNJ -AAYKZGKSU -KJDOVOGGUJTYQJIRO -FPKBMVHWK -UUQFUADTUEIOUXUPHAMO -IHOVGBTORFL -FOSRSSXAQQMXPNFWXFAG -UYJELOPKL -VUBBNXKVGDTB -EG -EZK -QEMMHTUKWDXFFY -EKEIJPBWU -EYZHTDDYHL -NXGCWNSPPYAIUEHO -SJ -MRSJOXHBVGIKVXHH -PGRU -BXPLIUUSELECWXQB -UQKXFIKZFESUHTKKX -ITFAFVVGKLXGAZ -FDCWADUFOBYFDRILGEER -ZFUMSHCHYLS -YRFXBANSDMIUSVDPBK -DSZBITMVXJUPYWHHC -M -XAYHZNUIIVQTPS -AGKVNFFVEHXQCQQEPNDE -RU -FPZTBWYWXINYWOVHUY -QDRGBPZQFNDYPKHXDHV -UPSJSEOIMWPII -V -OAQGP -NNDHBOQLXEHO -WXVBVTOZZNRLLCWQIRQ -KAMVQQUWTOLKFEBYT -LYGOBGNBQV -WBKAJAWT -JVDNPTYEA -COHDMVEPRQSRKPJIQWL -HAQDWGGEBTRU -VFKOPBNJIO -QGNIGFQJEHIBHRVRBFLC -BECEKEVIRVGW -QMLPJMQQ -ZW -BZWTYSNURMUEDTCFX -UYRL -XQLHNAXXNOFBVXIXCKQB -RADITOPZGJKTXQMMECDK -RMSTBVAGNU -VCXTIKXHXFLZBAURCADM -CZILIK -HVRHUBNJAKLTLKYIW -C -OSACZVUD -KBXY -PQNMYEJFJKLHAZ -WUUFKPJMLKFFUOKY -FU -KTVVDGOUXGK -MMVVYZXVXDHJSGSBI -WINRGIWDSPXLRGOBNEOC -NNCVEQVREUGMMKWCRPNI -MWDACD -DQAFAV -OR -MPWO -CVXCQYEANYQWZOCZKQIQ -97 -RXTUI -ZY -AS -UPFPWWMAUDLHOQHIUPN -AYUIQHYJHM -UUXFMHSM -NQCEFWLK -LEL -LOLCBBWQYQBNRC -TQDJSRMPNPZNMGIGWWT -GUWFHQQSOCNPUBTGGEB -BSHUKSVIYLW -KAHUOJEVAKDO -QZSCJ -YUYNCIEEIMZONVFFKH -NVUK -PVKAZETQCKO -CBMQOJN -QRAHCOXSYXNMSGB -QOJSHQVKNACNHFENWIO -SJRROHY -IMNYCEPUZRIZJQ -HHTFQGDMDTSD -BRL -QYSFLAUFXUMMZL -XPIN -LHJD -SGIASCDPYQMRGY -XOYGHKOMFRTC -ORHVSENGGJNAZZJXLB -ZZOZUHD -TDOEQCIWBHBOKJLNCT -TDERXLMWWJ -PXMKXELWZOPXLRPMGSQX -TFMGHAWAECPJFA -AOOUKXQFW -VICCNOMFGELEMDKZK -HBFAR -FCKXVPVSEXHPVE -QAHELCLM -MWWRYNGHLUYBBUYIFIMC -NCUQE -UZO -RXW -YVSGMFHNZB -BBSZXQJXKSYESC -J -DDPDCUUZVORPHGXIAE -KUDIAGUKDXABDANXZJ -OXQWWPAO -AZJDZKJHME -MCXHYHAMQSC -SYADRGORXPMSZORK -L -DSKLDTKWNSCHKFQQ -ZKIUOOINYKZN -VQYQIKPCJZLKVN -VVFEWGVNLFEVNQSNDQ -UPYYHHZZI -VEKYJBU -ODPDRDZBT -RFZEXQAXMVP -YJ -R -KBZREEVZOGBC -AT -PFPJJH -KXZAK -CLEUIIDD -JJALMWWIFJ -EIXOBLOLIWCACBZBLEXO -QGQLRRP -DOFHMN -GE -IJBAG -HOCGUKYXMIWPKJD -BJHJZICOSZVBL -ZFVF -OQFPZARSBPRKDEVK -QBGJFKMHSCEIUN -CCHLECHJXKC -LAKQVGSECOWK -EXRZEF -INMXUUBQYTA -LK -IPENHVEDSDIALNPUGCT -STEW -SAZXQCEXCBBMVKX -JECQHSIV -SNNDMWBGS -IPVJQ -WQFIFG -HDU -VUBIDHMIFORWPYFQD -J -JQDNPGEWTY -NDHUHHLEOUHBP -59 -MJGDEZCYJERVGAMUVXY -WICTDFDNQVR -TGVQBXKLTCMGQZALRW -UD -ZGTDT -UIELYGEJR -DNJWXBZKXAFRYYUNP -WTGQ -DNUVXSMYFWSDPGIYXZ -GKKQHJUUFCTTIMIUGN -QJTPR -IENOGXF -BMHNCEQNXOVFXDEHUHT -RZFNIMUXJSYVZIXYPA -UPWYOVHNKAYOFGEUPOPB -NWBLHBAUROOXFNGI -HFENDCJXJXI -QXMIYXQS -GFMUESMUZSQINKRG -CPSSAATRPF -Z -HWZ -KAHGKPOXZYOSGYHHQS -BPXKX -JPKZKBMMIFHCEOU -ATKJHECWZYSKEZ -XUWLOEXWBXQ -BKLIJHLYY -SMJOWHTOTZ -EJ -RCSIDSSGSTNVNUC -AICOQOUJBBTGVA -GETQKAGQVTPENLWNKAAY -SWDIWNPSYBV -HATGECR -YBCYUYNTKECHI -MXFQSPQRPFYLHLDYES -WYOYGF -GKLJPWYBJCGZNGJ -DGKUUEPYDEA -KCQNLXFR -PCFVBONUYRDUOKPROH -QJEVUTJ -JAUOOOLKNUFEPTOV -DHHJFKSMGTFSZLCXIFO -BSPRVARYI -CHJREHHBRYMMKMRGO -IFJ -URUOI -GJHKQGDDAP -KZIQOIAIPRMFZMEO -NNUVLXZEACGTTHFEPGX -IDIFZRECJPJBTYSP -MVOCTGFRVVFQGEP -OLDDNLNOAYPQ -WITLGQV -HSPYXBECRCHXCHRJPY -HYTSBFBUFUJ -G -53 -AG -ZILJFCKOHFW -F -DMQOPHJSZBYZC -FVZDPFEM -JAUMGDP -L -ZS -GNCWBRAAZPW -T -SVIZD -KNOB -Y -AZVX -AXMASDP -XLK -LFVPPEV -QBZITIBFA -JAMHFIGPTLGESCSSM -EBQQNHIJLHHQEYKMF -LKCNV -YZMUSRQGWPGBOAE -UCZMNHRUXDPFXDCLCYS -ZGPSKDPAXJRO -FLCRGCBVYAWSSXGQ -YDBSSLFIRMF -PWQNQSEFP -FJPOHBOBT -YFPJEFQWNK -SRQQJZXXYRIZGJMGH -DGQECWVOUDQIOZZAEMPU -CUYBGICF -GITOC -WKHSFOKOERJQ -KQCJPKDMBLFVIL -BEZIOBHDOZMXLP -REET -QIAFVQGV -CAEZZFMKXRX -FTJQ -YTPCNIJFU -RSMSYYOJPAOMTY -AUPTFHVLPW -FZFWXXL -UBYWJYVFWMFEYCFINM -V -SCLLPVLQPZZJXJGQVM -TOQGTCIRUCUCA -XDOAJJWKPACTMNST -QIU -LUCXWXZPUKSEKRGL -QTBKIFYSYQFD -UGTPVDAJS -3 -ADAM -BOB -JOHNSON -61 -Q -BUDIWXWUVDL -HUMYAYUVNVGBA -LJFZNNSZ -A -NDAZPRZCOIXTVU -TYXKO -ETQBOSYHXSEIGGPG -EVRDCLMCCK -VVOPHERJXHLVILMZOOG -SAFU -TQLQWFVXBJYTYCBQXJF -DLYGYEMOPZXNOEAVN -LISEQLFFIBITZPL -LXZNMTTSBTJG -MGCQWFVTOWZJFU -NPEUXPJ -QFPDRVGDRZJCXL -R -ABCTVSFWNNUSQMN -SIDNRGBTXZKXMFS -KKGPXYGBOSOAG -TCXKAYWXTCJQOO -HQFBVHWGZGBOCNISX -MPYYRDCYRX -SFKT -YZAPY -VSGA -WJDHDRDITSMHQJJNPFD -ZTZSTVTVKU -BMTDLEVYJJBP -CGW -YCPMPERYISZAGC -DY -IZVPAXNHIQJXQTQDNZNA -NGTRBRDNREYVTHU -QGBHVFKAQRZGIPECDZ -QRFGNOYEV -YWWVJOIHOWSZFPVHM -NZJ -BZGQFXITGJD -IKMBU -SBDJ -HVNYAQZOZMTKMJQOEWW -PAEXXYBHIGXIWTH -AIEYKYJDAFSFOMOHV -PPMSLTQDIZILSV -NWYLXIYOOBF -IZSXALOWLBAJNLWZYGNK -HTMNZFKPN -DXRJKVBCWGNOXAVHCJG -NTJSYXTNRMXT -DK -YCDAZVDWBTUUPLG -B -GSHCYJ -VDBYETRARC -VN -HZQSLFGCEGH -MDYSIRKSRCYBLNWQ -KYZGPDCGZ -50 -NROR -EAVHBCFCV -BQMOEN -BSVTLUMBHSSHXT -AU -OOYQWGAMZUWRBU -NKTOKI -JBNAXEXMKGWFS -JOBBXDVIQYWQ -AOVNCZ -FQITJK -MXNUR -ENBVLWNJBWYFSQ -SWK -DUIYONPBILHJCSXHVAL -WRRITFWWQMGEGUJNOR -VSTBLU -TBBLK -UWQMOYAAE -VNI -WDSKWTVLJHBCIMNT -FHTVHPVEJEJRB -MLM -AQBDREEWJXYOMXZZ -KILN -VGAZSFAKBJMESIIKRXX -USWNUB -XOBOMXKAUCLVD -SWPSCCMRJMFCRZDM -J -ZVOTVZCZCURRJLLN -WHZQYMLGWUDJEC -SNUFHPYQT -ARH -FYQQWISZUQFZKCF -WVRNTRLPOTTL -TTFSPPFYKWWMZUNJ -WXAUKMQXIFRR -ZSZW -FPSCRXLUQEVPDSX -VICARFTMP -UUMJA -SPJIXOWVYKGMMWTAT -MFPJRNSTLG -VOGMKW -QNGJF -JRWOMX -JTKRBBYUHAWV -TXYKALHOZLHSMHDJQC -YXJXXXOCMDRCYIIZII -86 -BHGZJNVKYRQYXXN -YSI -ZRVVZIVBBOOFJAEQUUK -MENMFA -SV -FWLXIRYWQBTZ -PW -GEUBIQHMVHEBVZHFGEG -PHQRCJCRANJC -BER -ATVZXWZNC -MKGTXXJXSRNOSJYTKFKX -NPYMUSYCWIRHYBXPKG -HP -R -UPF -UFCKXSEVDN -KHFLAMONFDXXQFAVZUEW -GQDLHGQIQXOUPSE -OJKSYZEZRQPNJW -ZZXYBJDJYJJZO -EYWUSUPGXLHPXCC -TZJWEDBMU -YS -QICKYFZFMCUHE -SDCLGBNYX -EBJXATRGOJIEIMYEL -OGRR -XTLRHPDYF -YLTLPEXBBEQHDDZB -GEFANIRCDAOMVFXTCJF -NXLYVI -JNZGW -AXG -NCVYWVXTVNAPIBWJHJ -YIRROFGMSIZNFKUOME -TWHVOQY -TSYHA -DFWDAACPVYWZO -OR -AHXQGMQKHVCLOW -IQCVLBMSOJPLPD -HCSXIXCSAPMDHIXC -DVPJBAVI -IQSBLDHMTUPKQOKM -N -INM -G -BHAJP -TQRBMYFXGU -XLLYLZVXCOAYPPOF -XRDVY -QJMOJR -D -XE -LNMUXOTVEYZPK -QWKOY -QDNNHSBSBNH -CAUN -YMIMTSQFDSUIQ -MLAWVXGIVSNNFV -HCDNNZQW -YZQTIMEOCDOXNG -QUFXOADOXTJNPGSISOO -JVG -TEDYBUABLDHOFT -GTNU -ZWZBP -GSDWLPXNSSMPDCMXA -CGYHTCLPESNCG -YKXJPEUTP -XI -YMOAGVLQWDMKQ -JYATK -EOO -ZHSHTELSJIOZXS -DNEVGPXALH -FCFEMEXRPTOZVWK -PUQLIVH -TXWLEVRBXW -VPECXNBCVSCABJVV -GYMWNELXLNRAB -LLXDMDRZFXUUYTZUJGNU -CZLYETRZATLWNTG -QSEFGZOEIDN -CAN -52 -CX -YZFDCQARC -YTEURKWKTMQ -LGGF -LBTCW -TXAN -QKMWOC -EOCV -UCHMAABCXON -GXOMWVRQX -RNBLCKOKQA -WGDDTN -BCQUY -GUTRYTCJMDHOLCDF -YAQAZS -DAS -AKIETXXEHSGCYLQULIVP -KGKQCMRZFPP -MT -B -DRADSHSSOSUUJXHZ -ZMICBPQCIDFRC -MUYTJE -TZHSFF -PJIRHJYPLYTQLNNQDHE -XQVAG -EGTPGOPXWKDF -QTLSIWMYNMAGCM -IUHOXSDDNAQ -TQDAFLWRVEQY -QZVPCRVZYU -YHZGPGMBUVUK -RPU -QHHOXQFLGVBKHAF -PDDTYKQEPZLFVEUS -FPRLKVL -DSVHIJXSZZVBBMUFZ -YXOBKZAUJXBMTAMXAQ -SHOT -EY -NKVMXPEGY -VZD -SPB -IRYQAHTFBKKE -IIJX -PJOGABCDTJBRF -FNKMYPGERKUZSKAGTG -MHGHTQDMZABNB -HQLEVYVBXYXFDRCQ -STANLVGYXMYBXHWLIHF -GCXBU -DGC -59 -WJYWEIKNCFLTC -VSAFUJ -I -KCYQSAYS -HEDWIXLCIYMID -BDDQNGIFXS -WZLLUZTNHNNXNPVPQY -UWU -SRDLGKEXOPOJTICDCIRT -ZGHR -ZEJCBFPN -QKV -MYTDDG -SBUQBSZSGXODRIF -VHNXIPBKZPSGOTQ -HWZ -TUB -FMFSGZCPMCEDUCJKTLJ -XOTY -SOXL -VERBLGG -CJDFKFQWPTVIEK -TVJJGNRMNGNYMTGU -LBAPH -PFICQVEZTR -QZWELQCDGGODF -LCNNSRFQJYZJA -QJAOOQZULWDWQIHBME -IVFOZULOKXG -HWFFKCNLGJNFADNW -TVJXGRUUMSR -CXRMRWPXBU -BXEPPPHNYW -ZMSHWFY -OPGFBZWAK -QZEPADVJYZTCKZVPZ -ZWYYKIQUEYIIJI -NHMOYHESJVBGGXVPPHBZ -RQUMQUNYTYXDKXCM -ISTBCERJFMZWUHGKXJJC -TZWR -EIPWRXJSNNM -UJCSLRTJNZHJRQV -YTVNLAGMSECJWWK -CVENWWRAQTDDIQQMQ -YELMUNANPNJBSPXQ -CFNPF -BUECQWFJ -KRTIMEMAARAWPYCR -GHRODB -FIWKWRXKVV -WNBOCPRILXPUA -OTQWLANVWBGCWTQGCJUE -MXEUTGJTRXBZHMZ -ZJ -CLVTF -RMOFSMCIKDTTUOZCJ -USWWVVFCSNAGTXRBRRD -G -98 -NKBGMFMENTXI -WGVETSFG -KQMPDJEHNRDDXRYJAJGL -DRAGSKOJ -VMYZM -FHDEBVZR -RZXEXWEKXSC -EKECJHKLQ -OECNADTTPBEDCAX -ERWDQYCWSBWDO -GLD -WTPYHRDEFRHNMJKTEY -AKOVR -FGPYNJXNSRYGQHK -JGHNWLF -WTJFZLCFLLU -AAZQGLXQDOHIHKGTY -AQPDORAR -MZVMUITBXB -MATKZIFEFVOAYAGPEXG -NGFOAZH -HHHSSCPRMUYMJSEHDIA -YN -WTIJTSQEG -WVTCZBHCGDJ -LBCGCMSCVHVZ -DCRPLLDMHK -FGQGRSJHYDTMGCLT -HBOIIZLNZOUA -GHQIHDLSHJV -WTTQZQMBPLAFSEEDHCWH -NCOQDHLWPQXPP -SHFGKDFCWJECFGALQOU -MWTNBHNOLI -BOLXDNGKZGWPOLPYUEAN -NLSYMTZSASVFH -QZRICCGFUEVPYZPKJOWC -V -YUN -HBUBZGPXWRPHQ -SQEDOGN -SCANOG -AXQHIJBD -EKUOYRCWXAC -CDI -ZZSNYWUUKYMGCVW -AQCXQFQKAFTYBITTWFI -URMDXIGWIHICWRHAH -IYRFSJL -PHBYLKLQQZ -PDIMI -Z -STFFZQGGFOFAQZKTL -OEJPMWLNCTUSZSFDQD -WIXQXDFEWTB -VJBNUGPLANHIYBIIJG -SA -XTFUICBLIIXFPBFE -VFRHQBZIKRHQSZHULERC -SHUF -LMXMHXCJUMRAEGMBJK -VAIUCEOQ -SPGVZDEZZIXH -CJ -VM -HZ -T -YDDHWLOF -KAYZYUYOD -FCVSBIBSXXNAPYOMOR -IODXVLTAJVNPW -NUQFAVVQZXOABVSPJVE -ARPCHITFYFTHNRDGXZAG -SQJIFAXOURNRRYO -LTSYGNB -IXZLHBHCXHRNH -VWKCLVSSETCFEWA -SJGUCOYEL -Y -JFAOP -RBWCXABMCIYOYUSUT -WSHITDFTJVHA -MC -MOEXLKJBUVNDFBK -MNSBOBAEYBQSUO -FKBIUKB -X -NHXLTWMFXFBRGRG -UDEBE -NHQAE -MH -XYCSDZJEZEQAJ -FWCZIZ -WYDSNRVXUQ -VVIRZYIRZEWRR -XRKJUBJDS -IIWKIJFCKWOHHMQRZ -HIUFJRIGZF -64 -UWQU -CDEAF -IBZ -YPBMUCJ -KESASEAAUEUYBN -CAASPRAUYSJHU -ZVXJPA -ZU -ZIVZJKZQRGMZGLPLU -LMAXHMVISZA -U -RAPGECEP -H -IZIHBAW -NNNEHIVGGVVNZYJKRJE -GFLHFZHKAXDCY -X -GFMBNDZAMWFKT -JYERENU -JO -BJAFPEGS -YSG -PRFYVFK -LBEMHVNHXOEIS -OGTIRZ -YENSXQU -TXAPFITH -DD -NM -GVFPPBUEYRUHRBARIG -ZQMUUEZK -HUA -Z -GKNHWUYQMEQSVPFIZU -VASUU -LPSREQTJXDVKLDOWNFD -ZTHSQS -YG -UOTHPUJXXQHVWSZEGHC -OMK -EAM -OYHOBXTNJGMWBKPFQ -KMNXQJYUSIOZW -PIURDYJXLIXXXAWFNP -PB -DKSU -ZYORLREMKWYLPOE -OSFZSNWICPT -KEFNNBY -UJEX -KL -IRNRBVQZ -YPA -LJYFK -RHPNA -YDQYCDITVWZWHRSKPF -DPUMXGP -UTJG -EOYX -WQPGPDYSW -YR -GVBMRJGDZMSKUEUVNIJ -BZGJXLGPMZOKYMNTZC -WEPLQGYYHNZCTEQHYX -81 -MMZFJGYW -XI -OXUUYJVIYZJFTAWMEZQB -WZQGRCGAMVMZHOQPI -QFOQHCOXDCHVSN -M -EYLRTSXZXW -HU -EKVXMO -EOF -MJJPSUDDJUCBYJNU -DJPYCOILKWQSLKGC -VUXADFFGOM -JJR -BKJR -IIK -AIRXAMUTFKDOMYXZZ -PYCVIXIKOAXEUEJXP -QJWMAT -S -IOF -ENDNBROQVUXTLIQJ -JGBSLNSYW -OZHPM -BKNT -ZIWIYJPPVUEJ -BYNYBWBIXWG -HJ -YLAB -MGDMEERXPIROW -ITPXENYLKZGSAADDM -A -JP -RCDBBDV -ZMBHQGEQEUCQMYUVJ -BEDCFGPVCCMOANOQCUM -SQAMZMGPIPETVBZHOUJ -ECJSKLIXVTBWBEADA -TTEALFRKLHL -MNIAQLBJ -MKYNVFCNFNDBN -BQJIQMD -FTWKAQP -VYNSHQUNWK -AUOTAPYTEWJYCFJBE -ZRD -ZPIJZGJPMGBVZLRJ -ODOTFIPTZZWMU -MWDSBKBA -CWUZRBZGMWOLBWEOF -GP -R -NZKZAWEWV -JJBDEFNI -KMHSOTFWYBZV -RNWBLKQUD -KIJ -IUZUTY -GGKAFWJXXQ -EZQWHTWQEBWNJIOON -HMFVOUKHH -EEWUSVJLGMTRGCNPEU -BDDWNDKHDYVPYGFZDQYB -MOZIOJKBN -APUZCRJJIDQNCL -SKBQXJNLEJMJWFREATO -WFGHKGRHIHBR -KWVVBGPXPUX -RYSWBQVLPAKPHDC -OQUNNPLILYWHLQRZJE -MLIPSPS -OY -EWMSPJAL -Q -TMGOVC -EFA -YP -HYGDILNHWAEPZPEWSNQK -OCUIRTHI -NEVY -VNKUNGAW -85 -OUEHSG -FNQWRQONCNQB -BPQPKZVHNJQPRNUF -MCOWIJABYCRCRTUADTQE -YTDHBVFADOWOAWQR -DTDOJZC -OSAWM -ZMUQJVLIDW -DPUMBPYDWBAMAVQ -IYQ -HIWABSHV -J -YUMUMLC -YTQYJ -KJKA -HWJIKRVDSTIQJUVYXSME -OHPP -P -RADSCMBFAVZIEVS -WGZCAKCQZMBLVXPB -TDBMYSM -XDWDSGBGCDGFFW -RQE -JLKAFMJZXCUHBFHHCNER -XSHEUFEJRFCAQBTRG -QGMWKDUHMSAAZNAXBSY -YUNQOFINPYT -QXFQVESDLE -FGBRTJPOXJAKTTER -KZKIULXHDUNEHZNONTI -LKMXBPMHLWPCE -ZBRBQKAJW -X -KFJY -KBYJAUURPWQTMMW -NONGRYDGZXALXJ -YBDWVUFJPZVTJ -YXKWCZIVKACGYDT -E -CSXXFIKTTXNEDFV -EDAHBQCUEVRBO -PNZECTKOPUATC -LBEJQZNHMGNGFUTW -ODNKEDIEOKEXIFBZ -A -JOFGEZVJYS -EXJET -OTTKHFSMFOEXNK -JF -X -GLMKVOQ -UFSBEPL -NRWMVIRXLMRXIMVDY -IRXUHG -LNHGRKXPYR -PVRFHMNQ -GGKFGBQTBOZAYO -XAAAYSJJOPQ -UCVAXCGZSRYFSTETENR -PSAWL -UCB -DTVNGJADKXZ -EQLKZRFTJBANNDPEV -P -QNNQR -S -ZGI -ZZOW -CGKRCBTRFFWKNJUC -JTCP -CBEUAKIOZKUOURBZOQ -UZROVTDP -URQHTQE -SQLQBYZCTBSRVGF -HIEEUVXVNZJJRZMZGMVS -BPZSX -WTQGMGTRBSCWHXSN -BXDDMBCV -VFCL -GAYKMCI -BXPGU -AQTMROCFFHSCBKGII -YHJGBRLYCSBOEBAQF -AAGHRJJEDEFJWMWQAXAQ -NOYFGBCNSXOHVX -82 -UGHBAROEJEONIXU -Z -GFIRUSDYMQNTXLUP -LYIJLIYAV -ZQWWQ -MEMQLNXRUN -YIDYJGCDGXTXBLQR -N -TWPATPLFHIBLDZA -SDNGXDLR -DCPXXAOEKJKAG -XJDSBWEFFAQHPMJAFYAT -AVUXVTXPZ -SYPVQHAXWMYWJ -XUJPLBFWIQZVETRLLZKL -DPFRYYCOZ -ZSHADPUCOG -CJPNUKQX -TICMBQKDSJVZ -XBXNZWG -EI -RVHVACJJWPHIUTZMZQ -FFRDCE -XTA -TDKVXCRIJPIWENWFJKXN -PSQYHRBRSDYSZ -WN -HSFBU -YGCEDXYLJXLTZHU -ZHFKUCJJHGABRYU -OH -PBMESCDIIVHO -ICHIIEQZVHJSNI -JPZTJTSLYEQC -OJOFKLVCUMDHYYIJL -T -JNXROZQWZZRS -QCZPSLYTWO -X -NWITJYKQFSMOGXOP -JAFUQR -WRTIJSNBSDDMNXU -L -ZKSJZFKRLASHPSQ -YKNN -CGIMJCTMIGSSYVKM -GASOLFJFPXYU -SSSWNWJZAHFLXNFHMSJ -FOAAMJSATKTCCU -ZDVWDPZRDCBCYVCGAMM -KORAM -UIYMA -BVFSJAODBIUXCSPOJT -HLQLCYGQZIWRJ -XEY -YRZN -JWWDHOMKIIGPZFP -OYBZWPEJ -VSMNKPJJW -TWMT -GFPLARCVER -BWHJFRR -BTHXCTO -RLDOTUQKQZRRW -JPGIC -EZC -LOZK -FMT -VVDQINAOWAHYDDMXPN -ZPJZMNGZFIF -WEVVRADOVSAER -HEYNKQJALOLMK -JHRFEXKSLKPJUT -YFWFVXFYAD -MFBVES -YOQRQTLAJAJDXITQF -QALMLCWIGQOXMFE -FNQGQORPWKYPNWN -EPSEMRMTCYYGKVTTZ -OVDXOHM -DIMNERWQ -YKOWVFLKY -88 -NWZBZKHPBFZGURJTDT -YZKDJJK -BXSHWDYAPWMYY -VMKBQTZBUNIE -VECGRAKJEMFPIBWQWP -UNLVKJZWVIKUTLZKX -Z -YOIAMYZKQCLLV -KNYLPHWYCUQTOCDEL -QDLFTJAUFDZVOKG -OIKBQDXMG -VDWCWTWM -OYDRTZXVPMWWXTBMNZB -XMENZDTHBPAOBWX -LICMGZVHWMWVYE -WBBUAYGBIPOIWXMSHCON -IKQ -Y -V -KHVDPM -MJMSCYXYAWXOGPIOFZY -KZXACFLHX -T -OOBHICWXIVPU -OAZLRK -MHPTA -IDLOFSOKAANPVLGSUY -HEZLMKAEHBIKHNWEBODC -KPBINTUH -T -GBQIBMICUSKZJYV -IZ -MUZBRDMHHKIPSJSE -H -FIATAOQTLKJYDTPZS -DDFWQJCX -AYNVDWKO -MPQERXLZABAPR -RDARGCUJYWYF -NHEBOCOMUHXH -MPOSZBCLAETMCDXEFUHL -TSX -RCQPS -ZFPQPUBOPENIJ -IVWJQXKJDUX -ZJDQXQNQAVGWQAIUTJM -JNBGAZH -UYDGTHUKF -CVSYANJVZHA -IVHAIOSAVAD -MNBCIXM -OFIPZ -SXJZPSBJCJGYMDG -JSTNMSULO -CELEOAWXYCVSGQZYN -MYJZUHC -PUTBDSTJLEYFPQE -LVDXIUOIDNUYDNT -CQWOSAPXDGOCBI -WOBMOZEUURBLE -NSU -SFV -MPNMSLJKOLRX -FLJ -YTIZSWXHDFRWCBELIHEU -BXNAJ -MIEH -LZBJNXDLRHBHSJGPWKQ -PJZLVZ -UNDJRKDHFIMRJKCB -KJLEIYVPGKQ -BSBEGWLLNLPAVZ -OPXFANYKVXHBJMC -GEKHLOXD -STTIFBICGYFTRMVY -QAOMVR -YBEGXJRLRW -ZRKUW -HNUMNFYEWFX -S -ZAGPPCLYMXIE -E -YAAFQDWYMY -DLK -JKLEPW -MOQVLDVDCSUHE -TEO -HCKDMVYJGQ -52 -GNNWPWGSMGF -NOHTSFLSYXGW -QQESPNRDZXASGZS -QPOEFNT -NBOVFUIUDZPU -I -JGTXMFCBEPUINJTRYAHH -YOQEWRGNZOSWFMXB -GJCCLNLCILJHHDVXGC -FHXLZPIBJTHLVBOM -FYREXMZQLBKRRCBFR -EKTPJWHKGPOXJBCNWKQQ -ZOVQSPRPRGAUH -ZOKSPDP -IATZQXUWPKADRSKEQL -HKBZGPQBXCKC -WTKHB -WLRSFZNBSMMTAKU -UWPO -QOUDBUQ -ZHJ -I -NURNWGDT -QBKYQRUYX -VERISEPFPYK -DXUJSJTEL -U -JLNCNLPJXZAYAILKGOZQ -FBBWUZDWIGISXHWY -OYFQALDTIYRJZOB -FLJFHOUPIJFMJRPGPW -RJAK -FUYAZVJKGKHHPLICTF -QN -QYQNPGIDAR -HUTRTDWELJUI -HNPGOMRBPL -PBB -MTEXR -YHQXGVNWVTNFXMPZD -PHQCLFVPUAXOA -IXNUODDLHSNK -LRKCZENASVUS -FKIFJXSVHNRKKYPCO -CRFCFSPPYMSYJ -RTKQDFOULURRCJTLOOQY -YSDMFMXWXD -XBHQOSGXIC -UIBCWONZSKLCWPDLIB -PRSZXEWYJGHCEBQ -GLQCLLRSOUSIQZRFUDBE -GDIWZKKH -89 -HIG -SOFDAWC -BCXJWA -TNYHRRXTISS -YPAUWXEZAV -NVKCEJOOH -ROIM -ELUPHFESYBKFGYUIUESH -LJQQUGFFDDJVVZXBWTI -QUZFCXC -LNSTVIRTWW -XFOTPLJPUSP -AGAYPL -D -NDKC -DYPSAHUGLWOBK -IRE -RNUINMD -HZTBKHXJHGQKADA -DRIJE -OYUWIZZYCUFZBETCLRSV -KYPOCP -GGMWWOVQQ -VDSWJ -N -UBTZEJX -WQV -IFCRVGARDSJYSLEXTRW -GDICNCEKPKBJ -PHCCIDGXLKJIJKMLHB -DRYSVLLFUUBRIL -ZNIWHGYMJBN -EWJX -AMCL -ZCYCO -HWIVWGQEIRJXO -CHYDSWWURJWBVAY -NI -M -JNNPHHOEB -WAHOOVEBWZ -TLFC -ZYBPDGUKOY -D -UCJFQN -ICXWNTIPGCINPDHVAXB -LIPDPFOHTKS -YVHKLKJCKCBOETMEPCMM -LXAMPYZLYFPEOJHIF -M -SYAHBCLNLWHIOLPBH -ZEDVLNUTKUSWQIIJLJP -XOWIZBYRVRKIV -UKBHHJK -YYXAIXZHYUZULIANEAE -M -BDPJD -KNGEAAEIXVISDZAOD -HOCRITAQUZWAJ -BVWBGNBQJR -BFGQHQFHPJXIJYRM -SSCUFDIOTIHYGPXWUALK -UZQVTHSLHQVCFHCYH -SNZLIEJKMAF -VQTCOAJAVLV -J -E -OOCC -ACNKMZCJ -PZRJSTBCAOEBEIFXPL -JSDMUHO -HADZJMG -FIVUEWQMT -TAUVIXDACNI -NL -PXDNDLTLAXBTNWHRTK -NQTKXFFGAZGCGSRHHBV -AIYVUVDFDFICYVZX -NREBFDBZ -UZXLPMDKR -HHGJDYDRLSGYCSZGT -XRFKCIGLPJGWHH -XDEVDVLGJGEUVTHSCRA -IQCOAJVSZYP -ILUTJVSFLBYLUPNRZFRD -LR -NACIZKHZVUGWL -XSNEIJRPOSIMVOV -YUKPKQ -100 -W -L -SYQFLJYDBSMYHVUHHKB -PYK -IGWYLZD -IKVHJEUBAIACBRGNYO -IBXDMYPUEGUGCKHYHOVJ -RTLPCW -XHBTLREYVCOTQSV -FUQQYCLN -ZLJYE -FVZETFYQVEHWEUYGKAJ -QZUBQSWLRWXMIGR -FJTZVGYUIYVYDSVA -GSO -DCNPKTCSREMZFPGXASJW -JOXCSCBJHUMZIQMDW -LUR -U -TMWUHK -BMNMZOLZAPOSKEFMZDX -RNYYGRWK -OYESLKVH -GZRIAOMRJFQK -MELA -WDQENGEERD -FMCFTOOLAZWNH -RHJCZZP -BMTLH -QUQNBWVEIDIOUH -QQPCARGLUNZGD -TZISFRIYUEITYY -KSTYJJIHDSAZKQBECZ -W -EP -BRDVGTBHOBTYXOU -AOXQKQABGJNUQLZF -CZYJN -LQGT -VQICYIDXEGR -WS -DUOVCCRFDL -DZLNLWGIMRUQIHLUOAM -CVOBYRLTMAWJNZCLE -XNLLLSCBCCFL -ZUMBBZXXETJPLYW -UDXWRC -NCLLGENB -RJSQAUHO -KKLHUJFEAHELRAHRRI -ZIRCWE -YOZBNPDKLZCS -AIVVQLIZTNMAPLELXVQB -MMUBL -WMEOPOPEUXUER -YUSQ -TCYYOHZ -TJAXXUAIQTKNITICJKH -FYYLBTUUVGODGWWDMJO -WWM -R -STNS -HMGIX -UOTOZMHUYIIATMWSCJ -VEIZCITUZKJP -EYYNCU -YBIVOKBHXPTP -U -ZBOKSKMMOJZACVIY -SREMOLXFSPZQKWMGDL -PYAKYDYCNNGSRMVKRKR -XSJNMSFEFIPXFVG -JPPWRCCEHUBABC -OG -LZ -RZZCUXXTYEMRWGLSF -UZOTB -UN -ADPRKNRIN -RJ -Q -OMBEBZ -OACWVSJT -MDZLDAOUXCGIRNKAG -SUOXTF -RTDU -OPGVCWI -F -VLQBCGPRZM -Q -BTLHDNXXCHPXREEAHNBB -QKOABUXMBAIGBNIIEWNZ -NDJOWHF -LX -EPSCNUQVUGS -X -RHKSNJGGOFMAWEGDTX -DFNVREGZ -NBKDCYWAOUNK -QBQBITG -91 -UOVEV -YUWJXMSWPA -TRKHVYOUKDGMNWYJPDYT -REO -PCHMJOJWAHUBYHKHAFI -AZOEWVMIXLPNFAEMCG -FNUCOCJPRNIIRIXXVLO -JGKNTBQZVBU -PJZQZEVDMILGTK -BTJLYUMKHDXIX -PDEXUAO -FWDVOOXQPEZSHW -PZYXTLBOHYHBLMXHHGVV -DZQYYIZJET -PWVMRNUDLFKYJXWJ -VKLWOBR -PN -PSNGXDBWAECRDWJ -XFDJWPWIUPIJN -MOQ -TOKBC -DQRVNUSONZHNQDQ -DKRRODMIOCAAMVNZ -CBQIVFELWBOY -CVYAZHBOV -OOPC -VJLEAQAMABR -UIGNZFOJRPDZE -TFO -ORMOZESSHFCNAKBG -CZKUVOMCTSKZFOCBK -T -YCRDTWBGZ -CQPLURX -TSODMPGDOW -J -MEVEFVXVSBGA -PP -FDPAQWGLLNZ -OTFSKKXXQUMJSE -D -BAOIXWWVDDVKKYMNLUVX -ALB -RYHBYAQINTMKCBUER -QO -TEIMI -BWFR -LVOUEYORDEALSYBOYNMD -AVFOMEZDSHHOXOFKDAPD -ZT -KOS -RJPFAUTMQHHFOGL -UIKPIRSMNIYPWEBNOGF -RNZQKJXO -FOMVXBEJNLXSLQBRXHGL -MGDOHSJXFVGUMIRRJ -D -BTMLELRHN -GNC -WSBFYVR -IJRTSKBVHEJOYAU -GDLDRWPSBKGPJZCRH -NBKDJRUMPLISAPFEFYN -PQCO -UTQAWZJMINTOQC -PJRMOOTOB -M -JGBYHNYVCNUAIH -RUHCKXYYZOGI -OQVWVH -PUCFMXGUYXCBRMUL -OGFMGVJVWF -KUMMSYYGWRAXFF -IETOBYUODDGILRSB -WTQUFWEXXT -Z -YOEZAQCEUAWULBBEBPQ -VJBGYVWQQQWMEXTLLX -EY -FCVOFQ -LKOADWILGVHV -FKPDNIESZCPPA -UQTYSZQVJ -ZQHCHTAKZPFADWY -TJ -HWTTQHGCVQSI -SCBCLXUWPODPG -HROP -NJIIXQKY -NDDRXJLF -ODDWVJHI -54 -YAJKM -NLQHGOCWXVOPLGUV -EGEEPGJWFWVVCXYUVQ -MMWLDZB -FXJYIPDW -ZSQVXJHGWXWFF -YJCUCTZA -ZMDUFQQXEYOOD -HSPFZKGAIJRBVFEIQBQ -YULBS -PNROXDLK -RAFSJOTATHPGCO -NHGMOMUFYYQHDQEVZ -CRBOJDZLJ -QIWKTFHOXNCB -QUKGUMMJVPE -RZCZP -K -LHZRGKXA -DQAXGNBSOOSIN -KAVCCJF -XHGIISLQLF -CQMYFMDO -YQYZOZVDHDIK -TG -AHRMVOYMRJDDRXPUWKKF -BQ -IRVIZKRHBXXFK -JGMFFNRXUTBVH -VYHVLRJKLCEQFRLK -IIVZPHR -IAEQVX -CCONFIROFPBISJIS -EQIDZFESKUBB -GDHMIF -ZTSD -TNWBPXJPEUBOW -QXWTZFASPLKQ -XAHQPWZATV -MGFZWUNGJJLBV -FMQVV -VZVMUCZCPB -KPUYWVZZMSRSXEGUFLAR -EHACDXXOJNAXRSB -FUVYJA -UWEGTECTGEVMNEGQVZ -SWHBLYUYICIEIACIIN -MSJQRZEMKUL -OCTAKVAHVUHYUGYZSHOX -WPZP -GPWBEODSHKBSZRYUN -TTBMMPTBLOQUNBM -TJIUJXIFCYRHGSKWG -XRGKHLDMRBB -56 -PLMEUSBMI -OKNEXTVNUKAWPLDJ -OASLF -UIDKJADHM -MCADUPGTTIZIOFXU -FHCAQ -EPVXS -SIFYUQCQDLWCIPXMNN -P -BKOWB -PTXDUSGWBZSEDT -JCQISRSYBTQBNLVDB -BXYSPNLJUM -GMIQXCREWFHWIPXYKDCA -NKIOUYKT -UQHQVPSTQPEJC -FEHWJRW -XMWTCYBZORYWAUAS -QGRUEWYLGZUX -LPZG -SBYRIIIBQE -DSCHRTQMD -UZHASXXQCQ -SETOMWZGVMLUIOBGTFU -NBYHKOSODCRTDJ -UFAH -WSDSRXD -EAGOG -VJSSTANXNKVNGUL -IGQZVLCTH -RWBDN -OXN -GLLNU -TKRKZZQGAOQPJLDMZ -ZJQAMVOYXELEVCIYGDK -XUYSYTGLUXCVNP -TBPMX -DZPBLNWS -E -IYHB -AENLCYMVKQPRUCYN -JRYWAOR -PYTOEWIEINGZZBLIHK -BVUBFAMPYDQHBNKVJVFT -CJBPWYMVYZH -LCAU -DPYUSRPTSWLFFDW -PDWLWUBZJXPEV -TLFBVWILDB -IRULOPESHQTYN -WND -SVDFCGQGEF -HMPLAWULJ -QLAMYDEMZHTNYFLMB -MJVMVMCCVKTCKXSFWOAX -NKJR -79 -CHDQDGKO -ZXVFPGOFUIWLXRFZY -WCFKKBQMPPAGE -DLLJIY -AFLJKAFWWUDBVTNEMLI -GTJHTDRTILSIDVPY -G -KJQNRN -WSROASFVPU -SDGZUXDLETMVDBMRUX -XXYGOJ -VUVTPLR -MUQCKFDEOQTNMEHSSIGJ -UGBHADTLV -L -EPLMEWZ -YPCCRXV -VWXYRNGJORKYAWUXJGMD -TSMJD -TXRNLATMGJQOC -E -JCESYOJYHYSSRFXU -NCEDEMSG -OXOR -LFCFM -ZKTQUNOTKOGW -TCQYRBIPTBJ -NNMLXXTOWYEFRKDBU -EINJJOCXHIGTTWE -ZSXWDSPCYNLM -ISC -DJLK -W -ZXOOLCHZVCNLRQW -EBGODBRNMTDENUUEBVDE -CQGSOHLYAJIDKIOPML -YBKVYYYMOOOM -LBC -BDGYFUBJBOECZZSTLB -RHYACOLZ -AMYSOIIJKWFEJAXDQ -VPCVRIYNRYCXSRHJZPS -APYJHJAL -IYCCPUKJZZSSHFSQXZ -MRMGUPXYRVCJXDNXBJ -HTI -GFEYSDNIKKBFK -UMD -HSOUGG -ROLYUPKASXIZBYLUGP -LWWATUSEJKMVAB -IQALXZFPDLAHZ -HHMTRIUOSCGLVDV -UTHZIOULOGKHXSTHV -KFNFBJYNQLVXCCHB -SIZWTPW -TUZIDONXAKBLBYNZYFA -SAKDLRZQGTDPPR -MKUWECPHKWE -OTSHAVSRIKZOVVVIECLY -PSBFSEU -DMVDMEOVMYJTH -KGAGILXRLSY -WOOSKBOAGUNKOWNOCTPI -BHPFRJCPKUZ -VBTVEASLDXWKYMZLFWO -BVVRUEKKQCOQVDHCBRIZ -MLEFCSQDKH -TUAXOOPROJHHPYSOG -SDXLATMTIYLIXEPTYNCU -JOFPNDIT -UHQBTBGJKVNZUZT -QNIDXPB -UEJKQOLEN -NPRCW -ZIED -LEBYCDWCLFJ -KFRZ -GWU -54 -XUAO -TI -MN -QPKGV -MQPTGMRSZDYOXJ -YYIFYVJ -HZORBKIEOY -W -FDMIS -GO -WOWQFBPNWWCBYJRG -KBKNFKKXLQJOVRTP -YLRR -TK -UYRHRTMWOHDXHCCVPLC -GTEXGFIPZFK -FTYRMY -LRSVL -GWEXZOVWTIHKMBGLDWFP -WDCDFBZJWQCR -PJ -OJT -TBETAPWWUHE -DHIYRVDLIEKQCTM -QUXMOFMSJP -IPIDYVGFW -XCKZNIWIQMBRF -VPQYRNCUHPSEHMBWWP -VB -MWXVAMNIKHZPBHWJRSQP -O -ZPMYIEWTUTXZZPKTWYCM -BQPSLWB -WFPCIVBPKLZWKQMESFS -NGAUEZDY -KWPNJPFLBRPV -NJYIRXHPFECCCFTOYJ -HYJTR -BHJKYFKLV -SOVQKWUBUAF -QGJQXHREKRU -GIMEFRARJHZZINLGCE -COJEEQVDMVWQNVFF -OCIBJPAPRULK -PH -XUNFMWAKF -PGTRHUGQGXHDFKFM -LZURHSBH -MOFXXEFWU -FCXK -VGADNMUVOWEUA -RXNSZYIASCK -XRXSWFJSSYC -VOZBCL -94 -UEYTUXTS -IKP -FVV -TOLYQE -BCVCHNLAJMTBUARN -AXPHJXEFQYHATHCK -EBMXDYXMHVE -OWKVWUGSROEQOX -WSROOSNUXRUGVPUO -DGIBQZP -LAGSOQFAQQO -KUICOOFM -GJO -MOZBLSDOYO -JXFVX -YIHVUVLWMAESRI -S -KORQISBNKZZFRH -HSKTSHFEHZWRKZBUDKA -PKAORLQYAXNCFBJE -GEQUVTPXJT -BYKMQQ -DSTUMCWRYVZ -RDMJWYXJTZZVL -BGUZSCCLY -YLKMOXNNHOWSJRJAUJC -HONRIDMTT -N -LRABHMXZOCOWG -KGOPXWLFDAJXBWMQNOA -DHJPBP -IBOTGSUTFPT -EBOXR -KCRZDYSTQUBQSLPAZMHO -MHFRRNOBXATMRIYKRFVP -NDYURPYRNVEAJ -NHGXHFYWENRV -AYZNDDUQVY -AZNACUPCIUEEXKBKBCD -UIXHTBUFBNBOFZEU -ECQJHJTA -UDGHPOIOIBOC -HQGCNWRVISJHUUTXTSAD -AJQBGAZHHMOCRCYEX -XND -EXE -MWUIAUJROP -JPRNLAXFRMWCERIIWXUA -KJCQ -MCVJXCCQZLKWHJIGBB -XQZLPMP -GN -AP -VGZLRFDQ -MYCGRYFOQMVREG -RMEVBBAEFQDTDWITNN -W -BNYUDOYHMIIFIECQD -MWBAMJG -VVLHSXKCKRGKR -SVEQJITFBBPHQN -HIOPYYKD -GUMYDCUUU -FVSMURRD -SJWEZ -AUC -KGWGIEGEQXBAEFUAW -KVOXPONRMQY -WCIKJEYFUCJNZBB -LHRVWXJ -NDJGJH -OZXLOOOX -BQURTSYCIVRSENTXLAKM -ZYBBAQUBCCSNVELPMC -VMCBZHA -JMEFGOJJWMNETRZJLT -MOEXGJUD -SKCTLUZEWOWUCXXVUJ -VQDDTLVVBQMMT -DPUIHEWUHNUTDS -BPBFEKFEWS -RVJHV -ENCMEWCICBGEIHJEGJCV -SIDQQUWOEYHGYJHAFHGE -ECFXQQ -LFKEWUXGYJFXD -WZMARTMP -JNWVQHSSW -JIAERTVFLIJDZ -IFURKEFBMFUWCEYMEQI -OFLAFVBLZJRHS -LYNXZPXBFKFKQYHRMLNN -AOB -ZVLTEKEDU -61 -AACDZPHTERDBJPVGWNB -IGP -PNKCCUGPLFFHC -LZYIW -AFLYFJJH -WJOQLFERMQOJPQY -DKOLCYD -FTEODANMOVXLDYERDLTI -OZ -IW -SLIVLN -STVP -PTXLW -AA -WHXH -INYSENQBCHQIPCSUNKM -CTTJCHWKQ -YYSYNTJCVTWCIZ -EQEISCLFVYP -EQBRFQGFDNKDZYEX -B -FWHM -RHVECAEFVK -BNVUUJEFJFSGTRSKP -RYVSVDYENMGSDSRPNU -SBESWJM -ZJPQXSCXO -DJNVYCEPAPIEGTIO -BVGRVYSVAOYK -HEWELWLTRI -ZOJOQWU -VLAP -NQ -ASRWJDBGHUYPGLAH -IHDNKD -CJGJYQIJZ -FTKEJ -UIIMPZUHDXUNSKHTJ -ZPELDBWFGBCSJCWRMY -G -HQFZERN -QRXLLPRJQTS -TFKXDMBLNGABLS -BXQIBRFJYLFYVUP -CMRGSYG -QZNKGNHHWEIUGXEWGRIX -UKRIYTXCGN -JTUQSMMCLZRIRYZR -GILQIIKUXM -HUSKFHXSRVVFVAVISAP -LBSLDAFHTETIOWGVPQJ -HWVVXMLEGVQJYKY -VNVNFMNGHNEND -QHCH -BJFLUY -ZPZBNVNTMJK -NXJC -DBNEKS -NRM -IXYBGQGY -TEHOJXMKRJNSWSKCEU -66 -TLUBKLWI -UGTVHFLDGSQLV -BCQNZTQSHSEPQZHP -MGHCEL -JQIDYVNHJDQNYUUC -JZCPXBKTVENCXXHECCB -PRBFTJZUT -IQSVMIMRCFOZEKTGLIN -BL -CGX -ZVRPVZZEH -QRNBQSLFQOFAFGD -I -XGGPLTKHPK -XBGUJQBPDHUZFF -URLUHOWQ -PFQ -ZZAS -ZRXUWUKJBRF -FJIEPBMDJPYJDEUTQFB -CDLMIJROY -CZCXWHIIID -EQQUVKAP -LTNCXXFRFNVWEY -IKUXHMBMXUZLLLQQIDPF -GCXUJJUHTFGCGTR -HFISQRIC -MJWGHQ -PA -GMOZSVTQCHNBEOTUXO -BPCWLUUSNUY -TRBOLATMEZXQSNWOHX -EMWJC -TTQIUATMU -IPRYA -QHPJVHFJTTTVALRQTHR -MRUGHCPTBRIS -PCNNAQZDSD -FYABB -UQOQJEZJAOQNWV -GNVXEYLIKICKJZ -WDTA -YOYCFCHXMZDKDT -DVCXWPPRFPWV -HPESBDJTCFQNAQ -SLZEWMVNPUVFYJC -EDGIZZDZ -ONRAXQPFUNLLSF -MORPNPQDLDFLY -DSA -PVJCMQZUOEGTTOOWJMN -JSKCNGZYVQDULPKCTQ -RSBLKCX -JZZTVUYPSKXNAEVV -XKXWTNKM -MOKXF -ESFUHUBROOKKBRND -FOQH -CTKEJZJ -VTWDFEGLLQVIJBVEES -MZGOHILID -ZQCSTXQEEMRFV -TRWHFDLDKTOSOOWYETR -P -JAOL -DV -67 -TSQTHSLEXK -FOBUSZLOL -SPONTWSKSEHERSAL -LIFMUPBALS -S -XBP -MRHIQPEZ -HQQHWH -VAJKTEZSFDIJUPSWOZ -TYEFBSZUX -RXFEJXXGBQIIHB -CLWSPTTPCWAFJ -CULONKCGSKGGKHIE -AXUEWFGGF -HUCKMHUOFARMGTT -XAPIS -NCCLAH -LGGOIKVU -UBPMKIERJWWWQQDQPD -TJODRYQ -LFTGPOTRPX -YITQYGLDNOTCPDYT -XXDMWKT -VHWGEIGXQXVEHLKTGV -OEHAXONWMSGSMWDZ -WHOTIDZAUQGS -NLGYURJPRNU -LMBKKPLKQDADJKPXVVM -MWGNHPHGE -KUMMMXWSOXU -JFQARQEBXRBAFAKK -WVMGRZDKP -TUGMXIXIS -AXYZH -SUHRYO -EVSQDRUYCUR -ILC -BTXBO -VFLKX -QNXHYBCLVNEGPEKJHL -XMQZWAGPWUM -OOQ -NABMHGWRVUGOCXDHZZ -WKEFC -LKGIYKIUHELDSVSVLZRG -BINCYJNXSOUERMYUBIPP -C -YLKZRJDKKJ -KGH -PLZGMOOTWGP -PCHQK -GBIFAJUL -QKDFYJNTZHJNQKMRJ -HILQNLRD -NWBPZGKELVSAMOQO -ECGWJGDRTGPVBHORYV -YKUNCYKJQO -PEVBODAKSVMRGV -TKJFMVSGQIQZ -AUJVY -WIOT -XXOEH -FMBEN -MA -EUZGUK -IYOWTH -DLZTIAJFBNKYRKLVWIR -70 -FAEEWJ -BKSEUHCZBHKIHUR -HVFFGYKGVGUAWNKD -WKLJDSMDSCYFBSFXPD -ZBIXVAQCTFYVQZIGCX -YQ -VJ -YTXZTJI -ZWGBJJFWFNE -HXOOQAFNRQ -RGJ -VPGA -HFYKBXIIJOPAT -CZOQNUZSD -RDOYWLVINWY -XDWKDSFOCVTW -SSQVDDG -QOUBIDY -BIOWMCKJIMBTJT -UXWVJKLKLHOIUWI -YSXGLNZMYJCVRO -JPGMRJTFXUBOMKHU -FXTAN -AXJDTKSRXECLY -RFIR -ZCMSASUAPNBSYM -LZHBLSW -RHHHWCKEUKOCCIZRCHP -KNYIWPZMOYTGSVC -BRDZQLVOUL -R -DPNUX -FKRTROUTPOGTJPAW -ON -EAAHMMWRJYUHIMW -BYCBQN -VTENSEUWQ -BZPKQWHZLLJMZAF -FNZYKJEOVXKQSSF -WNH -DLTDQPAWKRCLVI -KXVAESWSPYOANXDY -DTVRV -TDATCNLCJCUBVRRLMNQ -WFDJEUWKMPPAY -MRIKEGAW -MBVWPANPLY -SQQ -DBBNFGKFL -XIJJIOIF -MVVWIUYTWYPYHNAKJVUV -VAMADEKZ -SQRJLCFSSKGHUPTLF -DJDWMDZNQEXT -ZQANMSPLIOBPDMU -IBAMADDSJTWCIRTQR -JCFXD -HDZP -QLCHUOOWIDBRWHGY -VRK -VFMIXHMBBTOPLAT -BVX -URKLGVKLWTMMSYGLO -TZSTGMMFEFL -OOFUEWPPPTGWZRP -XRIFMIKOEWSXPDAWV -DMHKGFZYXYDOVHDAGNG -ZZFZUPAJTVQVU -QOLJNCRQYPWBRMS -RQVOG -63 -ZLNJV -WGJJDZFZ -CUZQRMAMLTBDKSPYGBM -DVSYH -OYHYGIGFLEAA -QPFNURJXAIOT -VKJHJ -FRBCUN -QCFNAKZ -TTKTZOQBPPKKUUDWKW -XITJDQODKMI -WQ -MCOJRHCVRYDDYO -BWU -FUTGDAAR -JSIDUVNGYQ -JUKRNAQSUGHR -CJM -NIRVMAMZLIBMK -ZKFWEEBIHL -TKTSBLWKVBBNJM -LJFEFKFOR -KXZADDPNJ -PBICUO -KGHLPIANSXBKTOPFYUER -DUKYCUGTF -E -CKYR -EG -SVGIITMZRHPU -DWGBVZHXVMZXME -TNCV -PUYDOTBGZCTMJ -DOT -MXHXNNRJUQWKK -HRHAXYDNG -RBKRU -VGWGTF -UCFG -PQPZDHT -KYZPDZURKDXZJEWDYQIW -QBVXZAHGDBCSVF -IINYDWURRHEEAUTHTE -WICRI -IJPDCGU -NYHMPDFGWCFETSVFSVCS -LDCFJWROJQTYUYWESIIJ -THSYZBSF -W -YTKIGZRPGE -AJKQKK -HZRYMSE -KEQMOQWWSOOYXITHOYM -MRGOFZSVZWLGEYQKB -YWYNVUTPDHTUODZ -VJEFIMEGEO -SLXCFGXR -ZTLBWKFHL -PPRTNVDNKHGEMFUIWUJ -K -C -NAAUDSQIBHDO -KNGXSXCQXM -56 -XWQOJPSLFAOIPYTTP -CO -NQQXEOH -LQWRTDZE -GQFUSMIBG -O -YNVUZGFQDYEW -VSSUEPCWK -SICOXEGNZXTWJOQF -GTRYJVKDG -NNRNLMEJYLRWSSHQFDWT -GVBMVGRATVMXRKCDNMF -WMFASICZITMCCWCNNHH -RBZ -AINCNOMNLGDHW -TQMDSZQZYIEZSSQIAK -OOH -UKIYJKAM -RVIMFIRXDBOZ -IJJI -ASTFPUPPZDQPHEPYDUVJ -QKRSSG -HLLUTPJVBIGIMNZC -HPSOBXTQVHOJHSUIEIA -JFVEWP -VWW -QUVFFFFOM -BOEFWCBRPVOWZP -ZXARODEHT -ADURJVTVJKEYRWU -XJOFEKDMTEC -CLSXAGGSPDUUIECTTXDY -XGEM -NFKY -CAFVIAMUU -Y -JGHBYPUWLCZKIAU -VWYSFYSROBABH -HPXIMRPZBTHL -VCLIURCB -RYKBR -VRVAZQB -FMV -YKQVYJITKFBIVRGE -VFUFCCOPUAYULZJWT -TCRHXODOLXUOILWHRT -X -VLFXDQKPSCZWJUOKCTIZ -RQHKQLVNE -GYSFSFTT -SCLNJAT -RFTFQCK -LKTFUQQZGWYZO -AYBNEKCKS -JB -LMKXSLQZMHUFUN -85 -QGBCYAXEUXUOWF -RQEDMZPTMXRZCP -EBTAPJQ -AWFPG -NK -IEDUQMOAZITXIECQBY -VPENVGWJH -MEBQWCR -KDLZWYNNUSSCFZSODTK -MFUWHTZSGWIC -SMLAAISDFOXXSFBAR -MJFBYKYBR -LZL -ZA -BGKQUVTMARZBPSBSI -TRJBQE -OQPCSXVIPCNPMIRGGOXX -TBUPBEMJLGTMWKT -KBHFN -OBFAMGMUJCIU -RURVMTDIABJHAMCGGKK -T -CZZLP -DXFXV -WUOEDNC -KEGYWR -HCSCLAWCTEAQSLX -R -ZPZTHO -ZUGAJTDB -APSUTKGHSOTKOMZL -YGPB -PCPSDAT -KJANHWMRGB -IISDA -HVYWXBLYWHXAJ -W -KUPQXFSSLIRSEL -FOLVGSSVKTVCD -PKKGDHYNEFWNQV -TGPDRGBY -IOF -JRTBXOISEPL -BDFUBUPSSIPNWXTUTN -UHPUREYCQD -LAQMMYABCHGRXZH -HYIIXXUKONFRJQSRUWLM -GUXNQWYXSKBSEY -GOOTTXUDISLBTJNTYSQ -VOO -SBOZPUGOYRFNAZK -GEDNDYJRJQGC -XRNFSAGHUAZ -CNQLADVJEHHGAPMWUB -MIKJUCEYKCNSO -VFPR -WXDXI -HVRJDRL -HNBERSGMBRHABWSO -AEIG -SIUFTZ -ZTJMHIYIZMPRFH -COBDNFDMWVMMBACT -BLRW -QLNAZOZBLFDUR -JKILOWPSBLIXPQVTWNG -IHKEFSNNT -VAPKH -ZRIZCGEP -CYBGCHLPTMBSLFUS -OYM -TOJ -PFFNHERPXO -MHWIUOT -BIZNAGT -PH -KGRTVCDGWXXRNI -KBHGHZBL -IQ -GMQRFAOZXANIMJ -TH -YCTPTOJKVQBZACXXCGW -KXDOKKAETTF -HHMXILSDU -TOULYXTWDCDDY -87 -DVJZV -APCSAXMJVAN -IVXR -URUDSPQSLQO -WGXHT -IRVAM -PDHMWA -ILQQHAMVHSWTSB -JXHOAOJH -VFDNKDYTBTXO -VNGFCYGLZSBCKFXAG -XYGRNABBVGHJBYUT -BUGZXF -QBXPTBYZKHZL -ISITCMBVCDEBVNZGUYZN -NXSATBPTVKEAIZUEDJW -WIFTCVHYSS -ZHPVRKZQKDMWIBRJ -TBXQMKMLEAWRHHAY -XKNTOFTPXAM -QUV -WDCSZBKEAREULOOOZUZ -GKMOE -RFSMGARDXHNAOTO -OUUC -D -OCRUVZTVSGYLYY -YIADEYZ -YUOBTGDCQUFL -DTVOVZO -WLTRZFHBSHYRKCHA -KQCHVYFE -UEXKVSIUUIWRQ -XHRJJVONZENUPMI -CUWCKGUJXGBIZA -NFWKLFF -KEQGLKZECQIRPBZKCNX -KHBWMGAPKDSOUPKQOEDP -SQ -UKWFBCECQQIQXKGUDDK -F -ZJWCWCSAWVOTWJXZZB -EZGCNQIVSZAKOMHH -NHNWAIK -ZGSBICUSLCXYBU -FTIBSVIBGA -QXOMUOGCMQFK -EZNHOCWDH -DATDBTLABSDAPI -ZEIX -WZZOUCUXCBSZHOCIU -DNFMQAIGB -MXT -AKBUZDNOUM -HMFTCICMKANRXP -QE -IGWUCSEIIIVP -CFUDHTPSLEFSNCJV -YMKMQKMQXKCTEBHMPIY -FULYDNZRVTVYXE -PARJIKEHW -PIQVVHQKYDYG -SVPOTBELKNITPESAP -ABQV -PIBKDRQUHMTU -WXWWESW -ZRATENKTVDRVHSHWJBKC -DGWV -OJPOLTIBL -WUYW -FHTRQUSFWQ -G -EPWKNZNSCIDOZZDAY -LDTC -APQTVXPHRDYJI -DQQS -LNDQPWROUIMN -KUPFHY -UAGH -JVHWUTBJJAANFD -UILGO -ZGVDJWQQMHICBL -KREHMAT -DZEVKRQMBCN -HATDOJGXNN -NZRQUWMDYVTGWNXS -NSCCOQMUBRZGBUX -85 -BITTFIRGZ -UXYUKWMXQG -ZRBUNSJPUBNXFAO -XJIDWINIOHZYOJOPQC -ERLYJZLCL -YDGHDMHGDRNEYVZOPFZ -OV -JRQHEMFDHRKGQNQK -T -ISNXPIRWVWXBAA -MIMOLS -Q -VGLTFTA -EHSVKFWLGOIKLQWSTDK -CYGNGDYGVNJMFLRTW -EAHJKZ -N -FANDNTGZTTAUBCLRY -NROUSRI -AOOKATGKQ -IQBGKEPWNHKXYSCQ -OIBOTWNAAVAIW -SSNPKDUROODCQMHACJW -AOQVOYNFFXSUEOKN -YRWCTBRJBLSPSVFKGVP -JV -FFTSZFSIS -JFADRKSGKD -IQ -LFJYNOACDRAWILJITEZ -P -RSWZ -WKCWPIOKDCKKHSLP -QDIBSSHNFEFDGRVICXL -DHRFGGRWGZRGSFGEK -APGH -UPJFJHGCNXQLKDRJOF -GXTEAQP -WESXAZCAP -LROUQPMVMETF -PMCNLQRBJYWEYP -RRDHFHURLJOQMJKSMD -HMLNLSCUJT -QYBG -EHKBYWDCHPALEH -IKOMQCQOTOK -OUJAMM -PTLHWIOXQQHGPXFFL -UAAHEMQEYUWBKE -CEORMAQLC -EHRLHDGLPXHCNAZPK -KMDOPBILHSH -RGOYKAJRYWRT -FPKFSHKVN -OVMVRLCRINAWPYOY -OAYJY -AHDHVCTM -AG -R -NHHFWBMIHSIFIFJGA -YBGTGGMFNRTGVOKNP -VGYWMYACTTZRIZPBE -HQMOAEJPBXNRPDI -OPBKJDGXJFJ -EXS -UEVFRAMFDUZSSDLIF -F -TSYICUXNRNZVAIMOADBK -EVVK -SLBQVRQYICHRP -IEYIW -OOBIYGM -OUHZVQRACLIKZEEZI -A -CPUKBPR -HXZUJMVEPVARJEN -EDWVZML -NIMXYMWJFTDXKJPTSM -PQNKQROGXOSIA -AJVFQXNZVPFDJ -LMRBUEPTVPVAN -LESGZZLYKRGSSXZP -QWKH -AAESVZOFVJQL -CNQACETWEBISDIJIGOC -57 -ZRWFYARVHQXHSNVUTYX -ZXXJBDHUOZQKZYZL -YAHMLBHV -ZOI -PDMEYE -LMHXQLCCCZJGGDFYKBA -QOCUAGALSDS -TVJWPEXWKSSIEUB -BNPBZPAZSKRVBDLC -GCTJVRZT -WUJFCAMCXNNGDGJPJSM -VXYMODDVWQWNZUST -DYVJLFJ -MCAQQQLRATCTZJFIR -DIJBUMHCYBZLJVMATCC -VKCWCZLSC -OOPJIQE -RRIJTXEUUZAORTIERUWF -AMUPV -XZKKMKCNAZRUINMOWBX -LFLITEUJTLFBHCMJQEDQ -ILBVEMYBXDUTPVJV -ZONPOWEJAJSUMLMJX -KQXXGJOHGFXMKNARTXV -PARGFKOVIYCRLCJVXYDE -EVTTNKEFTKK -UQAVLWXL -WAOXNJNNLDYQFNZBQ -OCFNTUEWISWFYQS -FCRQM -YDITY -KNHCYTQQJYLRFHWQB -UZMXDCU -SWIXWKRLADJQEZTVASOF -RZKATGCBRMPZFHWT -RUGWPRNQGTPLEDHDJF -KWBSKZHM -DNMMUKQ -NNAMMZVJOYBPMDFL -GARYZAGHTSYXDQFPMT -SFRJVBIYTGYGBTH -KAMWDTKCAVFNROKXMWJ -ASSWCBMODPOUEHXRT -JLEGZN -ZDWFOMTQNCAIJHH -MGXFPFCY -GBDMZVHKSVWIAKWGTGS -SQMPBJRSJ -TEGRIGTXGLVQDTDZH -NX -UQIEQPCGOTDWROPX -BVSUYN -HTUDJVJDTZTVBZCRML -FPUDTGRJNVIHUARY -EFCAZJIGMRHQXQROJHWH -PS -MMZEBUGB -96 -QQTMJNNCSGLCZ -HMSQOP -LGTIQFTUOJDCWGACEL -VIMEUY -FKCIIX -IBYTVIRC -PDPLGMCPREHXTE -NMZGBDIZOVZNAHXD -INGZLKCVH -ELID -DDIS -EXRYLQR -FIWSHRVRMKBLXFW -AFDGPMCILPFMF -W -UOWCQXFJUDVZB -BIDJTVUIJXTCGJIDQ -AZDQWWDXAXSB -JWKA -VL -TMFRHV -HJZFAMTWPFO -XQNZAPOATMY -YWZCNRBWNGWZSGCXV -IIZPK -EZ -IM -DGSN -DOZNYYHRHBRGBNRPSN -OWSJSYBBXTHSYBE -KLQR -LOSZCCBRT -NUGVBOCZP -KKYGEDP -GJWFSDFPQWJD -OCZCMW -JPFYWWXKT -NQT -MRGOPERXKTSM -CADXHAJVTBPM -FISDZYRDBIGOJJGEYG -DQEMHIBEGKXJJSWIHS -PRQQOVUUKPSLW -TQAZSPPYHIZOSFFQ -TFKJUUBEOUUGQI -FQQMQDACEZQD -ENIXPNIZOFKMGX -JMQBISFGOIV -FEDLQJEFOADREJ -YKWKLWVJTPK -DGOXSWOTTZW -ABOQLGTOVKPSV -IXD -JJBL -UAQQOUJPFRS -GY -IJNBNOROFGPHRJO -PEGABY -N -EHJFMAGPDFV -LHUCYOAGAQIFJEFKJJC -FRKCALNV -DRHYMXALPDC -JDCONDXPL -ZNXRYICSTATT -EKGI -BDVGGHWR -J -FR -GPCKP -VS -BQQCYKFHQ -OAVJOCBZAKCR -VEWNMYW -HJDNBYKLIMBB -S -AH -UEQFJUVJNNQOQ -PCJSCNLDQITXHFUANRCZ -LINOVSWXU -Z -OVLNKTDDTVAJWF -YAJKQPBEHRQKEMYRXFY -YQWZINYBNDG -ZOOMQKQC -JBZOSAMCZ -AAUCLLFCRYXIB -LRDJFDXGJVBBONQCYNED -BIDTUCUJJ -OPBLYO -RDAOFYUBUCRUP -KJW -ABQOJRZZCN -CNHATAUJZWG -CQ -OQJAXSK -82 -O -QXBLLPMDACFH -SMKATEC -KKNB -WOMHP -SWGOO -LWRZMQBWYIZ -WHXXDVV -VUURUIPTEZ -ZXOOUWJHINYIMPSKIW -AYKLJOKCCQIWBJMIJ -DZKLFUKO -SEFMG -PPISJKERYFFGPEB -OMIWWXLSPROXC -LECHVSNKQKIXO -VO -KSDJGYZXIKSBVWZ -FGDHWOHIJELPIVNSRXQ -KC -UUMDEAXBGJ -L -BRYNCCQUN -HY -JGXVKSRKLSIIVL -LFPGKKIGSVMTUWVEH -HRVRJ -JKMPMSZOTYCKGVWEFFB -JAVAJUJLAVLCVYI -K -MQ -ENWJG -KGKKPWM -DMZYCG -KEIU -NCREYTCMAWCPOOMJSI -MGTAVFEEKZGTWIXFA -TCAI -FNBB -NBQGNALXRJEICNBFYSHZ -PAMDN -ECSG -P -PHHAZJFDLKFCPMO -TVQBYGVYZTEKPURXU -CRIFN -MELVARHBEIRXZGTFVJ -GWTAJ -FHYELQALQJLKFKKWDFUO -EYI -I -LJIIICNUXVMVHJRLLMQC -SGNQNITW -BLDNQZXP -ARFKRWHTLZZYODHXX -CNX -QGKC -DJBZ -HFRYYFB -ASSZRLKJFXCK -AMDPHFRDBYIK -E -WQHKEC -HNHEBOAYZJASYMAEWU -MJGWFJUEOTIE -OEGDWIAWIBVFP -PYHVREWISIDAO -SHSOZJOS -TENRLHQCQURP -PZUSFSRXJYD -LMAANTESPSPJEUKM -XWDKUNUGQFSUKROO -VCPWFTLQX -BHWVSEEAD -NYZXUEMMVEUDP -LIMMQEZADDPI -KBKOAHMQ -LLYEWZQDMV -NMRIHCREFKGTDNIPEYQP -LLTGHB -U -P -69 -AV -MQHQVMMYTKWXJVEF -NNDGYOQMLM -K -HRKMLIBOWTHXCE -LREGPNOOZRTHTWGJIJNJ -XNR -AQJURKJ -ZKGDUBSACTFL -CEUVNVCWLJWC -ZEPEWOYEYF -COJPTWPW -MQKEKTPULYNZNIR -XFONVEK -UUFWCFHZSOAGWFTOQKIW -VLISHSTTAZMYWTXRA -KGCDRVSEXS -JJVRTASUZAORMHMHKBN -OXKHLUQ -LXK -YNLDSPRRPSXNCQ -BUFRYQNSMMXRCONW -UKLIR -BAPJPQUQJEIQ -NBXHQGVKYOFLFEN -LYZPXTLZ -SKGRXJORXLUJZ -QZHWMWHJDSANBY -LGRGVEWPVYPFHN -LBLHXCXWEPN -MLLQKEPRRCCWB -BFVXIQLVEZRUX -E -DPNNLVWUXRFYTCRYXK -NFB -NNQFJNIQTNK -SDPXTSGMDRGRNMNGETT -YZP -AFRPUNJJBTPNWCUJ -YPOELUYHBGIGXOFEXOF -VTQBQZNAPJSVNJV -PVFATTP -DVIZCDDYTUTFAIY -NDFTLQDHFBXJE -JVIGYDANXWZUWZOGA -L -NQ -DJAFOGOG -WJNYFOOTBVB -HNGHLOOGYGLAET -IDLNBSHLIJYCR -PXCSAQZQOGIKYM -BPQYMBQCKXFSMN -BFSVOYVQTTVO -G -OLTHTICBTULZD -WCWGQJZUQQEOSEZ -EGIGCFJOIER -TTZWXS -JOVXDLDWRLPF -ZTZVAC -UISMBFCNRQOUTGIXPVC -JQIJSSVQCUB -VONJXUETXHKGJUPZUR -JIOFKEZ -VQKR -QRNITPRTMEJKKY -CULFLTPAHSQYSVYLC -ITJUXKLEVKUHMLKKOZO -99 -BCDFSMYLNHSSQXFEJAQO -RPUSRSUMPA -JMYJROIFDINFRZG -DVKMXBHLNU -OGWNHHKKHXNKPTLKC -XXP -ASMGFTBLZGKDQUKJK -LZFXHV -OPC -A -IMWWRMF -W -FZLCSJCRWQBNBZDV -VPLDHJT -DITVJUPEBJZY -QMHTHLSGASVIHUUA -NORABDFRHCZBH -TPRTOIBMAZTZBGRDCXM -RKFSQBGIYR -YKQGNFXPDLKFE -PNONX -KEMLKJMUHPGFDF -KPMGATTGCMJEQVQTXU -LIKXQWAPHZFLXBMZ -YEADSIWDUHOUFZOC -YRXNOEGLKGPE -PNPVQFVAZSRBUV -QJVXETB -DQXZLAJTAM -SQBUAH -JHUYDJV -JRFHUWL -XASPEDEMQMON -EHGVRHAWEHMSSZML -PJXLV -TDJ -QEAQZMF -BGAURCCVFLHJDTYHZRPM -OQNNMOLEUAUKYMQGTZ -APCQLNSGXCSI -WEPRHJP -KCIKRABL -JWEDBFPEC -B -P -TQJEYLGYNQY -TPIMTIPMFDAVAYVBPL -GMBWPHRUPDFKJVG -EDTEYLH -GPKETDDFRSJGP -EQ -CYHGGDARYAWADB -UHBZQMXIGLAW -G -FIAWWSVRT -QJCJFSVBDLBBRMX -OV -UTAUKWEFOJA -TCBQMXJQELJNP -OAX -UEGCGUEMGEZUDYVEC -HLAXFGPNZLVBYLUYEI -VUKQOBURKUK -RUQWJLZAFTLZBJ -MVUUOKPYAFX -RKUNPKA -TAVIVE -T -BEXQXVJILTF -XYXDWFVOWGWMRCNGWW -XOFZDWWLIMG -RHGUFCPXIVWHFO -RZYVJIKV -WCCRJAHPUCANKNFRSU -IKPEGNIGBQIZDRRDY -FQVPSYJAWSLHWGOYCH -C -NUT -GTNXCOU -YVGMYOEXUBMER -MRGDSLFZUBPFVAM -DGUWCWE -KKLTJCSGQBTIDLIYPP -OSGALCVMCU -LPMBVUTOTBWOM -BIUDFBJMDSZQ -HKQWORNFTQMWD -PXNSILBJJFTRED -YXJQBLCJEPHX -GVDJ -WHYXMFKCBGGCWVD -SFMUOQFNBATWUSXLBUV -WCQLX -M -RYXXCUGEMRSIHR -ECHXUBHJDPVSFDVOG -VFZJWORBGZFXLQSMDS -BNOHCUPYJUT -FZTETZAPXPS -94 -FVNM -ZPCLVMYZROSJRKEUNUG -RMRDGXXSOMBTPHAYJHX -NNZDZQZEIPIOIXYXVGQ -Y -USTIRERBSEF -ZWZZIZBQTBCY -FOEPEOECXNZ -SVIJIXEZBWJLWD -JNKXJR -XGXRHMCZZC -ZZWUSORRBBXKGDDPN -ATISKPWECKGUF -MMFKO -DRBZMQIRTFMLDOVBE -ZIPIMKMS -DHKQGHZ -EWQQDLWRNSOAVAYD -NJBLQANCMQIL -YHO -YTEATWNUIQXGVCACS -HNU -CGTOBFNHVHRH -MKUMJLOJGZXFI -RCEIFEVMZUAFTHHB -RNJSZYBLMGLSPNWOWT -NXFEXCPAJ -TWHRPKJJHTYULAEWKSPI -IKBUA -B -TICE -FWOSAMWBQODALCAWYB -YWJDFMAZRWYXOMX -QLUXLXRDPLFLTIHWGTO -HRVNVHBSXFMC -AFGDCKXVSB -YMURDEYCXDORBFONH -FEEBHOYUCZTARDGZ -JNNMWFYGLXEIIJWRQNNN -IVNALEPZCJBNC -VVFXSTTFCKZIDNQYOQ -RMHMOIGTKDDCB -MMHJKBT -JOLSAACQOMVWYFWWRDS -T -JBPSEICSOFGGAPMEGVD -NUNBKKMSLGZVKENEOTJ -ZMKLRQHIURNCB -NDTXPZLF -LJVALDKH -NQPUQAAHEEULOBJTINV -FYYXXWJKVMSR -RWRGMUFBFMOKAM -ZHYK -MXGAYOPASFMXNUBUQ -UUOJRCGRSJFB -LBWFH -ZJSWPIXFQZ -LHFDYXEYUDRMIYDTNGD -ZVFRNZMT -VFGYXKYJFOVOMKMMB -LSHRJYWEHNXXEWUOY -PAFLSPVEKLFTXEDJ -A -UOFVUUJCBHUIVQE -KM -FVCGLCGPWMFTEPY -RRZRPVSEBAVXMREPLL -DXO -PWFMBOJBJS -XHNQEJQYX -FPEUEKKUC -YEAZFB -FYNSD -OMC -B -PKXAGNF -PRTXLXXUQNZDSGGAU -YNMUWNUTGEN -QKMPWV -K -IIWBYZD -QCUVXKC -RHCESHBEVOQXARBOSAIN -PVFF -IHJRGDNZWUS -KCNQBVYHQBUGRHR -YXBKPMGZQ -OFKESVRNU -GKCFUUEHSUWMUDTCB -SKVPMSUXBGVRECTKOK -VUFNYZQGTSFUOYG -RIPNUXZAGURLEEKRO -QEDBVB -51 -GVYEONLYIOM -XMFDBUDKLSLJXZPWJBPG -JOONDHZBWVQ -YTMFSVFMOBVFBXT -GOPYHFQD -ILUCBDL -QXCXODOUBDGIKAP -ILDIWQKP -BFVFUXFSEZOESJCMYETC -XLJNPU -DZGIIV -NJDAPHSYJHGDLSSDI -MOYYLGTSFCTIYEHFQM -LPHADKJUOPPIOFTDLB -QZ -QUOXZEBXMOA -RCGQVG -FLGIXHVBCXSOHLB -NATRGLOXOUPALV -IDPISWLQ -VXVZYRIZRXJCJ -OYQPZKKFUYECKTXD -SUT -HRATWJEGD -YLHVVJEDWGGDV -GC -ZM -FCYYAUXED -HCAUESYHLW -OGHMIIMFPSVBSLQO -NBSEFHU -KNKQT -THXEAGRCZKBGPUZLRC -VE -XUZCT -CKAGAFXYWOFPLLAXD -W -XLJJHLFNBFEHJBWX -TISXBD -EN -JCNHL -LCR -DPUKNVDOKJPUCQX -MGOCEFJPHCKDWN -OIGUTPFJRNZCBYKZX -KBMDAQIDR -XVVHACZ -TYQHXLAXOBUSM -FUSWEUKRUDNOKRWT -IWQBKNRHZYMIFBRHS -CXWAVYJG -96 -ZZBNV -MSNBWBOPZ -YUSP -FRGDECUCUVILEGX -UYVAOIGFCYJCSAVW -VMZXWIHJZWREA -KDLEEOZXGXGZIS -MGHEGGB -TEBYQF -WXNIUXQIBGIEFZBLSJI -A -LYU -PMCDKSSTUS -UHWZCX -VEAOAEZRY -CWCJD -WCIJXPBKRRB -VB -XWKNTMMJOSA -IWQXOXZQDERERSOMX -WGRSYYHYMIILYBRSSEN -VRBCNPOOXRGMLAU -NQOVYJAHYNQRPADVUR -RKHXXLQFAZH -LZ -MZZBMQQETIYLIFXAV -XMPVLRYFGYAFREVEICE -ACGIVDYOQOHUAU -ROXOU -ORTIBTKFOK -NLMQFDLDPL -JUCE -MLJWACLCHSFBQ -R -MYCSKJCPVOSVPK -RNXQBOYGYMLX -SGSGHAF -GXMVDDAJSQCJAHQJLCRB -QTK -RJO -AUIMDEHDNSLPTL -TNN -AZJTBHOWMWLZ -GRSJHUNGEGHVPSLIRKPX -EQFMRNOQLBUW -CCGDJ -K -XKHDRBVJCJN -WT -DMQPFMSC -QYGAOLOYHNMIPVVO -PJPY -UGNPVVNIUNOLQUPL -SSLOYOVE -PMOEFRCNHP -TYSJJIUFI -IODWWFUTYXYDZALCWIB -QNROVWVH -MVCRS -KFVFCVDQKDJUWRFFKCS -AISCZUELQBGIOKYJLI -HOXSQDFFD -YBPJVTNHULPQZZPLU -EBOMEMSASETLTCIE -UPRCFFOCYJV -KEHBWTSSXHJZH -UHRXMXGRZHARKN -GILQSYVB -LVYSIJAXILZFDE -BRYXPCCVWLNTGQCW -DBBQW -AEKYTZSPTBHPEN -LDECFWVJ -ZXXRWUTIJPT -EUYMZHBABZZRQSGOLW -ENEFUXWQGJXIVH -OYJNEZCWXQEPJ -LOREMBVKKLDTD -SZANEFR -HBOXWZTZJIMG -G -WQIZLDID -YJWPQXWCNGTCBU -G -WMXOUYB -FESEIBUJPGR -UTVAQVSDJ -HZ -TTIQXSUXLLCJUBKZYO -OKQRRLFHWYHJJZVDYF -DRNYLXLFLMRGUFP -CXQ -WZKRAIL -DHHIBSBNX -BHSOMHQWYOCDG -OEFNMNPAOUQ -58 -XZJYMTYEPSYWNHJLYFK -NXTX -ESWCEAQVBBYURQ -YRHXD -SEJL -YRUNJWJ -PZTLMFJANNQWVCRFW -JIXVIDDOKW -HCTNHFFUHXQFBJUZIS -WSSUWDWGWAILNI -SYDHVYISXRATSKECO -NRHTBHUMMVWHZUM -IFNA -BLMDCRPGQEIXYMOZU -YIPUCPRHQITIDV -MGEVCEGTQEDEYYNG -XH -UXJRHVSJZZEVYAHWBLEH -ZWOYEEMYTVDRZMO -I -GAMUFCZMSUDGBSZT -PZUUCKUHQVMMRXWLLTGR -G -HZGPFKRREUMGUQYZ -X -CEAVKGSR -YHIVMLBVPVUTTL -RXHNCBJXCXDALVQUQT -TUXLNIBQGKGVR -XLUQFNMFZZNXPAEJLRYI -RNIXXOGDZOP -LMQQHWBWOBZOREQNKYI -VZZLDICHQKOILGO -KPQGMZTOTRCUVXPQUSM -MTHWPDYAEYCTCIXTJCT -GAZBUHNAJNZDFTKODD -DMQLOSQOFSFMBCECHWF -NZDYBCTEMORLURS -ECFOKPYGRXO -MBXGCRHICQNGIBHMMRO -LVMFTZBUSXGRWH -IYOGSNLGSHXC -XHCF -TRHUCOYVKYTEAROOU -GOBDMIFRFYPOX -QHKUGEBD -TRKRIEPOBQRNROW -AXOXX -FAUHDQMTNMXVYHFQL -ADVTSEMDURZC -TMDISPX -ESIJJRNBRQOIFYMJZTXF -ISQICCMHVYMWEV -MSWQMLRFBOKJYTSWNMV -YVKPHPALGPYV -OZXAI -IYN -RAAYNKBVRBYXWCJFQAX -73 -G -YHP -H -ZQ -SJBNN -AIBUCJRDERLJARV -ZTBSDWC -PMYIMZGIJ -ZMB -AOLRZN -OILAJ -QNMYRIOYWZLSIEFAT -JOWXUWNXTNDHIUPUWM -OHYHCAH -JQTX -KHODTHQZGTHO -GEMOEN -FWWU -CAXU -TBZUMZJLC -SJYNHVKNAPIPMQYEVT -JULJQBSKTXJKDJXDQ -WBVFISMMHUNUSQ -RKGZIQVJCQRZJSROIRFS -JS -XIAJSJJZFJMK -MBNHK -HYZSNALNWUNCJWLFTUJH -XMTQZPDQBFTEA -LNXNWHRTW -ILAADDNEYKQVHQ -KYYOBDDCYZ -HZUHVUYPCVCEHXEPY -HSANTDIKCOKWEJG -ACWNUTAFPFXHSELSO -VD -XMCCUWYOOIKLUDSK -TSZQVOWWFWDWQYPK -VKTYBKLHASSWEBXDPPX -SIPMPRVG -CBVMVCLVWCODMPTIAEX -WBGQYSXOMQQHVUVUWIBQ -JQTZIDOANAKGWOZJ -RDAL -TOUFWOKROFNUGSNIQ -BWHCYBXYETNX -DVYZEDBSXHIPKJ -RDTDMABCPG -PZI -JOJMRFWSEBVXEJXJUZYQ -XUASTR -T -JJFSOSVTEUBTWH -AWINWLDGDOEXWHQU -IBOEVHPMOWGGFUZIQXE -WIQLBXNLFHR -UZRZQBXIAVFM -GCKVRSHLWZ -BQNCGILB -FQZIXJJALBNULUSX -GCISWBQWFSRCN -EGAFWRFBRSYAQSAPOIPH -ZYPV -GSHXYVCOCQOMCGNHNLNV -UFVHMNTXSQMJTTVFZ -LXEKGQYTEO -NBEKYAUCEVVPUEM -EOIJMYDCVJSJPRKT -LJPBMBNINA -J -OSECZERET -GIQYTSXLYFDQMGMWGB -IWOMBTXZ -98 -ZRO -CA -PR -ZTNMBVYOMGYCUPYAYQRL -CYRYPY -TBKCYBSJFRHVL -GIOYWQKOQ -ADRWKGYEFFONSZDQ -RPMJCC -EQRJQUFFDV -ZIVKVBQSXZZTYQ -DYUWZUZQ -UFYDHH -FQHVLCSI -SIEGD -R -N -HVPTJWEJT -ZWGVLHFFFZLI -SMSEDPWNIWTURIMP -XWOXBBXJBLFZ -DKCIKUWAKBAPQVABJPVC -WRRPQVULA -NYXYHPQRIQYZZS -CJYKBLURKAX -AI -RCIYJ -DSCFXXXXZCRZVRE -PEQQZXOTBASZIM -NGIVZWBPSWYOHKTY -QTDWIWHJHTZMRZDBNRY -FQWUPYBJF -UIJUXLEY -QTWZPRUFUSCCOOPPYYG -ZSWKFJMYCIBLVIR -LH -RVXDHRTFLPXZZXW -CRKAXYICZTJ -HXOCWXVMWYGQ -ZZSVGKOWTQR -B -THBDBPAU -EECD -CDMTBXXEMDEAEELDFOU -QLNZNQDHGHLRAENQI -TNSPJWSOP -FXXISVGWMVBANGFGXS -EZ -OQVYVGRFMLL -YYE -ICVHAHM -NYTNHKHJQUOG -RRDMXL -ZDT -CHWFVQEKA -NC -IPUOC -XVLPWJCR -ULMQTVMWNQ -MSLUZXAU -DR -SUFSDJIHZUIMLYBQE -AZTTP -X -SLNBI -ERCL -WCVF -VLXUDUHP -OHYIFOTOHXXJGXUTTSIJ -B -ZNKPMSJNGPZVKGGNTYLP -TYFV -AGLLTVV -VOLRY -PWWHLJSSOFTUVLJWUI -DCCXPQZCGKZUJTJN -OYBGKYUXZSUMFAABGCSE -SXSCMCSOYQPHJKZAPC -OCQBVEZNQTBKXZYPQC -RMJHE -JBBEUJFM -ZLDSNGEADZELTTVXU -HAVBMKXQQ -PUNDTADID -NHBYZOSPWSG -GKZEJMYXITEION -SCEWXSLICVHRRN -ORHLWWGBDLYCPQREST -QJMGSIFOLCDQJRUN -OHGWYCUMBB -RKMQIWQGHDBATABMGUSN -KAAEAXEJZIRADCAXW -PXIAPFQZ -PSCHDQ -DRGTUQNUZGDRXCDKTBZD -DXLYVH -LNWBEAGYWVNU -HYZRMS -86 -YWTRMPGRYKN -POQERCQL -FAXIG -SWLHKULZMSMGURZCLBTN -KQQPJJXPDCKBPVBAZVSU -UBMBGNLWSBBDIWGHQII -WUXHHHRTUUSF -LEUMQNLWUBVVX -EILPFBDQNY -CBFNRXAWNRPIIFEQEQ -BJSOV -QNSVJB -YXXVPIAQJAWN -SVCTWVHHF -PSMGANPGGFWGOMC -BOSWVZ -QCPUBESX -R -HP -ENLDGPCAKDORPPGKWL -HFYGGCFKPE -TCUNZBQJVDKFJZ -UOBRNRXLTNZTITJ -OK -QCYPBFNKAHWOAKTRZAQN -DCEWMROQHIKOJPLHN -GCGXYFJAXMYTGNWZV -JXK -RDWXAUZOMDXMSGHZNN -IXRQJQFTUMM -KCLFRPXPO -CLFPVCPGXZPZL -OBRSFRPVVUJ -FQMTXYG -ENMKSFEXJ -CRAPBOFS -YUTRHVBLMCPJHTWUI -HICKQEUNUTZJVJMXMY -PJQOUPHDPYKXBDF -PSSENTZH -DBSKDEYXLXRL -AHDUWVI -OOSVNWGXRK -DNLJUUMS -TVDMEDBWAPHKGZ -UBQADDQYRLPAUT -PBSSYKKJJNHETH -ADWQYRDFYD -GOLVPVBJ -DKDIRHOSTJKGDT -AF -ULKXYZO -VYHQGFMY -VWQIY -NUHRXWLK -VHMWDFIYLFGPWGXIXUW -NOTYMKXCOUQSZQEVK -UADEHMWR -HDINXCSDZUSQGD -YYNELZOWEDESU -ZYAJJCEJOG -EBZEDHVWNNQKGHBC -BDYE -YJFWQJXPALL -KCRXQFKLJNYQSZII -JNDZPSCPFKBI -ZYCFMNGB -AWSRGSPYXD -EQZDLPWJTB -ZCZZZXFEVPZGJSB -WKYWHYASZHFCAORTIMO -WYICJTXNMFRGXECNYQ -IZZW -JRCEYZHJAZWFM -DBOZTYHCZYTRVUZOOUV -MIISUGNNMEIJDTC -VDAO -EDLLPZDFPQDUQZAZU -NWDEKFYOYURBCWSZHRPO -CEHQSCMA -OGDFXBGRXIDWPNFRUT -XQDBEFNZXJDOSNN -GIYNIASRUANNI -GMOUEFBXPSNUHWFEJT -JVVFFOLEUXDYUEY -MEYLP -65 -C -KQQPUCFST -OXYCWUDJRYGXQAX -QMEYJQSOH -PPIJCXXXSC -MIDIQRJMLKQ -RDZDLVEOGZAJBFJXGSY -VEKUNUTAXGZEUAKJNULN -QDXBJLUDWWPF -DXC -PEDNGRERARZZKOOJ -HXQEGNCDISPDYSJAFFRW -WZALJ -UKONKLBF -BXEQSFUKCARDWMZNDP -JLTC -QJGBGX -J -IEQIVUXD -KILXUREBTJSVQTBBX -LKPTAGBPBJZBUVYKAUDM -V -IDAB -XAHWH -UIONRCOHXIJQVMNBVBOZ -ODENRLF -L -NNUUPLLNYOHU -VPXFKULBIFLDDZXXYG -BR -OEXUD -ZVMWBCZVZTBHPCIL -GDLQTZUFH -KEKB -ZZLUQIAPN -JNAUZIOZSTYDAGXBKJN -IVJAWLHLEJGEHMVRCPNY -TJEMUF -BGJKHY -PVULBSIABVSZHBTEUIYK -TDMUNCH -FYIWFQWGICBHZ -LHC -BFKVIWDWYBVUX -EXTXVTWRXEQZISASJB -MXS -ORECDXWMKMFFWBVJJ -CTKDVPSBNYKJNENHCLGO -LLMKVNLPCWSPJMWTVGYN -QTFQIQEUVODES -KOJPNSFQVX -DN -OSQXFUNFIWBVLYMUNZA -VRBGIFUQTIYEFPJXMRI -NQLD -MNVPFU -IBRCGXJP -VDQIIMACL -RPOQGVNGLAG -RAKCCSLXNTUVYVR -ZRGKXWRO -PRVWPNYR -MUBZCV -VHWIRSDLRHPWNMFFTKAE -WNKXFRPFGZXJPFSWBDGG -56 -QISYXZOCIZPN -PULPPYYGT -BCSYKXVIYKY -RIDY -OKFJBPLFWNY -PUYODCBXER -NRLHHRJMIFSPVVLPU -OS -ITQE -YRYFYXW -GLEDVUW -DDIKXTHWHSALR -UDVGGCY -HUATMEWPMC -X -XQDIBUZVPIEG -PSHSALCHPEH -YNWTKJKZRIYAUBIJJBUL -GPIHEBKRUYGADRSMRJR -AQABRBNBLFJSJALTRCNX -IKMVTWTGNLONMBG -VIJKGJVRP -MK -OOWEGMCMPJ -UKYICCHUDRNJOBQHFI -L -QJFSNUBKAZSC -OWFLGRXQEL -QWRCYWVHNKIPKDE -OTPTWMJDLZAWL -PLBNYISEREPMALGAEZW -NXMYKERWMYNPZSBDHGM -NRZY -BRSBKZAEFNTJHYQ -NSMQCPVTKHDDY -KBVCSLAALYQFDL -GZRDN -BP -YXWRWROHDWMDTIOXGLT -JOLL -EHURAFEO -NA -VEMCMSRKVXMYYDANLMAD -SSCQKLPP -TLWRJSKWEGII -VLLNOCCJFLTICQIMHAQ -CAGIIOVRKCA -BNFCJNJZBQ -DSGKGYEZGUQCWNCF -G -YQSN -ESNXYXMBJA -NU -LKYOYHIREGCUOUDPRVK -NOJXOWEAKGQYBQYWZUS -SNMFEKHMYVNJFHB -94 -QTVLAQAPR -L -PWDCRSAO -ELKO -QOGFJUES -WDZ -YOMTQAII -XNRDTGM -MCAO -CET -GEQWSL -VTFFKO -MMCRODBDZKI -IF -AXETPIUGOVGZIOKDPIDK -NKQOPIOJGKSZQCLI -ZIOMVHBXMLB -JDINBXO -RRJRRZXXG -LLHA -CU -QRRCDTVAZYQLPWYOWWRZ -QROTHPYEGTIIVZ -VMPHXAWJGOXXJCFVZVST -QIZMJQHIAUPFPVHOAG -BYWTKCBTBPXC -BCXNRXKZGRJEKI -BKU -IATBU -ZFXQWWVJHCE -LFJNGMHIBCJVDS -PHRNXJPLJHKU -TLXDTYANUFASTP -GLISSTPRJBMWABQBPM -MLOWWKUNHJXYMO -NQBLUXLWCEOKDS -RKPTBGCAHRXDNTY -NXPYOVERBFMNYFLTGKGY -GLIT -KYYZBS -WWTYUYLZWBK -F -PFYQCVVDJ -RY -DGHXYKTYCUPI -DYDKOIMTLONI -CODJGHZAVPWTOVWYN -GSDJCQIKMDQIVZG -UGRDWPLJZPGAESZOMDO -IRBQA -WUBUIEMPA -HBCOIZOENBSSEDCM -DUFWEZXZZHDUP -V -YVMASBGG -ASOEBTSFGDAC -A -MHHYXJQJREHPFLZANC -QZBJZUNYJS -TJQ -IMJPSJLVAOK -NSUGTHDBPMLXNSKP -OZDYPQWHAYCNFWLYVHW -KLZ -VFYJMLNGUWOOAATFOAAG -VQDZZYWMEEXJDPZSCS -FZ -BYVVQIQDZCZHW -HZIM -ROGZWWXTJHCRPSUKNHKL -DT -DJVCFWQDS -XCYNDXHUI -CKJKUMX -XCKDXMVUHQPIJJYO -RWZZ -TAKXXRRZUKCLBTRGTSQ -DVAZQRFOOYOQJI -ZCQGEUHEJQCEKLH -DCSUHYEXBVDB -TICPBL -JOTGYWNZIGPHWLBXYYLR -ARHQ -JGKDZQJWQEAWLGXW -RSYVPHXITSW -MTXLMKTT -TNFULFDMDMUWLA -UTJIRCL -WLKRABWNEYQ -GLFSZILCVAVAJI -UAW -DYNDZGXACRRRQUO -QOHSFIJ -JJVCWS -69 -BKXUBMNIVCJWDSWRLT -CPK -MM -OFVIJEIBYHZEVUWOANZ -JOXAQIKUMWTLEVPNOCM -GDUJVDUNLF -UNPK -AANLMKCTPQVRWJSY -N -MY -BOAJQRJRBMVDPKSXYH -NVMX -EHRZXH -YGHDLYCMMM -PD -TKPSJCOCVDBKBRQAUILG -ADP -HTD -AP -PDLKRFBMGLNYT -GRNW -IHVPZCLR -STR -WTBTUNZXTLNY -CLXYUBXDI -FLJRVXOMTTEALRZVMGTO -HZUTXTSCBZHIT -MTBWOOENU -YTIITDUASKSUIMH -LFASUUKE -GJZWZP -QHGTSYWRWWOKMF -JKKKYGERCAGSN -ZCENVUJM -POYMSDOUOMP -QYO -AYFXWIVKZAWPICURFFAL -HXZBCQYH -IHHGVJYVXB -WDMCJRYUBGNC -KVBEDA -YBIY -RYDLDUFPI -NWITYFCMXZQRLNSAN -VEWP -DKARBNMHZ -TSCPTBUIBDNWHFP -J -WUUKSCJ -IUCKJJWKWEYFSYC -BYTQIQWHWXTRZRBSBFE -QAWQPVC -KWGIBIXWTKJSMRJVZ -TVEGRAHTXNQEJ -RMLZKUPTL -PPQLO -OSKIPORDIX -CKQWZZWELADWOONUL -MNC -TBGOJHHRPN -MJTRUT -EZSSPMEOJYHHI -FIPZAKAFLTOXASZGHDG -WC -BZJGFLCWEEXBPEPADUW -TZHBSKTLGU -CWGVPK -ADDSZXNP -WFDWNCRZWXHSSCYRRER -90 -RWQXDJBOCM -HGDCOI -MVZXQZPK -OWUYXWJZQDCTFQUYUL -OJLXSJWZHV -THDDIYBBOJOAHZGIXRHQ -QIWPVCFFIZIXTBJDZY -YTJYMSXUPKUARD -WCX -YXQNYIXZJWUXGD -APLC -LTJFEDEUUFEGFTAKM -ETNTKVVCSGCWZUNHRJO -CXS -FIYEIFZKSWYVU -TOF -KOOTUJWWTFTRFGNF -IQWAKNNWYTTJ -YXSOWTG -ZSBXBHCXTYZYHRSTHUO -JUL -HUR -NKIKMXVHSPGEREYPZAEM -YYSXBACCOFKQRZA -NPPLLCHRCTHYXXSDI -EDGKIISZESER -TUVTBWI -VYPGESGQWJO -RWNFS -JG -UTLQIEJIEWDTUAHWVJPG -MYPNWDLQPQTQQ -L -CLFSUC -EINJCUWZRZLZ -WYUIGBGJEDAPPT -GPZLYTCRGLNEHQAKAQ -BOQ -XUCPFKEWIUJUGOXFRK -OCPKT -YFPKSJZ -TWIU -RCKIIOZYQUJKJQU -CGJIOSHAS -UOZWYZAU -ZHRHQTQYJH -IDQJPMIPWQGDTBLNAHM -GPOAOCIJRSHOOEMUHXNF -MBHKWZGJJS -QHIZWWVMTST -HJIIJAHGGAFQAWP -WCOOXKSOGZY -EOONXG -USXUHLUFEFV -YFWXV -GEKCWLAKT -JLDZI -B -HHRWHULWSNPFZVZ -JE -AUTNPPWYVMBDJEST -ZSPMBCEKVD -LWABWPQ -KLDA -HKB -FMYJNSNQ -TDHLDJZKRIJFMXZBS -E -NOT -AHZZP -UQQADQJXV -RKJ -J -UFMQLCAWIW -DSGXIWJJSKLJCUMDAVXM -UAMWFNCPUR -MQWPEY -QG -JUKVJEBQ -NVUSAG -OPMDLZMHROUSNY -DD -WIZFFFD -OHPZCPGOFMFQ -VUQQMZLRYIOVHJYN -BAHDQZBAXNBALUMGYWJD -SSZYAGZAGVQXOJQUG -UJIDHGTQPIZHNOXNNL -TCWM -BVGITJI -80 -FBW -FNMEGNISAIKWETG -EAJUDYISBWXOTMKXKRBT -IWFMTVB -NJ -OC -HJLSNV -XCAPVI -AAEM -RFUWBWXHQI -ZMYBDKTEVSVRWVN -KXBXPDH -CX -JL -DMJN -UKZIQHIMNEWGGH -BOGD -IMLNQPWVSEXFMVWLAXM -IKZHXWWVWADFEKURYL -HCSKX -HHYDXMRPEBH -MGC -FTQBSLTUEVICEB -AQJXCLWQHMGVRDKE -PPLLG -FYNQPDZBFX -GU -EMEHOALFHSQTQFQG -PLHXOZYLXJYV -LZP -KIFHPPXYNAMDU -JPHUAJGWBRJTYM -CJSZWOTNTL -KGIXPPX -PCLZUJOONFROEFBL -CBX -LGOVTLVOIEHWLMYZVLY -OY -NVYEKDYMCCJBRUGHSDB -XPDBZPPTDCZNRAWX -QKVWJBRLGCBO -IJDCU -QSGIDWJTCADMXMPO -WN -LTETVTFANZT -GOO -SHVDGGDJWC -NYECFZHWUWE -SGD -BBKHVNFXFKPJM -ETKT -ZXNPDBPBTC -JLEGECJE -LRSHUS -PDNBGHIHDTJ -LKEP -AJGBOLMBV -VLA -EUCEUKHJLWUW -WSHUUVB -OOGGH -PDQFURPUSTMBLJDTYJ -REYKYUJOEAYKV -RDNGPOJQFFGEVP -ILECWOXFLFASARVGQ -UZPSAVWVAW -E -YZXSWIUYIIQRWWDVF -XN -HFTHTDQVUEN -EDLEETVSMRBJACNTJK -IVWDTIQJEWS -RVMNLZBPECYECKNUOMG -XGB -KXNSCEWQHRRWWMQ -GETXTZMXX -QGCJVPTXMLJTTMNB -BHRASKLOXEH -M -OIJWCEJEPAXTFQKHXT -79 -MPTPOM -TRZOZA -JMHHHRNAKDC -EAQLTXBQNPETCEJ -FWAEVKRMCHFBDF -PQCLJBTWIXELTNYTSHXB -AEDGT -JW -CD -KJNQXCDMVXBUBQNF -MDMHJXTKHKELPPIRU -CWLONFH -GXBDCNGOMIIBKPDP -LWMFAIOCNOULHVPJENQ -NYKQBNBUQPIOTFOQOVT -FBXEWAGSFWTIGBMUNUFW -YTLDZYOPPIHICZNQ -YYMVRYDBOIXLZE -ARMHJHPNUHHBIU -YYLBYEMTB -RBPVAQKHNWELELILEQ -ODSEMWQYXODQVZQ -XEHIHELHHP -BVTLRXQCBKZHNEUAU -GXQFXPJEXRLBSDUWMFIO -SCXGSYSAO -PAAJPBFASRBUVVY -VJRJLPCJZ -TZCODCGEK -JKSSEJARWZGNPOWIIRFD -YBEBNLYCMYUELJHDXGZ -OM -EJUJGXNCYTA -NDJPFLLG -GZBWBFFHR -QXUARGLJ -QEPTBW -PCMZRXEEMUTYMGWPIR -MN -COFQNUPD -GHKZZ -VHMLBQ -XCJCZWPMQV -CEAJHQGRD -EDPL -SEPTTRVFVGJTBXULOT -UWOCRVNQJJ -LTQKRJGPDGFQZ -OJBQTWVFBWHWUTLB -OSXXYJPGYUPTIVVJ -KYVHROPJE -BIZUZJCCZPJPXB -YBASWHWHZ -MPMJPHWKZXNSZNAXHBP -PXQOHPBSI -HXVVEQOJFDHEU -OTFHV -POBUYUQNHUJXKRD -HTFZSSCEHIT -SJS -ORQKRAQ -DFDYQAM -SOBROG -QPYVNPHXCXKCTJWZI -HNCNGTEZFMCBG -ONPPLX -FEOEKOJMTPXJLKOXM -WTWFEWNHHBMLUJENJ -PNAAJEIXMBLBYJGQWFP -SFTZBYMJBMCVGOZL -HECICKWIZHNMHANBZ -TH -KULJFGMNNQPNTZ -TUMHDQODWPVRSCRX -HENELZRQDYAOT -DBKKQVSYMMGHKGYXDK -G -PUZQFSY -FQEUCDTBXISPLHZ -90 -FBDVMMCRKVYDLIWTQ -ELXXPBIRBPXCD -QPWKZCYTXTBXLMJXQUI -FDG -FNIRSHYLSTFMBU -YOEGXXGGREDU -RQR -PQLSEX -IYOBSUFYNZJTXP -JSPLFNSWYSJODUUNK -IXNJFUQAB -SFXXPHKO -TOXSFG -XGNISSBEXOMDFSGPYCF -QUC -SWGZ -ZQOXRTM -RPMSUWYRZBFP -SDRUYNHLAJMBBQA -WFTJCODVHRQZEHMKGXIH -JLPF -XPWTVLVPRYOIXBZ -Y -IAPIVRLGOHVLX -AGRNVHF -AWLQDJ -EI -VLAFLNQETJKWX -WXWSQZHYVDDYIESHK -SXFOFGQEVJWNPSXPZS -NWJKURM -FOMKVGMI -RHGOREJZP -XQVNDDWBBFDMDKYLADLJ -UJZUGKFXX -SD -UY -XGUZWXS -EQFZGG -CEGHTASATOL -IUYPKMHZAZAI -R -HFYJBXQVXVELYFTO -EQZEMREVVDTU -FVJWNNRHI -OXBXTFLKBHXWCME -K -LIQEWN -BUJIJYGZRG -CRX -KHDPLNZRZOVJ -ALKKTLRNQFLWMMCLQJ -VEMIWSVBIWMKYXV -K -ZTRWAJEDHUN -MJZMBNEZVSHB -XPY -TOODGP -LSXXTZGKST -NDYNELOXIDAWGJKRD -GAUM -BXIGYLXOJEDFX -VBTKDGYZHBIPBO -SY -BPAGIZZWTOCWFWUARS -JLPYFVPJ -JHRYX -RKRGRTUWDKOVVWCI -UFOVVPUICU -HEOF -ZZFUMRDTCESOJY -BKSBMI -JHPEMKVJBSVNFZJR -FFDPWAIC -JGEHZZWYUBIWBGRDXGI -B -MCPOUZ -JVT -JLAQBQRYRXDMQCN -DLFGRXA -GTBPXQVG -HXDQIVYBEWEYDCAVUP -RWCSHZIPIOZHQH -HXUDHZDTUQJFXGLOMT -HTLFSRMDIHD -EGOQWX -NTLGRIRYNOMSS -PGUCEFPALRZWB -D -GMFQG -71 -SPFRRKKIJUMRGJ -XSJQNNJWL -RMOFMOVRVGBMSSSIDIRC -XHEPS -CAWTEF -ZWIQJURTA -EPOCHFWP -QPFPBVFFFFEGZO -SVWWMB -JUYEBKGDY -ZVO -WCGQTZSPXOGYQN -UCIMA -TP -MKVKSJHJCIIKC -QSBC -YD -VDEKWMNOCGGDBM -DGUTYVLTNFWISZFJ -MXAZGZVD -DAVBMLRDO -ILJPOURXYPQZEDBYS -JUIMIESGMV -NNUDHU -OXSCQKNUI -VUKEUOOSCC -OV -OMEKTJEGTBTJBUAVA -MGDJZBDTERKKXWHWZ -XYMWFNPSNHKCTRFUEGX -CCDM -SLKNADE -HTWUECZ -MW -CM -ASCWWH -CSUHSPLFWWTENAZPRVT -OJXIBHHLJSBQGIT -AMOB -ZXPOAYUE -NEAUMDVAEE -YPIWIJXNYYHO -SFLOX -AHGRAJL -YLSYBSG -MFTS -XOOM -KMOINQIO -BWOZYDNWJR -FBUHMCGOO -NO -VOKCKLZ -LMMDVWB -YJKBVMIGTVLZJZKTMXOV -ZDV -SOFIJ -SCWCDP -VYDXOWFHS -YVJPHWNXUIZS -UPFPJAKCGCBSS -JTDJRZWHSEPGWIXGF -QHVLGK -QUI -KMHTSXMYHUUQFFVVWUE -PHNF -BPUFTJCHYOBYNXNTC -RGP -VPMTBNN -BCFZCWCZQVJJUXW -DUTJEEVXLKBFF -AHUYCGPDH -95 -XBEQEXDNC -EQIUBPAGPJ -QKDIERSKLDADTOC -EGHESATSTDFV -NQXMFBEAMWSYJWWRKJI -IFJLCBKQTSB -ASASRSNL -NHAXPUXM -PPH -ERYV -XBNNXXALGWCARHQLMA -PHMTYCDNDIBIAQWTOWW -J -BJXIIFYDATROWDW -UHRJVJHNBJ -CKCLLHBFDXZUTOENSETZ -UJ -UOYVYSBSVMSWK -IDLXRUEVKFWA -MPNDJCFTXJHILQIXFM -FDM -YRHZPMKUPLWMAIOA -ZCOIDXL -S -SFGWHHSLMKTKFNBJPJNT -JMUTWLHTR -FVGQDRFVTCEM -GW -DDQMHG -WR -LW -BNGSIPPSEJL -ZJCZGGXHUKABP -AUAKHREFYOJS -EHZX -XRMNTFGSUAKKWM -WE -IKGXCRWTCFMTJRBOQL -QVHIZ -H -WDVXN -MWUDBZQNZOLLZITIHDHT -WLHGATOSRSTEY -NINZZNGZUUTX -D -NKNFVCUJ -AVXSPRBQWS -FZRV -GVYNEETCVW -COKRCEDE -OHXJCAKXB -LVWAJFOH -JZWRXSBBD -C -VWDABNSBXYHOXXSTNKGG -A -PCVNWTZPSKELZUSBNPYY -EDGYZ -JSPYLDOG -RYZTHRMNYGHVL -TXIMF -PJJN -IA -ZIKICQHX -KJCHUGALCPMLFLVWU -Z -AZWJDQPNR -N -GLHOBFMDC -YRPGHCATJWQGOTOY -VWGWTDXMJPT -OVEOKPPDM -BTU -DPERKBTGEECFL -NZKC -ZRBALYL -GOJCXANZLTPHP -NWSVSXQQDKQOEQDDRFSK -VVOAMKWWYCVJSHM -PZMFHXZDGKQ -BPMBTOPMARDKCWSRLF -RZCVZTNQUWSA -JRHTOSZPTELKG -FZNCJ -XAUIKJIDGRUGRCUAHEMM -OKBTGGNP -PKZTHUZQL -ZFFO -NTBZPFUD -KSYBZAN -DLHGZDCJBHUCYRSV -OZZQNMJB -BGYWBWIXRDREYRSRCZX -UCCCDDDF -LYTLJOTRLN -72 -GEVHELZTZ -CXKMGCJCISZVFEYLIEA -AVVFDIQUQSNAUBO -WCQNIVAEYI -YPJPGGKHW -XC -MYCZLBRNKXNBXRR -SLITSHZOJWHLTF -OWGPCL -ZZSKEFDW -ELLGSZHCCSAOPZUAXCP -WDBYLBWJ -IE -KJLFQZQOW -LHHZDGVBC -VRSBIHSHKPYAKKOZVR -MTEPU -FLPXEPLYGKMNMNACTZP -MNTBKPJW -OENAKYFNKZCITUHLT -IUTQVLW -HEISHCXUBHUUQKIR -RZKQDCRFPF -DITP -HW -TAQZQ -XNZDWUQRXXXSSXHDQG -WZSIWIDAQSGLOBLKJI -CXUVLFUOWYOOEPHMKH -FXNDRQNZDVK -EWVQFN -LBH -NGCHLFQ -LMOOZZJUQHRVWLSRIL -FZWHYZEKPPOKQVJ -DRZVBRMM -NJYKEIJUENATVOKMYT -GHFBUGKCTABYJR -FNZWS -DJBNWSYR -BYLYGSI -KXTZPCMUCA -IWCCBIDSUUYAR -GFWEYLVCNDBDYD -ERLLLYXOX -XSOP -ZKJQEWL -SXNFTXIS -MMDFSLHNCWMYNFI -QFLVCXODLSPPNUDCLGJ -IBVECYCC -KHQCJ -QEETTKKOMNMV -U -NJLKDE -CPMKJN -RS -ORJCVPONHUVFBBAF -MJC -OF -CMPCACDCYK -STBBMYXCV -ZHTRWRSQKWUGQOQZFVQ -PVIBFSBGHKUQVIRBAH -QOQDLMRK -SXC -BV -C -PXLXKFPJMCPUD -RFIFU -RL -ICE -67 -HWYF -WUBTRQWAS -YYCGOZY -BRWQRQKPCQZY -GPFFPPW -JUPEGRXBGUSWAZQIVCGK -WPGVFNXIRANYJKRKIUW -IIA -LHBTVIRENB -KQMQROSTBUXDUP -PCCODNFLBCRC -KJRSSB -AZTSWKZ -BKDR -RODKQUEOKOP -CVBQUQEMHBEXKKZVUD -YJO -RLDNCBKQROU -FDXBTCUWGGXUHC -CPQ -GZNJLPECIBDTBWVNOL -SSCMMJBKSAINFEOQTTST -OIN -WSMUALA -NFXPZDEQDIB -UMW -YGKAMCSYOS -GDLOSJJVNAZOXHEFVNV -PVCRCXMZADDRJNAECWQ -GUMESLRUVTJOCOFR -XXMSOLTBS -NBPJZNOIEERKORDX -STMAJPCUIVIVOPBDLG -TCFMDEVHSRIASICZKWZX -QQJCTPMIRRW -DNMA -JYJ -LLVFLITRIZ -IEMH -ZKCHCEH -UIMJ -YUVXERNOINBLOFYV -LXTZW -VMDVBTDUKQCAGPXKEMX -LXDOGHDJVYQBVDPZ -XTIOSEDLYGAJBOPIJRG -QWJZJPV -ICWMDLHGNG -ONPOWCGKWVTVIUVLGX -VFFCEMARKAX -HIIJ -GLGTW -UNSLQQCCYGQQJQKYXSCY -BFWMU -CZNOLALIVFDPEB -NKK -DUTWSLFIOHZNGU -PDWKTSL -XWPI -LLKCWZMZAMKHANNMUPNA -YMJRRHJWWEERITHLB -XW -BGEW -BQDOTEDJZ -FEC -LFYYVRWPYLHC -I -78 -XKZIODZPEJ -RREXZDFLIUYKUCX -WCH -TPJOKY -LDOUWTXABR -LIXWQLTOUD -HOFNSAK -MCVGZWXYXRXHZ -GDMLSNSPGIIUBVF -MXVIFJXDHSQSR -XCOTAOSAELVXTFL -CYVDODLCTVMZM -UQUKENGHGPJVLUZP -TQX -UEQ -QSDYLQJLMLBDHMQGBB -RM -RQXYCL -CFWUVCBEFZ -MHHKBLCVUD -PLUBFBNH -FTUVQEII -HPGIAIV -YKGFBILCNK -SW -SFAONIXUQMTYMTY -SKGZQZ -XIVZNBGSBV -COOSSDMAWSDJQR -XIXLZTZSFBAHFKZA -RONFR -VHBGW -HPKCPZTIQLPVNKNKZPYQ -RPHIWWTYTIPZELL -MVHKLFMMHOQDZNS -IOPKMWV -EI -RPUUI -CHDYYCTIM -IMJXILAZBDROSNEJ -XDSCPEEMJMVA -VEZOVKY -QESN -CJXQDIUWMZYDHHZF -BFMTHGDYDNIPJINNIZMM -PUDZUYSZHIYN -KQQJRYGYLBDPLU -BLTB -S -HNDCXLLZ -FBRFSYERK -AZBDVUFD -PBTVOCJCHVZPZFRDMEAZ -FNWQDKARJCSYVGPUY -QVC -SG -KCBIXN -HQRHESJOSZFYCSKZBT -LZWOTPOE -LMNUTJ -VYQVNTJQGJ -EVMSFCDTGBIKNVAD -BQRC -ENKMLHVEELWJNSULTUV -MOFPFOGAOKNQORY -PKMLBA -NLOGS -Z -BCBGEGWSXQPJGRLL -EXWVSD -ZVRZXSBTZXKCOLACJ -XA -IASVJN -FEZWTFXI -IHDCWOZQPGJHN -ZNIOESTMPY -HNEWOAVWZF -UNGOFKXBP -52 -VFTPSHBK -FL -WGUBFBNWUAFIMMARXHNT -MNNKBNY -BBVYSZLLPLQ -PUQCOXHZLTIKZLL -F -XRRFFIUCQGRHWLN -SITAJVRMZRRKQQTENYW -AFITMINJAWBRENZVDR -QEWADMB -UWKFKSGCCTGZPLMNDHW -PF -VRJAABU -JMQPOSGZQXKPX -HGTEL -RUGRUAAWJHQCRWPHQM -JQA -SZFIXX -XX -OYCNKE -CCS -BVQFIMWNBXHQOWBTZN -FSEHMOQFLVIV -RRFALHEWVQUQYO -UVNEATHVCQ -YVDSOJENVZD -VRARBOOXZVONUZ -JZPSYTXHGXKCGITGRUMB -XUTW -CFMDOTY -ARWCYBIYUHMDLFID -WNPQKUQBKLBTZAWTBWG -VSRZX -OYMTBU -PITRLNGGF -RHFPNSDAFTR -ZDPO -GFQQMYL -DQSNPPDYUJFAEADMGW -DIEPZCOWF -SO -BG -UK -KLMKPEGT -HFE -X -QEISJKAKC -OE -TCINAHTVL -OC -WSITHRRKRRULUEPJPSJ -90 -XBO -S -RGGMURELDDNVXBT -ZIFSXFLHRVE -C -JUH -BKOY -QF -DBLBUEGXLPXZ -NOO -YGXBAFMVNRZISGJALH -OXJBO -LVCRTRTJN -GZ -TETUXSPVHJWSTCW -XCFKNGYYNLSYQAOBS -QJNGG -QBARTCOA -MQBZTUUFUGICXJPL -MJFUCBNLNPZFXINY -COHIEGGVFOCNSESJ -LWSQFVW -ERBHXI -UENQLFORTFZGCKUMTU -KEPHVIGPIN -NSFQPTZHAACHCTAVJK -GRAZ -EZLXIAQ -KLOLEJKLFMAZCITIZL -MKYHVRINIYNTACGCFE -CCVCNTZTBNAKWIYBZH -P -MJZGOVN -PI -RVYI -VFKVQDWCJBIYTUDO -RCUMCPVXK -YPKVSYHVQBRZCZLWHOZX -TFAVVWH -DBAG -SAWBIPSZSFCEEAA -SLYTDPDCIGZBEJTXVJ -VTVDXNDMCHHN -OIEPGQLIHCK -DMRAD -NGOCUJDLKLPRKGDVGXUA -YDHEDKDQRRFTGZ -Y -BFCQWMOSZULQVGKYOOUQ -DDOZEUUROFBTTTOKWAXD -NJHTZIBBZWPEZCTBEA -POW -HPHKZMLYDWWUAQWAMDF -GQACQNRWRFQBANYYFJ -RQRCTOCRACTIHBFIA -ZYC -HSBMTI -GYBIIDZBFHB -CKGZEXTGJSQKWGSZ -RVK -NR -K -XPORMNV -YTHMGREEQHNHREGWN -CVSFJSWTYIIBUGKRKAI -HVQSCIXW -PN -UP -IHYIIROHZQOKGREPDSS -JI -TRQTDYTVOZTWUJAGJ -NMUBAWCAAVJQC -CNER -PBQBSQWQOBLFBPWIFHQI -TVQAXWKWCSOSC -VFXLDADBIIAZQNGAVEW -DGZZIF -THJKUPZBKEDM -VVINABFHECNEPX -QESXVTDRX -OCSKRBC -J -ZDMCPAGLSCDUWBMDXA -KYANPKUKFYBIWQAUL -AKOUZIQHLB -JEXKRAMKRXMRHSVRSBXA -BIZFJZONK -WLVNQPZ -WQNU -EOGWO -64 -QKI -XO -Y -TFGVVUNMEZGALA -EITKOVSYWVRGWMJLJHY -TIE -ENCNFGOYJIPATCGD -HOHOAAZAEKEPXUUTF -UZOJKOUFMXDLLZW -MWHWTZAMIVCTIJ -XKQBVEQQPIDAAP -AIL -APRVRGRSHALSQCTGFI -NFZ -KUKBKJ -BSPKGXDJ -LM -DST -CZIAIUSKOKVX -OLEZSTUABB -EUEPO -YMVWMMDWNFLYUWHCKAKU -RZFV -UMCDLGHODTONI -DHBNEXQQRDLWQOMCGBNM -TDEILNHKJO -OKFAOZAGLGTB -RZOADDAEC -RBNH -DROZFVYD -SEDNKZ -NBRWFXKPASJDOGBNVFBZ -ORPLPJUHORW -ZWGNXJTWDQSXAJXVA -IPQYKXATIROWXUQYJ -SKMKTDDIYDZ -LOKFYOEPUAKEQUE -IOSSVNPRNCUEZOWXU -ADPWNLJ -IPZOZFCRTYESYBNB -NMVQTGWWHRAWNP -SJAVFRPVKV -MADGL -DI -EWNLCXUXVTUSJBLYXOT -UAULELAVY -XRXNCODXCCNM -YXRMEF -FRF -QQ -CEOU -WEWHGQUKMGIXMBVHAM -IO -BKNNALEDFCUSFCQFVC -WPZNPHEYT -WKZZFXRDDLTICV -ZGNIWNMIL -XZPW -GYSCALWRORVZXR -SYTSICXIGIXBXQY -KFY -QIM -ZDTMSHOIROCCWI -QKYESJEVSMDD diff --git a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2017/Problem 1/Problem 1.cpp b/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2017/Problem 1/Problem 1.cpp deleted file mode 100644 index 002fb067..00000000 --- a/Hiring Challenges/Google-APAC-Kickstart/Kickstart Practice Round 2017/Problem 1/Problem 1.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include -using namespace std; -int main() { - freopen("A-large.in", "r", stdin); - freopen("output2.out", "w", stdout); - long long int t, n, i, j, k; - string s; - set ss; - vector > v; - cin>>t; - for(i=0;i>n; - getline(cin, s); - for(j = 0; j < n; ++j){ - getline(cin, s); - //cout< -using namespace std; -int main() { - freopen("B-large.in", "r", stdin); - freopen("output2.out", "w", stdout); - long long int t, i; - long double n, m; - cin>>t; - for(i = 0; i < t; ++i){ - cout<<"Case #"<>n>>m; - cout< -using namespace std; -int main() { - freopen("C-large.in", "r", stdin); - freopen("output2.out", "w", stdout); - long long int t, i, n, m; - cin>>t; - for(i = 0; i < t; ++i){ - cout<<"Case #"<>n>>m; - cout<<(min(n, m) * (min(n, m) + 1)) / 2< -using namespace std; -int main() { - freopen("A-large-practice.in", "r", stdin); - freopen("output.txt", "w", stdout); - long long int n, i , j, ans, c; - string s; - cin>>n; - for(i=0;i>s; - ans = 1; - if(s.length()==1){ - ans = 1; - } - else if(s.length()==2){ - if(s[0]==s[1]){ - ans = 1; - } - else { - ans = 4; - } - } - else { - if(s[1]!=s[0]){ - ans = ans * 2; - ans = ans % 1000000007; - } - for(j=1;j "Save this link as" or similar) - -6 - -3 -1 2 -2 1 -0 0 - -3 -1 2 -2 2 -2 1 - -5 -42 74 -52 19 -38 88 -32 53 -17 37 - -5 -43 24 -55 73 -8 85 -89 71 -26 84 - -5 -78 56 -83 50 -7 83 -75 17 -70 30 - -5 -40 11 -95 77 -51 74 -10 32 -53 62 -Output for sample input -File: task1-sample-output.txt (You can download the file using right click -> "Save this link as" or similar) - -Case #1: 5.886 -Case #2: 3.41421356237 -Case #3: 73.330 -Case #4: 97.55161 -Case #5: 58.86691157 -Case #6: 100.865 -Test input -Please submit output of this input for the submission form below. - -File: task1-test-input.txt (You can download the file using right click -> "Save this link as" or similar) +Note: All information provided during the recruiting process is confidential. Any unauthorized use, disclosure or distribution of information is prohibited, including, but not limited to, discussion with others and/or posting on websites or public message boards. + +Problem description +You are given a list of points on a 2D plane. Your task is to find the smallest perimeter (sum of edge lengths) among all triangles formed by selecting three points from the list. Note that edge length between two points is defined by this formula: ((x1-x2)2+(y1-y2)2)1/2. + +Input +Test cases will be provided in the following multiline text format, using only ASCII characters. The first line contains one integer, C, which is the number of test cases that will follow. The second line is blank. From the third line onwards, the test cases separated by a blank line will follow. + +Each test case has the following format. + +N +X1 Y1 +X2 Y2 +... +XN YN +N is the number of points, and Xi and Yi are x and y coordinates of the i-th point. All tokens in a line are separated by a single space. + +Guarantees +All numbers in the input are integers. +Number of test cases: 1 <= C <= 40 +Number of points in a test case: 3 <= N <= 40 +X and Y coordinates of each point: 0 <= Xi <= 100, 0 <= Yi <= 100 +No two points are at the same place. +No three points will lie on the same straight line. +Note: You can assume that the input data is valid and satisfies all constraints. Your solution does not need to include error handling code. +Output +For each test case, output the result in the following format: + +Case #k: D +where k is the index of the test case, starting from 1, and D is minimum perimeter of a triangle. You can output an arbitrary number of digits after the decimal point provided that the error of the value is no greater than 0.001. All tokens in the output should be separated by a single space. + +Sample input +File: task1-sample-input.txt (You can download the file using right click -> "Save this link as" or similar) + +6 + +3 +1 2 +2 1 +0 0 + +3 +1 2 +2 2 +2 1 + +5 +42 74 +52 19 +38 88 +32 53 +17 37 + +5 +43 24 +55 73 +8 85 +89 71 +26 84 + +5 +78 56 +83 50 +7 83 +75 17 +70 30 + +5 +40 11 +95 77 +51 74 +10 32 +53 62 +Output for sample input +File: task1-sample-output.txt (You can download the file using right click -> "Save this link as" or similar) + +Case #1: 5.886 +Case #2: 3.41421356237 +Case #3: 73.330 +Case #4: 97.55161 +Case #5: 58.86691157 +Case #6: 100.865 +Test input +Please submit output of this input for the submission form below. + +File: task1-test-input.txt (You can download the file using right click -> "Save this link as" or similar) diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/Solution.py b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/Solution.py similarity index 100% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/Solution.py rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/Solution.py diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/output.txt b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/output.txt similarity index 100% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/output.txt rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/output.txt diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/sample-input.txt b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/sample-input.txt old mode 100755 new mode 100644 similarity index 80% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/sample-input.txt rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/sample-input.txt index 31c80f0e..272c862b --- a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/sample-input.txt +++ b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/sample-input.txt @@ -1,39 +1,39 @@ -6 - -3 -1 2 -2 1 -0 0 - -3 -1 2 -2 2 -2 1 - -5 -42 74 -52 19 -38 88 -32 53 -17 37 - -5 -43 24 -55 73 -8 85 -89 71 -26 84 - -5 -78 56 -83 50 -7 83 -75 17 -70 30 - -5 -40 11 -95 77 -51 74 -10 32 +6 + +3 +1 2 +2 1 +0 0 + +3 +1 2 +2 2 +2 1 + +5 +42 74 +52 19 +38 88 +32 53 +17 37 + +5 +43 24 +55 73 +8 85 +89 71 +26 84 + +5 +78 56 +83 50 +7 83 +75 17 +70 30 + +5 +40 11 +95 77 +51 74 +10 32 53 62 \ No newline at end of file diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/sample-output.txt b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/sample-output.txt similarity index 100% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/sample-output.txt rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/sample-output.txt diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/task1-test-input.txt b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/task1-test-input.txt similarity index 100% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/task1-test-input.txt rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 1/task1-test-input.txt diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/Not Available.txt b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/Not Available.txt old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/Not Available.txt rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/Not Available.txt diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/README.md b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/README.md old mode 100755 new mode 100644 similarity index 95% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/README.md rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/README.md index 5f41bc4a..3153f336 --- a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/README.md +++ b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/README.md @@ -1,73 +1,73 @@ -Note: All information provided during the recruiting process is confidential. Any unauthorized use, disclosure or distribution of information is prohibited, including, but not limited to, discussion with others and/or posting on websites or public message boards. - -Problem description -You have N programs and want to run each of them exactly once. Each program takes exactly one hour to complete. You can run multiple programs in parallel, but some programs depend on the output from one or more other programs and thus can be run only after their completion. Given the dependency between programs, please compute the minimum number of hours you need to run all programs. - -Input -Test cases will be provided in the following format, using only ASCII characters. The first line contains one integer, C, which is the number of test cases that will follow. The second line is blank. From third line onwards, multiple test cases separated by a blank line will follow. Each test case has the following format: - -N M -A1 B1 -A2 B2 -… -AM BM -N is the number of programs you want to run, and M is the number of dependencies between programs. Each of the following M lines specifies one dependency; Ai-th program needs to be completed before you run Bi-th program. - -All tokens in a line are separated by a single space. - -Guarantees -All numbers in the input are integers. -Number of test cases: 1 <= C <= 50 -Number of programs: 1 <= N <= 20 -Number of dependencies: 0 <= M <= N*(N-1)/2 -1 <= Ai <= N, 1 <= Bi <= N -There is a way to run each program exactly once. -There is no circular dependency, that is, if i-th program depends on j-th program, j-th program does not depend on i-th program directly or indirectly. -No two dependencies are the same: (Ai, Bi) != (Aj, Bj) if i != j. -Note: You can assume that the input data is valid and satisfies all constraints. Your solution does not need to include error handling code. - -Output -For each test case, output a result in the following format: - -Case #k: H -where k is the number of the test case, starting from 1, and H indicates how many hours you need to run all programs. - -All tokens in the output should be separated by a single space. - -Sample input -File: task2-sample-input.txt (You can download the file using right click -> "Save this link as" or similar) - -5 - -3 2 -1 2 -2 3 - -3 2 -2 3 -2 1 - -5 5 -1 3 -3 4 -2 3 -3 5 -1 4 - -4 2 -1 2 -4 3 - -2 0 -Output for sample input -File: task2-sample-output.txt (You can download the file using right click -> "Save this link as" or similar) - -Case #1: 3 -Case #2: 2 -Case #3: 3 -Case #4: 2 -Case #5: 1 -Test input -Please submit output for this input in the submission form below. - -File: task2-test-input.txt (You can download the file using right click -> "Save this link as" or similar) +Note: All information provided during the recruiting process is confidential. Any unauthorized use, disclosure or distribution of information is prohibited, including, but not limited to, discussion with others and/or posting on websites or public message boards. + +Problem description +You have N programs and want to run each of them exactly once. Each program takes exactly one hour to complete. You can run multiple programs in parallel, but some programs depend on the output from one or more other programs and thus can be run only after their completion. Given the dependency between programs, please compute the minimum number of hours you need to run all programs. + +Input +Test cases will be provided in the following format, using only ASCII characters. The first line contains one integer, C, which is the number of test cases that will follow. The second line is blank. From third line onwards, multiple test cases separated by a blank line will follow. Each test case has the following format: + +N M +A1 B1 +A2 B2 +… +AM BM +N is the number of programs you want to run, and M is the number of dependencies between programs. Each of the following M lines specifies one dependency; Ai-th program needs to be completed before you run Bi-th program. + +All tokens in a line are separated by a single space. + +Guarantees +All numbers in the input are integers. +Number of test cases: 1 <= C <= 50 +Number of programs: 1 <= N <= 20 +Number of dependencies: 0 <= M <= N\*(N-1)/2 +1 <= Ai <= N, 1 <= Bi <= N +There is a way to run each program exactly once. +There is no circular dependency, that is, if i-th program depends on j-th program, j-th program does not depend on i-th program directly or indirectly. +No two dependencies are the same: (Ai, Bi) != (Aj, Bj) if i != j. +Note: You can assume that the input data is valid and satisfies all constraints. Your solution does not need to include error handling code. + +Output +For each test case, output a result in the following format: + +Case #k: H +where k is the number of the test case, starting from 1, and H indicates how many hours you need to run all programs. + +All tokens in the output should be separated by a single space. + +Sample input +File: task2-sample-input.txt (You can download the file using right click -> "Save this link as" or similar) + +5 + +3 2 +1 2 +2 3 + +3 2 +2 3 +2 1 + +5 5 +1 3 +3 4 +2 3 +3 5 +1 4 + +4 2 +1 2 +4 3 + +2 0 +Output for sample input +File: task2-sample-output.txt (You can download the file using right click -> "Save this link as" or similar) + +Case #1: 3 +Case #2: 2 +Case #3: 3 +Case #4: 2 +Case #5: 1 +Test input +Please submit output for this input in the submission form below. + +File: task2-test-input.txt (You can download the file using right click -> "Save this link as" or similar) diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/Solution.py b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/Solution.py similarity index 100% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/Solution.py rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/Solution.py diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/output.txt b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/output.txt similarity index 100% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/output.txt rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/output.txt diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/sample-input.txt b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/sample-input.txt old mode 100755 new mode 100644 similarity index 76% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/sample-input.txt rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/sample-input.txt index 82f5184d..ba15d73c --- a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/sample-input.txt +++ b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/sample-input.txt @@ -1,22 +1,22 @@ -5 - -3 2 -1 2 -2 3 - -3 2 -2 3 -2 1 - -5 5 -1 3 -3 4 -2 3 -3 5 -1 4 - -4 2 -1 2 -4 3 - +5 + +3 2 +1 2 +2 3 + +3 2 +2 3 +2 1 + +5 5 +1 3 +3 4 +2 3 +3 5 +1 4 + +4 2 +1 2 +4 3 + 2 0 \ No newline at end of file diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/sample-output.txt b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/sample-output.txt similarity index 100% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/sample-output.txt rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/sample-output.txt diff --git a/Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/task2-test-input.txt b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/task2-test-input.txt similarity index 100% rename from Interviews/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/task2-test-input.txt rename to Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/Problem 2/task2-test-input.txt diff --git a/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/README.md b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/README.md new file mode 100644 index 00000000..5587e08a --- /dev/null +++ b/Hiring Challenges/Google/Software Engineer University Graduate - Tokyo 2019/Round 1 - Online Challenge/README.md @@ -0,0 +1,34 @@ +Thank you for applying for the Class of 2019 Software Engineer position at Google. The first step of the interview process is an online coding challenge. You will be able to see the coding problems when it starts, but please make sure to read the below information before proceeding. + +# Date and Time: + +Wednesday, February 21, 18:00 - 20:00 (Japan Standard Time) + +# Required tools: + +You will need a machine with access to the internet and development environment (for compiling and executing the programs you write) + +# Eligibility: + +- Currently pursuing a BS, MS or PhD degree in Computer Science or related technical field at a university. +- Be able to start after January 2019 at the Tokyo office. You cannot start from 2018. + +# Rules of participation: + +- The online coding challenge consists of two tasks. When the challenge starts, you will be able to see a menu on the left side containing the coding problems. Feel free to start with the task that you feel most comfortable with. +- The time limit is 120 minutes for the two problems. Remaining time will be shown at the top right section of this site. Feel free to use your favorite programming language to solve them. +- Each task provides input data and directions for generating an output. Your program can process the input in any way that you’d like (you can even embed it directly in your source code). +- Please submit the output and the source code you wrote using the answer submission section at the bottom of each problem. +- You can submit the output and the source code as many times as you’d like until the time limit, but only your last correct submission for each task will be considered. (In case you cannot make a correct submission, your last submission will be considered.) +- Even if your code is incomplete it will be considered for partial credit as long as it's submitted within the time limit. In this case, please generate a file containing “N/A” and submit it as the output file. +- You must submit your answers within the time limit. The accuracy of your output is the most important factor in your evaluation, and quality of your code is the second important factor; the speed of submission and the number of times you submit are far less important. +- During the challenge, you are allowed to browse other websites ONLY to access standard library references, programming language references, and online dictionaries. + +# Important points: + +- In case of any issues, notifications will be highlighted in red at the top of this site or you will be notified by email. +- This challenge is to simply assess your coding skills. We will also review and take into consideration your resume and other factors when making a decision on your application. +- All information provided during the recruiting process is confidential. Any unauthorized use, disclosure or distribution of information is prohibited, including, but not limited to, discussion with others and/or posting on websites or public message boards. If any form of misconduct is discovered, it will result in your disqualification. +- This challenge is the first step of the recruiting process. Your technical skills will continue to be evaluated during our recruiting process shall you proceed to the next stages. + +If you encounter any problems, please contact us at \*@google.com diff --git a/Interviews/Google/Software Engineering Intern - Germany Summer 2017/Round 1 - Development Task/Development+Task.pdf b/Hiring Challenges/Google/Software Engineering Intern - Germany Summer 2017/Round 1 - Development Task/Development+Task.pdf similarity index 100% rename from Interviews/Google/Software Engineering Intern - Germany Summer 2017/Round 1 - Development Task/Development+Task.pdf rename to Hiring Challenges/Google/Software Engineering Intern - Germany Summer 2017/Round 1 - Development Task/Development+Task.pdf diff --git a/Interviews/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/After.py b/Hiring Challenges/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/After.py similarity index 100% rename from Interviews/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/After.py rename to Hiring Challenges/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/After.py diff --git a/Interviews/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/Not Available.txt b/Hiring Challenges/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/Not Available.txt old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/Not Available.txt rename to Hiring Challenges/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/Not Available.txt diff --git a/Interviews/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/Problem 1.cpp b/Hiring Challenges/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/Problem 1.cpp similarity index 95% rename from Interviews/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/Problem 1.cpp rename to Hiring Challenges/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/Problem 1.cpp index aa811b37..78a7d991 100644 --- a/Interviews/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/Problem 1.cpp +++ b/Hiring Challenges/Google/Software Engineering Intern - Tokyo Summer 2017/Round 1 - Online Challenge/Problem 1/Problem 1.cpp @@ -1,40 +1,40 @@ -#include -using namespace std; -int main() { - freopen("sample-input.txt", "r", stdin); - //freopen("output-after.txt", "w", stdout); - long long int t, n, i, j, temp; - long double m, v, a[105]; - cin>>t; - for(i = 0; i < t; ++i) { - cout<<"Case #"<>n; - m = 0; - for(j = 0; j < n; ++j) { - cin>>a[j]; - m = m + a[j]; - } - m = m / n; - v = 0; - for(j = 0; j < n; ++j){ - temp = a[j] - m; - v = v + temp * temp; - } - v = v / n; - temp = v; - //cout< +using namespace std; +int main() { + freopen("sample-input.txt", "r", stdin); + //freopen("output-after.txt", "w", stdout); + long long int t, n, i, j, temp; + long double m, v, a[105]; + cin>>t; + for(i = 0; i < t; ++i) { + cout<<"Case #"<>n; + m = 0; + for(j = 0; j < n; ++j) { + cin>>a[j]; + m = m + a[j]; + } + m = m / n; + v = 0; + for(j = 0; j < n; ++j){ + temp = a[j] - m; + v = v + temp * temp; + } + v = v / n; + temp = v; + //cout< -using namespace std; -bool compare(const vector& a,const vector& b) { - return a.size() > b.size(); -} -int main() { - freopen("task2-test-input.txt", "r", stdin); - freopen("output2.txt", "w", stdout); - long long int t, n, i, j, m, a, b, k; - vector< vector > v(105); - cin>>t; - for(i = 0; i < t; ++i) { - cout<<"Case #"<>n>>m; - - for(j = 0; j < m; ++j) { - cin>>a>>b; - k = 0; - while(find(v[k].begin(), v[k].end(), a)!=v[k].end() && find(v[k].begin(), v[k].end(), b)!=v[k].end()){ - k++; - } - v[k].push_back(a); - v[k].push_back(b); - sort(v[k].begin(), v[k].end()); - } - if(m==0){ - for(j = 0; j < n; ++j){ - cout<<"1 "; - } - } - else { - sort(v.begin(),v.end(), compare); - for(j = 0; v[j].size()!=0; ++j) { - cout< +using namespace std; +bool compare(const vector& a,const vector& b) { + return a.size() > b.size(); +} +int main() { + freopen("task2-test-input.txt", "r", stdin); + freopen("output2.txt", "w", stdout); + long long int t, n, i, j, m, a, b, k; + vector< vector > v(105); + cin>>t; + for(i = 0; i < t; ++i) { + cout<<"Case #"<>n>>m; + + for(j = 0; j < m; ++j) { + cin>>a>>b; + k = 0; + while(find(v[k].begin(), v[k].end(), a)!=v[k].end() && find(v[k].begin(), v[k].end(), b)!=v[k].end()){ + k++; + } + v[k].push_back(a); + v[k].push_back(b); + sort(v[k].begin(), v[k].end()); + } + if(m==0){ + for(j = 0; j < n; ++j){ + cout<<"1 "; + } + } + else { + sort(v.begin(),v.end(), compare); + for(j = 0; v[j].size()!=0; ++j) { + cout< + + HackerEarth FrontEnd Internship + + + + + + +
+
LOGO
+
+
+
+
+ + +
+
+
+
+
Done
+
+
+
+ + + diff --git a/Hiring Challenges/HackerEarth/Summer Intern 2016/js/tasks.js b/Hiring Challenges/HackerEarth/Summer Intern 2016/js/tasks.js new file mode 100644 index 00000000..41240cbf --- /dev/null +++ b/Hiring Challenges/HackerEarth/Summer Intern 2016/js/tasks.js @@ -0,0 +1,120 @@ +// JavaScript Document +show(); +showCompleted(); +function getcolor() { + colours = [ + "#F44336", + "#E91E63", + "#9C27B0", + "#673AB7", + "#3F51B5", + "#2196F3", + "#03A9F4", + "#00BCD4", + "#009688", + "#4CAF50", + "#8BC34A", + "#CDDC39", + "#FFEB3B", + "#FFC107", + "#FF9800", + "#FF5722", + "#795548", + ]; + var rand = colours[Math.floor(Math.random() * colours.length)]; + return rand; +} +function gettasks() { + var tasks = new Array(); + var task = localStorage.getItem("pending-tasks"); + if (task !== null) { + tasks = JSON.parse(task); + } + return tasks; +} +function getCompletedTasks() { + var tasks = new Array(); + var task = localStorage.getItem("completed-tasks"); + if (task !== null) { + tasks = JSON.parse(task); + } + return tasks; +} +function add() { + var task = document.getElementById("addtask").value; + var tasks = gettasks(); + tasks.push(task); + localStorage.setItem("pending-tasks", JSON.stringify(tasks)); + //alert(tasks); +} +function removeItem(tasks, task) { + for (var i in tasks) { + if (tasks[i] == task) { + tasks.splice(i, 1); + break; + } + } +} +function addCompletedTasks(data) { + var task = data; + var tasks = gettasks(); + removeItem(tasks, task); + localStorage.setItem("pending-tasks", JSON.stringify(tasks)); + var tasks = getCompletedTasks(); + tasks.push(task); + localStorage.setItem("completed-tasks", JSON.stringify(tasks)); +} +function allowDrop(ev) { + ev.preventDefault(); +} + +function drag(ev) { + ev.target.style.opacity = "1"; + ev.dataTransfer.setData("text", ev.target.textContent); +} + +function drop(ev) { + ev.preventDefault(); + var data = ev.dataTransfer.getData("text"); + data = data.slice(0, -1); + addCompletedTasks(data); + showCompleted(); + show(); +} +function showCompleted() { + var tasks = getCompletedTasks(); + var html = ""; + for (var i = 0; i < tasks.length; i++) { + html += '
' + tasks[i] + "
"; + } + document.getElementById("completedtasks").innerHTML = html; +} +function show() { + var tasks = gettasks(); + var html = ""; + j = 0; + for (var i = 0; i < tasks.length; i++) { + html += + '
' + + tasks[i] + + '
X
'; + j++; + if (j % 2 == 0) { + html += "
"; + } + } + document.getElementById("pendingtasks").innerHTML = html; + var buttons = document.getElementsByClassName("remove"); + for (var i = 0; i < buttons.length; i++) { + buttons[i].addEventListener("click", remove); + } +} +function remove() { + var id = this.getAttribute("id"); + var tasks = gettasks(); + tasks.splice(id, 1); + localStorage.setItem("pending-tasks", JSON.stringify(tasks)); + show(); +} diff --git a/Interviews/Hackerearth/Summer Intern 2016/snapshots/final.jpg b/Hiring Challenges/HackerEarth/Summer Intern 2016/snapshots/final.jpg similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2016/snapshots/final.jpg rename to Hiring Challenges/HackerEarth/Summer Intern 2016/snapshots/final.jpg diff --git a/Interviews/Hackerearth/Summer Intern 2016/snapshots/sample.jpg b/Hiring Challenges/HackerEarth/Summer Intern 2016/snapshots/sample.jpg similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2016/snapshots/sample.jpg rename to Hiring Challenges/HackerEarth/Summer Intern 2016/snapshots/sample.jpg diff --git a/Interviews/Hackerearth/Summer Intern 2017/README.md b/Hiring Challenges/HackerEarth/Summer Intern 2017/README.md old mode 100755 new mode 100644 similarity index 67% rename from Interviews/Hackerearth/Summer Intern 2017/README.md rename to Hiring Challenges/HackerEarth/Summer Intern 2017/README.md index 6b175769..756d6968 --- a/Interviews/Hackerearth/Summer Intern 2017/README.md +++ b/Hiring Challenges/HackerEarth/Summer Intern 2017/README.md @@ -1,28 +1,28 @@ -# File-Explorer -File explorer which runs on the browser. - -# How to run the project - -1. Clone it on your system. -2. Open index.html or Open this [link](https://manishbisht.github.io/File-Explorer/) - -#Problem Statement -##File Explorer -You have to design and create a functional file explorer which runs on the browser. The file structure should reside completely on the browser-end e.g. One should be able to create, edit and delete files on this virtual file system. - -Please follow these guidelines while building the app : - -- Use HTML5's new offline storage features for building the app. -- Your Javascript library usage should be limited to jQuery. -- You are free to use CSS pre-processors for styling. -- You must support two file types- text and images. -- The app must be responsive and function properly on mobile devices. -- All the design and interactions should be according to the images in this zip file. You will also find resources in the "resources" folder in the zip file. - -Note: The objective of this task is to evaluate your core front-end skills and hence, you must not use any Javascript libraries apart from jQuery. This should be a pure front-end application and you should not develop any backend service using frameworks like NodeJs. You have to use only plain CSS and not frameworks like bootstrap, etc. However, you are free to use CSS pre-processors like SASS, Stylus, LESS etc. - -# Screenshots -![](/screenshots/p30.png) -![](/screenshots/p31.png) - - +# File-Explorer + +File explorer which runs on the browser. + +# How to run the project + +1. Clone it on your system. +2. Open index.html or Open this [link](https://manishbisht.github.io/File-Explorer/) + +#Problem Statement +##File Explorer +You have to design and create a functional file explorer which runs on the browser. The file structure should reside completely on the browser-end e.g. One should be able to create, edit and delete files on this virtual file system. + +Please follow these guidelines while building the app : + +- Use HTML5's new offline storage features for building the app. +- Your Javascript library usage should be limited to jQuery. +- You are free to use CSS pre-processors for styling. +- You must support two file types- text and images. +- The app must be responsive and function properly on mobile devices. +- All the design and interactions should be according to the images in this zip file. You will also find resources in the "resources" folder in the zip file. + +Note: The objective of this task is to evaluate your core front-end skills and hence, you must not use any Javascript libraries apart from jQuery. This should be a pure front-end application and you should not develop any backend service using frameworks like NodeJs. You have to use only plain CSS and not frameworks like bootstrap, etc. However, you are free to use CSS pre-processors like SASS, Stylus, LESS etc. + +# Screenshots + +![](/screenshots/p30.png) +![](/screenshots/p31.png) diff --git a/Interviews/Hackerearth/Summer Intern 2017/css/style.css b/Hiring Challenges/HackerEarth/Summer Intern 2017/css/style.css old mode 100755 new mode 100644 similarity index 80% rename from Interviews/Hackerearth/Summer Intern 2017/css/style.css rename to Hiring Challenges/HackerEarth/Summer Intern 2017/css/style.css index 45682b7e..8534f499 --- a/Interviews/Hackerearth/Summer Intern 2017/css/style.css +++ b/Hiring Challenges/HackerEarth/Summer Intern 2017/css/style.css @@ -1,218 +1,225 @@ -/* For mobile phones: */ -body { - margin: 0; - background-color: #F5F5F5; - font-family: 'Roboto'; - overflow: hidden; -} - -h1, h2, h3, h4, h5, h6, p ,hr{ - margin: 0; -} - -.icon-box { - width: 25%; - display: inline-block; - vertical-align: top; -} - -.icon-inner-box { - margin: 10px; -} - -#menu { - width: 100%; - height: 100%; - text-align: center; - position: fixed; - display: none; - border-right: groove #F5F5F5; - z-index: 100; - background-color: white; -} - -#close { - position: fixed; - top: 5px; - right: 5px; -} - -.top { - background-color: white; - font-size: 15px; - padding: 4px; - border-bottom: groove #F5F5F5; - min-height: 46px; -} - -#open { - display: inline-block; - padding-left: 8px; - font-size: 30px; -} - -#open:before { - content: '\2630'; -} - -.app-title { - margin-top: 20px; - font-size: 30px; - color: #d3a522; -} - -.app-description { - color: #9E9E9E; - font-size: 20px; -} - -.root { - font-size: 15px; - color: #2CC2E5; - display: inline-block; -} - -.root-data { - color: #2CC2E5; -} - -.tree { - overflow: auto; -} - -ul.folder { - padding: 2px 2px 2px 5px; - margin: 0; -} - -li.file { - list-style: none; - padding: 2px 2px 2px 10px; -} - -span { - font-size: 15px; -} - -.small-icon { - height: 15px; -} - -.upload-files { - display: inline-block; - float: right; - margin-top: 5px; -} - -.upload { - padding: 6px; - display: inline-block; -} - -.upload:hover { - background-color: #E8EAF6; -} - -.img-responsive { - height: 20px; - width: auto; -} - -.icon { - width: 50px; - padding-top: 10px; -} - -.context-menu { - display: none; - position: absolute; - z-index: 10; - min-width: 96px; - background-color: #FFFFFF; - border: solid 1px #DFDFDF; - box-shadow: 1px 1px 2px #CFCFCF; -} - -.context-menu--active { - display: block; -} - -.context-menu-items { - list-style: none; - margin: 0; - padding: 0; -} - -.context-menu-item { - display: block; -} - -.context-menu-item:last-child { - margin-bottom: 0; -} - -.context-menu-link { - display: block; - padding: 4px 12px; - color: #0066aa; - text-decoration: none; -} - -.context-menu-link:hover { - color: #fff; - background-color: #0066aa; -} - -.desktop-only { - display: none; -} - -.data-name { - overflow: hidden; - max-width: 10ch; - color: #5B5B5B; -} - -.view { - overflow: auto; -} - -/* For desktop having min screen width 768 px*/ -@media only screen and (min-width: 768px) { - #menu { - display: block; - width: 250px; - } - - .top { - padding-left: 250px; - } - - #open { - display: none; - } - - #close { - display: none; - } - - .root { - padding: 13px; - } - - .content { - padding-left: 250px; - } - - .view { - overflow: auto; - } - - .icon-box { - width: 16.66%; - } - - .desktop-only { - display: inline; - } -} +/* For mobile phones: */ +body { + margin: 0; + background-color: #f5f5f5; + font-family: "Roboto"; + overflow: hidden; +} + +h1, +h2, +h3, +h4, +h5, +h6, +p, +hr { + margin: 0; +} + +.icon-box { + width: 25%; + display: inline-block; + vertical-align: top; +} + +.icon-inner-box { + margin: 10px; +} + +#menu { + width: 100%; + height: 100%; + text-align: center; + position: fixed; + display: none; + border-right: groove #f5f5f5; + z-index: 100; + background-color: white; +} + +#close { + position: fixed; + top: 5px; + right: 5px; +} + +.top { + background-color: white; + font-size: 15px; + padding: 4px; + border-bottom: groove #f5f5f5; + min-height: 46px; +} + +#open { + display: inline-block; + padding-left: 8px; + font-size: 30px; +} + +#open:before { + content: "\2630"; +} + +.app-title { + margin-top: 20px; + font-size: 30px; + color: #d3a522; +} + +.app-description { + color: #9e9e9e; + font-size: 20px; +} + +.root { + font-size: 15px; + color: #2cc2e5; + display: inline-block; +} + +.root-data { + color: #2cc2e5; +} + +.tree { + overflow: auto; +} + +ul.folder { + padding: 2px 2px 2px 5px; + margin: 0; +} + +li.file { + list-style: none; + padding: 2px 2px 2px 10px; +} + +span { + font-size: 15px; +} + +.small-icon { + height: 15px; +} + +.upload-files { + display: inline-block; + float: right; + margin-top: 5px; +} + +.upload { + padding: 6px; + display: inline-block; +} + +.upload:hover { + background-color: #e8eaf6; +} + +.img-responsive { + height: 20px; + width: auto; +} + +.icon { + width: 50px; + padding-top: 10px; +} + +.context-menu { + display: none; + position: absolute; + z-index: 10; + min-width: 96px; + background-color: #ffffff; + border: solid 1px #dfdfdf; + box-shadow: 1px 1px 2px #cfcfcf; +} + +.context-menu--active { + display: block; +} + +.context-menu-items { + list-style: none; + margin: 0; + padding: 0; +} + +.context-menu-item { + display: block; +} + +.context-menu-item:last-child { + margin-bottom: 0; +} + +.context-menu-link { + display: block; + padding: 4px 12px; + color: #0066aa; + text-decoration: none; +} + +.context-menu-link:hover { + color: #fff; + background-color: #0066aa; +} + +.desktop-only { + display: none; +} + +.data-name { + overflow: hidden; + max-width: 10ch; + color: #5b5b5b; +} + +.view { + overflow: auto; +} + +/* For desktop having min screen width 768 px*/ +@media only screen and (min-width: 768px) { + #menu { + display: block; + width: 250px; + } + + .top { + padding-left: 250px; + } + + #open { + display: none; + } + + #close { + display: none; + } + + .root { + padding: 13px; + } + + .content { + padding-left: 250px; + } + + .view { + overflow: auto; + } + + .icon-box { + width: 16.66%; + } + + .desktop-only { + display: inline; + } +} diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d.zip b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d.zip old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d.zip rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d.zip diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/File Explorer-01.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/File Explorer-01.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/File Explorer-01.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/File Explorer-01.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-02.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-02.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-02.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-02.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-04.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-04.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-04.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-04.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-05.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-05.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-05.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/New-05.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/With grid-04.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/With grid-04.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/With grid-04.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/With grid-04.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/with grid-02.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/with grid-02.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/with grid-02.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/with grid-02.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/with grid-05.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/with grid-05.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/with grid-05.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Layout/with grid-05.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/Folder.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/Folder.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/Folder.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/Folder.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/Logo.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/Logo.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/Logo.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/Logo.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/doc.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/doc.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/doc.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/doc.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/image.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/image.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/image.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/image.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/upload.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/upload.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/upload.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/downloads/file_explorer37a715d/File Explorer/Resources/upload.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/images/Folder.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/images/Folder.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/images/Folder.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/images/Folder.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/images/doc.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/images/doc.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/images/doc.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/images/doc.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/images/image.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/images/image.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/images/image.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/images/image.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/images/logo.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/images/logo.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/images/logo.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/images/logo.png diff --git a/Interviews/Hackerearth/Summer Intern 2017/images/upload.png b/Hiring Challenges/HackerEarth/Summer Intern 2017/images/upload.png old mode 100755 new mode 100644 similarity index 100% rename from Interviews/Hackerearth/Summer Intern 2017/images/upload.png rename to Hiring Challenges/HackerEarth/Summer Intern 2017/images/upload.png diff --git a/Hiring Challenges/HackerEarth/Summer Intern 2017/index.html b/Hiring Challenges/HackerEarth/Summer Intern 2017/index.html new file mode 100644 index 00000000..ae21575c --- /dev/null +++ b/Hiring Challenges/HackerEarth/Summer Intern 2017/index.html @@ -0,0 +1,41 @@ + + + + + File Explorer by Manish Bisht + + + + + + + +
+ +
+
+
+ Home + +
+
+
+ + Upload Files +
+
+
+
+
+
+ +
+ + + + diff --git a/Hiring Challenges/HackerEarth/Summer Intern 2017/js/jquery.min.js b/Hiring Challenges/HackerEarth/Summer Intern 2017/js/jquery.min.js new file mode 100644 index 00000000..a8249d0d --- /dev/null +++ b/Hiring Challenges/HackerEarth/Summer Intern 2017/js/jquery.min.js @@ -0,0 +1,5095 @@ +/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!(function (a, b) { + "object" == typeof module && "object" == typeof module.exports + ? (module.exports = a.document + ? b(a, !0) + : function (a) { + if (!a.document) throw new Error("jQuery requires a window with a document"); + return b(a); + }) + : b(a); +})("undefined" != typeof window ? window : this, function (a, b) { + var c = [], + d = c.slice, + e = c.concat, + f = c.push, + g = c.indexOf, + h = {}, + i = h.toString, + j = h.hasOwnProperty, + k = {}, + l = "1.11.3", + m = function (a, b) { + return new m.fn.init(a, b); + }, + n = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + o = /^-ms-/, + p = /-([\da-z])/gi, + q = function (a, b) { + return b.toUpperCase(); + }; + (m.fn = m.prototype = + { + jquery: l, + constructor: m, + selector: "", + length: 0, + toArray: function () { + return d.call(this); + }, + get: function (a) { + return null != a ? (0 > a ? this[a + this.length] : this[a]) : d.call(this); + }, + pushStack: function (a) { + var b = m.merge(this.constructor(), a); + return (b.prevObject = this), (b.context = this.context), b; + }, + each: function (a, b) { + return m.each(this, a, b); + }, + map: function (a) { + return this.pushStack( + m.map(this, function (b, c) { + return a.call(b, c, b); + }) + ); + }, + slice: function () { + return this.pushStack(d.apply(this, arguments)); + }, + first: function () { + return this.eq(0); + }, + last: function () { + return this.eq(-1); + }, + eq: function (a) { + var b = this.length, + c = +a + (0 > a ? b : 0); + return this.pushStack(c >= 0 && b > c ? [this[c]] : []); + }, + end: function () { + return this.prevObject || this.constructor(null); + }, + push: f, + sort: c.sort, + splice: c.splice, + }), + (m.extend = m.fn.extend = + function () { + var a, + b, + c, + d, + e, + f, + g = arguments[0] || {}, + h = 1, + i = arguments.length, + j = !1; + for ( + "boolean" == typeof g && ((j = g), (g = arguments[h] || {}), h++), + "object" == typeof g || m.isFunction(g) || (g = {}), + h === i && ((g = this), h--); + i > h; + h++ + ) + if (null != (e = arguments[h])) + for (d in e) + (a = g[d]), + (c = e[d]), + g !== c && + (j && c && (m.isPlainObject(c) || (b = m.isArray(c))) + ? (b + ? ((b = !1), (f = a && m.isArray(a) ? a : [])) + : (f = a && m.isPlainObject(a) ? a : {}), + (g[d] = m.extend(j, f, c))) + : void 0 !== c && (g[d] = c)); + return g; + }), + m.extend({ + expando: "jQuery" + (l + Math.random()).replace(/\D/g, ""), + isReady: !0, + error: function (a) { + throw new Error(a); + }, + noop: function () {}, + isFunction: function (a) { + return "function" === m.type(a); + }, + isArray: + Array.isArray || + function (a) { + return "array" === m.type(a); + }, + isWindow: function (a) { + return null != a && a == a.window; + }, + isNumeric: function (a) { + return !m.isArray(a) && a - parseFloat(a) + 1 >= 0; + }, + isEmptyObject: function (a) { + var b; + for (b in a) return !1; + return !0; + }, + isPlainObject: function (a) { + var b; + if (!a || "object" !== m.type(a) || a.nodeType || m.isWindow(a)) return !1; + try { + if (a.constructor && !j.call(a, "constructor") && !j.call(a.constructor.prototype, "isPrototypeOf")) + return !1; + } catch (c) { + return !1; + } + if (k.ownLast) for (b in a) return j.call(a, b); + for (b in a); + return void 0 === b || j.call(a, b); + }, + type: function (a) { + return null == a + ? a + "" + : "object" == typeof a || "function" == typeof a + ? h[i.call(a)] || "object" + : typeof a; + }, + globalEval: function (b) { + b && + m.trim(b) && + ( + a.execScript || + function (b) { + a.eval.call(a, b); + } + )(b); + }, + camelCase: function (a) { + return a.replace(o, "ms-").replace(p, q); + }, + nodeName: function (a, b) { + return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase(); + }, + each: function (a, b, c) { + var d, + e = 0, + f = a.length, + g = r(a); + if (c) { + if (g) { + for (; f > e; e++) if (((d = b.apply(a[e], c)), d === !1)) break; + } else for (e in a) if (((d = b.apply(a[e], c)), d === !1)) break; + } else if (g) { + for (; f > e; e++) if (((d = b.call(a[e], e, a[e])), d === !1)) break; + } else for (e in a) if (((d = b.call(a[e], e, a[e])), d === !1)) break; + return a; + }, + trim: function (a) { + return null == a ? "" : (a + "").replace(n, ""); + }, + makeArray: function (a, b) { + var c = b || []; + return null != a && (r(Object(a)) ? m.merge(c, "string" == typeof a ? [a] : a) : f.call(c, a)), c; + }, + inArray: function (a, b, c) { + var d; + if (b) { + if (g) return g.call(b, a, c); + for (d = b.length, c = c ? (0 > c ? Math.max(0, d + c) : c) : 0; d > c; c++) + if (c in b && b[c] === a) return c; + } + return -1; + }, + merge: function (a, b) { + var c = +b.length, + d = 0, + e = a.length; + while (c > d) a[e++] = b[d++]; + if (c !== c) while (void 0 !== b[d]) a[e++] = b[d++]; + return (a.length = e), a; + }, + grep: function (a, b, c) { + for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) (d = !b(a[f], f)), d !== h && e.push(a[f]); + return e; + }, + map: function (a, b, c) { + var d, + f = 0, + g = a.length, + h = r(a), + i = []; + if (h) for (; g > f; f++) (d = b(a[f], f, c)), null != d && i.push(d); + else for (f in a) (d = b(a[f], f, c)), null != d && i.push(d); + return e.apply([], i); + }, + guid: 1, + proxy: function (a, b) { + var c, e, f; + return ( + "string" == typeof b && ((f = a[b]), (b = a), (a = f)), + m.isFunction(a) + ? ((c = d.call(arguments, 2)), + (e = function () { + return a.apply(b || this, c.concat(d.call(arguments))); + }), + (e.guid = a.guid = a.guid || m.guid++), + e) + : void 0 + ); + }, + now: function () { + return +new Date(); + }, + support: k, + }), + m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (a, b) { + h["[object " + b + "]"] = b.toLowerCase(); + }); + function r(a) { + var b = "length" in a && a.length, + c = m.type(a); + return "function" === c || m.isWindow(a) + ? !1 + : 1 === a.nodeType && b + ? !0 + : "array" === c || 0 === b || ("number" == typeof b && b > 0 && b - 1 in a); + } + var s = (function (a) { + var b, + c, + d, + e, + f, + g, + h, + i, + j, + k, + l, + m, + n, + o, + p, + q, + r, + s, + t, + u = "sizzle" + 1 * new Date(), + v = a.document, + w = 0, + x = 0, + y = ha(), + z = ha(), + A = ha(), + B = function (a, b) { + return a === b && (l = !0), 0; + }, + C = 1 << 31, + D = {}.hasOwnProperty, + E = [], + F = E.pop, + G = E.push, + H = E.push, + I = E.slice, + J = function (a, b) { + for (var c = 0, d = a.length; d > c; c++) if (a[c] === b) return c; + return -1; + }, + K = + "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + L = "[\\x20\\t\\r\\n\\f]", + M = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + N = M.replace("w", "w#"), + O = + "\\[" + + L + + "*(" + + M + + ")(?:" + + L + + "*([*^$|!~]?=)" + + L + + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + + N + + "))|)" + + L + + "*\\]", + P = + ":(" + + M + + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + + O + + ")*)|.*)\\)|)", + Q = new RegExp(L + "+", "g"), + R = new RegExp("^" + L + "+|((?:^|[^\\\\])(?:\\\\.)*)" + L + "+$", "g"), + S = new RegExp("^" + L + "*," + L + "*"), + T = new RegExp("^" + L + "*([>+~]|" + L + ")" + L + "*"), + U = new RegExp("=" + L + "*([^\\]'\"]*?)" + L + "*\\]", "g"), + V = new RegExp(P), + W = new RegExp("^" + N + "$"), + X = { + ID: new RegExp("^#(" + M + ")"), + CLASS: new RegExp("^\\.(" + M + ")"), + TAG: new RegExp("^(" + M.replace("w", "w*") + ")"), + ATTR: new RegExp("^" + O), + PSEUDO: new RegExp("^" + P), + CHILD: new RegExp( + "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + L + + "*(even|odd|(([+-]|)(\\d*)n|)" + + L + + "*(?:([+-]|)" + + L + + "*(\\d+)|))" + + L + + "*\\)|)", + "i" + ), + bool: new RegExp("^(?:" + K + ")$", "i"), + needsContext: new RegExp( + "^" + + L + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + L + + "*((?:-\\d)?\\d*)" + + L + + "*\\)|)(?=[^-]|$)", + "i" + ), + }, + Y = /^(?:input|select|textarea|button)$/i, + Z = /^h\d$/i, + $ = /^[^{]+\{\s*\[native \w/, + _ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + aa = /[+~]/, + ba = /'|\\/g, + ca = new RegExp("\\\\([\\da-f]{1,6}" + L + "?|(" + L + ")|.)", "ig"), + da = function (a, b, c) { + var d = "0x" + b - 65536; + return d !== d || c + ? b + : 0 > d + ? String.fromCharCode(d + 65536) + : String.fromCharCode((d >> 10) | 55296, (1023 & d) | 56320); + }, + ea = function () { + m(); + }; + try { + H.apply((E = I.call(v.childNodes)), v.childNodes), E[v.childNodes.length].nodeType; + } catch (fa) { + H = { + apply: E.length + ? function (a, b) { + G.apply(a, I.call(b)); + } + : function (a, b) { + var c = a.length, + d = 0; + while ((a[c++] = b[d++])); + a.length = c - 1; + }, + }; + } + function ga(a, b, d, e) { + var f, h, j, k, l, o, r, s, w, x; + if ( + ((b ? b.ownerDocument || b : v) !== n && m(b), + (b = b || n), + (d = d || []), + (k = b.nodeType), + "string" != typeof a || !a || (1 !== k && 9 !== k && 11 !== k)) + ) + return d; + if (!e && p) { + if (11 !== k && (f = _.exec(a))) + if ((j = f[1])) { + if (9 === k) { + if (((h = b.getElementById(j)), !h || !h.parentNode)) return d; + if (h.id === j) return d.push(h), d; + } else if (b.ownerDocument && (h = b.ownerDocument.getElementById(j)) && t(b, h) && h.id === j) + return d.push(h), d; + } else { + if (f[2]) return H.apply(d, b.getElementsByTagName(a)), d; + if ((j = f[3]) && c.getElementsByClassName) return H.apply(d, b.getElementsByClassName(j)), d; + } + if (c.qsa && (!q || !q.test(a))) { + if (((s = r = u), (w = b), (x = 1 !== k && a), 1 === k && "object" !== b.nodeName.toLowerCase())) { + (o = g(a)), + (r = b.getAttribute("id")) ? (s = r.replace(ba, "\\$&")) : b.setAttribute("id", s), + (s = "[id='" + s + "'] "), + (l = o.length); + while (l--) o[l] = s + ra(o[l]); + (w = (aa.test(a) && pa(b.parentNode)) || b), (x = o.join(",")); + } + if (x) + try { + return H.apply(d, w.querySelectorAll(x)), d; + } catch (y) { + } finally { + r || b.removeAttribute("id"); + } + } + } + return i(a.replace(R, "$1"), b, d, e); + } + function ha() { + var a = []; + function b(c, e) { + return a.push(c + " ") > d.cacheLength && delete b[a.shift()], (b[c + " "] = e); + } + return b; + } + function ia(a) { + return (a[u] = !0), a; + } + function ja(a) { + var b = n.createElement("div"); + try { + return !!a(b); + } catch (c) { + return !1; + } finally { + b.parentNode && b.parentNode.removeChild(b), (b = null); + } + } + function ka(a, b) { + var c = a.split("|"), + e = a.length; + while (e--) d.attrHandle[c[e]] = b; + } + function la(a, b) { + var c = b && a, + d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || C) - (~a.sourceIndex || C); + if (d) return d; + if (c) while ((c = c.nextSibling)) if (c === b) return -1; + return a ? 1 : -1; + } + function ma(a) { + return function (b) { + var c = b.nodeName.toLowerCase(); + return "input" === c && b.type === a; + }; + } + function na(a) { + return function (b) { + var c = b.nodeName.toLowerCase(); + return ("input" === c || "button" === c) && b.type === a; + }; + } + function oa(a) { + return ia(function (b) { + return ( + (b = +b), + ia(function (c, d) { + var e, + f = a([], c.length, b), + g = f.length; + while (g--) c[(e = f[g])] && (c[e] = !(d[e] = c[e])); + }) + ); + }); + } + function pa(a) { + return a && "undefined" != typeof a.getElementsByTagName && a; + } + (c = ga.support = {}), + (f = ga.isXML = + function (a) { + var b = a && (a.ownerDocument || a).documentElement; + return b ? "HTML" !== b.nodeName : !1; + }), + (m = ga.setDocument = + function (a) { + var b, + e, + g = a ? a.ownerDocument || a : v; + return g !== n && 9 === g.nodeType && g.documentElement + ? ((n = g), + (o = g.documentElement), + (e = g.defaultView), + e && + e !== e.top && + (e.addEventListener + ? e.addEventListener("unload", ea, !1) + : e.attachEvent && e.attachEvent("onunload", ea)), + (p = !f(g)), + (c.attributes = ja(function (a) { + return (a.className = "i"), !a.getAttribute("className"); + })), + (c.getElementsByTagName = ja(function (a) { + return a.appendChild(g.createComment("")), !a.getElementsByTagName("*").length; + })), + (c.getElementsByClassName = $.test(g.getElementsByClassName)), + (c.getById = ja(function (a) { + return (o.appendChild(a).id = u), !g.getElementsByName || !g.getElementsByName(u).length; + })), + c.getById + ? ((d.find.ID = function (a, b) { + if ("undefined" != typeof b.getElementById && p) { + var c = b.getElementById(a); + return c && c.parentNode ? [c] : []; + } + }), + (d.filter.ID = function (a) { + var b = a.replace(ca, da); + return function (a) { + return a.getAttribute("id") === b; + }; + })) + : (delete d.find.ID, + (d.filter.ID = function (a) { + var b = a.replace(ca, da); + return function (a) { + var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id"); + return c && c.value === b; + }; + })), + (d.find.TAG = c.getElementsByTagName + ? function (a, b) { + return "undefined" != typeof b.getElementsByTagName + ? b.getElementsByTagName(a) + : c.qsa + ? b.querySelectorAll(a) + : void 0; + } + : function (a, b) { + var c, + d = [], + e = 0, + f = b.getElementsByTagName(a); + if ("*" === a) { + while ((c = f[e++])) 1 === c.nodeType && d.push(c); + return d; + } + return f; + }), + (d.find.CLASS = + c.getElementsByClassName && + function (a, b) { + return p ? b.getElementsByClassName(a) : void 0; + }), + (r = []), + (q = []), + (c.qsa = $.test(g.querySelectorAll)) && + (ja(function (a) { + (o.appendChild(a).innerHTML = + ""), + a.querySelectorAll("[msallowcapture^='']").length && + q.push("[*^$]=" + L + "*(?:''|\"\")"), + a.querySelectorAll("[selected]").length || + q.push("\\[" + L + "*(?:value|" + K + ")"), + a.querySelectorAll("[id~=" + u + "-]").length || q.push("~="), + a.querySelectorAll(":checked").length || q.push(":checked"), + a.querySelectorAll("a#" + u + "+*").length || q.push(".#.+[+~]"); + }), + ja(function (a) { + var b = g.createElement("input"); + b.setAttribute("type", "hidden"), + a.appendChild(b).setAttribute("name", "D"), + a.querySelectorAll("[name=d]").length && q.push("name" + L + "*[*^$|!~]?="), + a.querySelectorAll(":enabled").length || q.push(":enabled", ":disabled"), + a.querySelectorAll("*,:x"), + q.push(",.*:"); + })), + (c.matchesSelector = $.test( + (s = + o.matches || + o.webkitMatchesSelector || + o.mozMatchesSelector || + o.oMatchesSelector || + o.msMatchesSelector) + )) && + ja(function (a) { + (c.disconnectedMatch = s.call(a, "div")), s.call(a, "[s!='']:x"), r.push("!=", P); + }), + (q = q.length && new RegExp(q.join("|"))), + (r = r.length && new RegExp(r.join("|"))), + (b = $.test(o.compareDocumentPosition)), + (t = + b || $.test(o.contains) + ? function (a, b) { + var c = 9 === a.nodeType ? a.documentElement : a, + d = b && b.parentNode; + return ( + a === d || + !( + !d || + 1 !== d.nodeType || + !(c.contains + ? c.contains(d) + : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)) + ) + ); + } + : function (a, b) { + if (b) while ((b = b.parentNode)) if (b === a) return !0; + return !1; + }), + (B = b + ? function (a, b) { + if (a === b) return (l = !0), 0; + var d = !a.compareDocumentPosition - !b.compareDocumentPosition; + return d + ? d + : ((d = + (a.ownerDocument || a) === (b.ownerDocument || b) + ? a.compareDocumentPosition(b) + : 1), + 1 & d || (!c.sortDetached && b.compareDocumentPosition(a) === d) + ? a === g || (a.ownerDocument === v && t(v, a)) + ? -1 + : b === g || (b.ownerDocument === v && t(v, b)) + ? 1 + : k + ? J(k, a) - J(k, b) + : 0 + : 4 & d + ? -1 + : 1); + } + : function (a, b) { + if (a === b) return (l = !0), 0; + var c, + d = 0, + e = a.parentNode, + f = b.parentNode, + h = [a], + i = [b]; + if (!e || !f) + return a === g ? -1 : b === g ? 1 : e ? -1 : f ? 1 : k ? J(k, a) - J(k, b) : 0; + if (e === f) return la(a, b); + c = a; + while ((c = c.parentNode)) h.unshift(c); + c = b; + while ((c = c.parentNode)) i.unshift(c); + while (h[d] === i[d]) d++; + return d ? la(h[d], i[d]) : h[d] === v ? -1 : i[d] === v ? 1 : 0; + }), + g) + : n; + }), + (ga.matches = function (a, b) { + return ga(a, null, null, b); + }), + (ga.matchesSelector = function (a, b) { + if ( + ((a.ownerDocument || a) !== n && m(a), + (b = b.replace(U, "='$1']")), + !(!c.matchesSelector || !p || (r && r.test(b)) || (q && q.test(b)))) + ) + try { + var d = s.call(a, b); + if (d || c.disconnectedMatch || (a.document && 11 !== a.document.nodeType)) return d; + } catch (e) {} + return ga(b, n, null, [a]).length > 0; + }), + (ga.contains = function (a, b) { + return (a.ownerDocument || a) !== n && m(a), t(a, b); + }), + (ga.attr = function (a, b) { + (a.ownerDocument || a) !== n && m(a); + var e = d.attrHandle[b.toLowerCase()], + f = e && D.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p) : void 0; + return void 0 !== f + ? f + : c.attributes || !p + ? a.getAttribute(b) + : (f = a.getAttributeNode(b)) && f.specified + ? f.value + : null; + }), + (ga.error = function (a) { + throw new Error("Syntax error, unrecognized expression: " + a); + }), + (ga.uniqueSort = function (a) { + var b, + d = [], + e = 0, + f = 0; + if (((l = !c.detectDuplicates), (k = !c.sortStable && a.slice(0)), a.sort(B), l)) { + while ((b = a[f++])) b === a[f] && (e = d.push(f)); + while (e--) a.splice(d[e], 1); + } + return (k = null), a; + }), + (e = ga.getText = + function (a) { + var b, + c = "", + d = 0, + f = a.nodeType; + if (f) { + if (1 === f || 9 === f || 11 === f) { + if ("string" == typeof a.textContent) return a.textContent; + for (a = a.firstChild; a; a = a.nextSibling) c += e(a); + } else if (3 === f || 4 === f) return a.nodeValue; + } else while ((b = a[d++])) c += e(b); + return c; + }), + (d = ga.selectors = + { + cacheLength: 50, + createPseudo: ia, + match: X, + attrHandle: {}, + find: {}, + relative: { + ">": { dir: "parentNode", first: !0 }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: !0 }, + "~": { dir: "previousSibling" }, + }, + preFilter: { + ATTR: function (a) { + return ( + (a[1] = a[1].replace(ca, da)), + (a[3] = (a[3] || a[4] || a[5] || "").replace(ca, da)), + "~=" === a[2] && (a[3] = " " + a[3] + " "), + a.slice(0, 4) + ); + }, + CHILD: function (a) { + return ( + (a[1] = a[1].toLowerCase()), + "nth" === a[1].slice(0, 3) + ? (a[3] || ga.error(a[0]), + (a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3]))), + (a[5] = +(a[7] + a[8] || "odd" === a[3]))) + : a[3] && ga.error(a[0]), + a + ); + }, + PSEUDO: function (a) { + var b, + c = !a[6] && a[2]; + return X.CHILD.test(a[0]) + ? null + : (a[3] + ? (a[2] = a[4] || a[5] || "") + : c && + V.test(c) && + (b = g(c, !0)) && + (b = c.indexOf(")", c.length - b) - c.length) && + ((a[0] = a[0].slice(0, b)), (a[2] = c.slice(0, b))), + a.slice(0, 3)); + }, + }, + filter: { + TAG: function (a) { + var b = a.replace(ca, da).toLowerCase(); + return "*" === a + ? function () { + return !0; + } + : function (a) { + return a.nodeName && a.nodeName.toLowerCase() === b; + }; + }, + CLASS: function (a) { + var b = y[a + " "]; + return ( + b || + ((b = new RegExp("(^|" + L + ")" + a + "(" + L + "|$)")) && + y(a, function (a) { + return b.test( + ("string" == typeof a.className && a.className) || + ("undefined" != typeof a.getAttribute && a.getAttribute("class")) || + "" + ); + })) + ); + }, + ATTR: function (a, b, c) { + return function (d) { + var e = ga.attr(d, a); + return null == e + ? "!=" === b + : b + ? ((e += ""), + "=" === b + ? e === c + : "!=" === b + ? e !== c + : "^=" === b + ? c && 0 === e.indexOf(c) + : "*=" === b + ? c && e.indexOf(c) > -1 + : "$=" === b + ? c && e.slice(-c.length) === c + : "~=" === b + ? (" " + e.replace(Q, " ") + " ").indexOf(c) > -1 + : "|=" === b + ? e === c || e.slice(0, c.length + 1) === c + "-" + : !1) + : !0; + }; + }, + CHILD: function (a, b, c, d, e) { + var f = "nth" !== a.slice(0, 3), + g = "last" !== a.slice(-4), + h = "of-type" === b; + return 1 === d && 0 === e + ? function (a) { + return !!a.parentNode; + } + : function (b, c, i) { + var j, + k, + l, + m, + n, + o, + p = f !== g ? "nextSibling" : "previousSibling", + q = b.parentNode, + r = h && b.nodeName.toLowerCase(), + s = !i && !h; + if (q) { + if (f) { + while (p) { + l = b; + while ((l = l[p])) + if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) + return !1; + o = p = "only" === a && !o && "nextSibling"; + } + return !0; + } + if (((o = [g ? q.firstChild : q.lastChild]), g && s)) { + (k = q[u] || (q[u] = {})), + (j = k[a] || []), + (n = j[0] === w && j[1]), + (m = j[0] === w && j[2]), + (l = n && q.childNodes[n]); + while ((l = (++n && l && l[p]) || (m = n = 0) || o.pop())) + if (1 === l.nodeType && ++m && l === b) { + k[a] = [w, n, m]; + break; + } + } else if (s && (j = (b[u] || (b[u] = {}))[a]) && j[0] === w) m = j[1]; + else + while ((l = (++n && l && l[p]) || (m = n = 0) || o.pop())) + if ( + (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && + ++m && + (s && ((l[u] || (l[u] = {}))[a] = [w, m]), l === b) + ) + break; + return (m -= e), m === d || (m % d === 0 && m / d >= 0); + } + }; + }, + PSEUDO: function (a, b) { + var c, + e = + d.pseudos[a] || + d.setFilters[a.toLowerCase()] || + ga.error("unsupported pseudo: " + a); + return e[u] + ? e(b) + : e.length > 1 + ? ((c = [a, a, "", b]), + d.setFilters.hasOwnProperty(a.toLowerCase()) + ? ia(function (a, c) { + var d, + f = e(a, b), + g = f.length; + while (g--) (d = J(a, f[g])), (a[d] = !(c[d] = f[g])); + }) + : function (a) { + return e(a, 0, c); + }) + : e; + }, + }, + pseudos: { + not: ia(function (a) { + var b = [], + c = [], + d = h(a.replace(R, "$1")); + return d[u] + ? ia(function (a, b, c, e) { + var f, + g = d(a, null, e, []), + h = a.length; + while (h--) (f = g[h]) && (a[h] = !(b[h] = f)); + }) + : function (a, e, f) { + return (b[0] = a), d(b, null, f, c), (b[0] = null), !c.pop(); + }; + }), + has: ia(function (a) { + return function (b) { + return ga(a, b).length > 0; + }; + }), + contains: ia(function (a) { + return ( + (a = a.replace(ca, da)), + function (b) { + return (b.textContent || b.innerText || e(b)).indexOf(a) > -1; + } + ); + }), + lang: ia(function (a) { + return ( + W.test(a || "") || ga.error("unsupported lang: " + a), + (a = a.replace(ca, da).toLowerCase()), + function (b) { + var c; + do + if ((c = p ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang"))) + return (c = c.toLowerCase()), c === a || 0 === c.indexOf(a + "-"); + while ((b = b.parentNode) && 1 === b.nodeType); + return !1; + } + ); + }), + target: function (b) { + var c = a.location && a.location.hash; + return c && c.slice(1) === b.id; + }, + root: function (a) { + return a === o; + }, + focus: function (a) { + return ( + a === n.activeElement && + (!n.hasFocus || n.hasFocus()) && + !!(a.type || a.href || ~a.tabIndex) + ); + }, + enabled: function (a) { + return a.disabled === !1; + }, + disabled: function (a) { + return a.disabled === !0; + }, + checked: function (a) { + var b = a.nodeName.toLowerCase(); + return ("input" === b && !!a.checked) || ("option" === b && !!a.selected); + }, + selected: function (a) { + return a.parentNode && a.parentNode.selectedIndex, a.selected === !0; + }, + empty: function (a) { + for (a = a.firstChild; a; a = a.nextSibling) if (a.nodeType < 6) return !1; + return !0; + }, + parent: function (a) { + return !d.pseudos.empty(a); + }, + header: function (a) { + return Z.test(a.nodeName); + }, + input: function (a) { + return Y.test(a.nodeName); + }, + button: function (a) { + var b = a.nodeName.toLowerCase(); + return ("input" === b && "button" === a.type) || "button" === b; + }, + text: function (a) { + var b; + return ( + "input" === a.nodeName.toLowerCase() && + "text" === a.type && + (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase()) + ); + }, + first: oa(function () { + return [0]; + }), + last: oa(function (a, b) { + return [b - 1]; + }), + eq: oa(function (a, b, c) { + return [0 > c ? c + b : c]; + }), + even: oa(function (a, b) { + for (var c = 0; b > c; c += 2) a.push(c); + return a; + }), + odd: oa(function (a, b) { + for (var c = 1; b > c; c += 2) a.push(c); + return a; + }), + lt: oa(function (a, b, c) { + for (var d = 0 > c ? c + b : c; --d >= 0; ) a.push(d); + return a; + }), + gt: oa(function (a, b, c) { + for (var d = 0 > c ? c + b : c; ++d < b; ) a.push(d); + return a; + }), + }, + }), + (d.pseudos.nth = d.pseudos.eq); + for (b in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) d.pseudos[b] = ma(b); + for (b in { submit: !0, reset: !0 }) d.pseudos[b] = na(b); + function qa() {} + (qa.prototype = d.filters = d.pseudos), + (d.setFilters = new qa()), + (g = ga.tokenize = + function (a, b) { + var c, + e, + f, + g, + h, + i, + j, + k = z[a + " "]; + if (k) return b ? 0 : k.slice(0); + (h = a), (i = []), (j = d.preFilter); + while (h) { + (!c || (e = S.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push((f = []))), + (c = !1), + (e = T.exec(h)) && + ((c = e.shift()), + f.push({ value: c, type: e[0].replace(R, " ") }), + (h = h.slice(c.length))); + for (g in d.filter) + !(e = X[g].exec(h)) || + (j[g] && !(e = j[g](e))) || + ((c = e.shift()), f.push({ value: c, type: g, matches: e }), (h = h.slice(c.length))); + if (!c) break; + } + return b ? h.length : h ? ga.error(a) : z(a, i).slice(0); + }); + function ra(a) { + for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value; + return d; + } + function sa(a, b, c) { + var d = b.dir, + e = c && "parentNode" === d, + f = x++; + return b.first + ? function (b, c, f) { + while ((b = b[d])) if (1 === b.nodeType || e) return a(b, c, f); + } + : function (b, c, g) { + var h, + i, + j = [w, f]; + if (g) { + while ((b = b[d])) if ((1 === b.nodeType || e) && a(b, c, g)) return !0; + } else + while ((b = b[d])) + if (1 === b.nodeType || e) { + if (((i = b[u] || (b[u] = {})), (h = i[d]) && h[0] === w && h[1] === f)) + return (j[2] = h[2]); + if (((i[d] = j), (j[2] = a(b, c, g)))) return !0; + } + }; + } + function ta(a) { + return a.length > 1 + ? function (b, c, d) { + var e = a.length; + while (e--) if (!a[e](b, c, d)) return !1; + return !0; + } + : a[0]; + } + function ua(a, b, c) { + for (var d = 0, e = b.length; e > d; d++) ga(a, b[d], c); + return c; + } + function va(a, b, c, d, e) { + for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++) + (f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h)); + return g; + } + function wa(a, b, c, d, e, f) { + return ( + d && !d[u] && (d = wa(d)), + e && !e[u] && (e = wa(e, f)), + ia(function (f, g, h, i) { + var j, + k, + l, + m = [], + n = [], + o = g.length, + p = f || ua(b || "*", h.nodeType ? [h] : h, []), + q = !a || (!f && b) ? p : va(p, m, a, h, i), + r = c ? (e || (f ? a : o || d) ? [] : g) : q; + if ((c && c(q, r, h, i), d)) { + (j = va(r, n)), d(j, [], h, i), (k = j.length); + while (k--) (l = j[k]) && (r[n[k]] = !(q[n[k]] = l)); + } + if (f) { + if (e || a) { + if (e) { + (j = []), (k = r.length); + while (k--) (l = r[k]) && j.push((q[k] = l)); + e(null, (r = []), j, i); + } + k = r.length; + while (k--) (l = r[k]) && (j = e ? J(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l)); + } + } else (r = va(r === g ? r.splice(o, r.length) : r)), e ? e(null, g, r, i) : H.apply(g, r); + }) + ); + } + function xa(a) { + for ( + var b, + c, + e, + f = a.length, + g = d.relative[a[0].type], + h = g || d.relative[" "], + i = g ? 1 : 0, + k = sa( + function (a) { + return a === b; + }, + h, + !0 + ), + l = sa( + function (a) { + return J(b, a) > -1; + }, + h, + !0 + ), + m = [ + function (a, c, d) { + var e = (!g && (d || c !== j)) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d)); + return (b = null), e; + }, + ]; + f > i; + i++ + ) + if ((c = d.relative[a[i].type])) m = [sa(ta(m), c)]; + else { + if (((c = d.filter[a[i].type].apply(null, a[i].matches)), c[u])) { + for (e = ++i; f > e; e++) if (d.relative[a[e].type]) break; + return wa( + i > 1 && ta(m), + i > 1 && + ra(a.slice(0, i - 1).concat({ value: " " === a[i - 2].type ? "*" : "" })).replace( + R, + "$1" + ), + c, + e > i && xa(a.slice(i, e)), + f > e && xa((a = a.slice(e))), + f > e && ra(a) + ); + } + m.push(c); + } + return ta(m); + } + function ya(a, b) { + var c = b.length > 0, + e = a.length > 0, + f = function (f, g, h, i, k) { + var l, + m, + o, + p = 0, + q = "0", + r = f && [], + s = [], + t = j, + u = f || (e && d.find.TAG("*", k)), + v = (w += null == t ? 1 : Math.random() || 0.1), + x = u.length; + for (k && (j = g !== n && g); q !== x && null != (l = u[q]); q++) { + if (e && l) { + m = 0; + while ((o = a[m++])) + if (o(l, g, h)) { + i.push(l); + break; + } + k && (w = v); + } + c && ((l = !o && l) && p--, f && r.push(l)); + } + if (((p += q), c && q !== p)) { + m = 0; + while ((o = b[m++])) o(r, s, g, h); + if (f) { + if (p > 0) while (q--) r[q] || s[q] || (s[q] = F.call(i)); + s = va(s); + } + H.apply(i, s), k && !f && s.length > 0 && p + b.length > 1 && ga.uniqueSort(i); + } + return k && ((w = v), (j = t)), r; + }; + return c ? ia(f) : f; + } + return ( + (h = ga.compile = + function (a, b) { + var c, + d = [], + e = [], + f = A[a + " "]; + if (!f) { + b || (b = g(a)), (c = b.length); + while (c--) (f = xa(b[c])), f[u] ? d.push(f) : e.push(f); + (f = A(a, ya(e, d))), (f.selector = a); + } + return f; + }), + (i = ga.select = + function (a, b, e, f) { + var i, + j, + k, + l, + m, + n = "function" == typeof a && a, + o = !f && g((a = n.selector || a)); + if (((e = e || []), 1 === o.length)) { + if ( + ((j = o[0] = o[0].slice(0)), + j.length > 2 && + "ID" === (k = j[0]).type && + c.getById && + 9 === b.nodeType && + p && + d.relative[j[1].type]) + ) { + if (((b = (d.find.ID(k.matches[0].replace(ca, da), b) || [])[0]), !b)) return e; + n && (b = b.parentNode), (a = a.slice(j.shift().value.length)); + } + i = X.needsContext.test(a) ? 0 : j.length; + while (i--) { + if (((k = j[i]), d.relative[(l = k.type)])) break; + if ( + (m = d.find[l]) && + (f = m(k.matches[0].replace(ca, da), (aa.test(j[0].type) && pa(b.parentNode)) || b)) + ) { + if ((j.splice(i, 1), (a = f.length && ra(j)), !a)) return H.apply(e, f), e; + break; + } + } + } + return (n || h(a, o))(f, b, !p, e, (aa.test(a) && pa(b.parentNode)) || b), e; + }), + (c.sortStable = u.split("").sort(B).join("") === u), + (c.detectDuplicates = !!l), + m(), + (c.sortDetached = ja(function (a) { + return 1 & a.compareDocumentPosition(n.createElement("div")); + })), + ja(function (a) { + return (a.innerHTML = ""), "#" === a.firstChild.getAttribute("href"); + }) || + ka("type|href|height|width", function (a, b, c) { + return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2); + }), + (c.attributes && + ja(function (a) { + return ( + (a.innerHTML = ""), + a.firstChild.setAttribute("value", ""), + "" === a.firstChild.getAttribute("value") + ); + })) || + ka("value", function (a, b, c) { + return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue; + }), + ja(function (a) { + return null == a.getAttribute("disabled"); + }) || + ka(K, function (a, b, c) { + var d; + return c + ? void 0 + : a[b] === !0 + ? b.toLowerCase() + : (d = a.getAttributeNode(b)) && d.specified + ? d.value + : null; + }), + ga + ); + })(a); + (m.find = s), + (m.expr = s.selectors), + (m.expr[":"] = m.expr.pseudos), + (m.unique = s.uniqueSort), + (m.text = s.getText), + (m.isXMLDoc = s.isXML), + (m.contains = s.contains); + var t = m.expr.match.needsContext, + u = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + v = /^.[^:#\[\.,]*$/; + function w(a, b, c) { + if (m.isFunction(b)) + return m.grep(a, function (a, d) { + return !!b.call(a, d, a) !== c; + }); + if (b.nodeType) + return m.grep(a, function (a) { + return (a === b) !== c; + }); + if ("string" == typeof b) { + if (v.test(b)) return m.filter(b, a, c); + b = m.filter(b, a); + } + return m.grep(a, function (a) { + return m.inArray(a, b) >= 0 !== c; + }); + } + (m.filter = function (a, b, c) { + var d = b[0]; + return ( + c && (a = ":not(" + a + ")"), + 1 === b.length && 1 === d.nodeType + ? m.find.matchesSelector(d, a) + ? [d] + : [] + : m.find.matches( + a, + m.grep(b, function (a) { + return 1 === a.nodeType; + }) + ) + ); + }), + m.fn.extend({ + find: function (a) { + var b, + c = [], + d = this, + e = d.length; + if ("string" != typeof a) + return this.pushStack( + m(a).filter(function () { + for (b = 0; e > b; b++) if (m.contains(d[b], this)) return !0; + }) + ); + for (b = 0; e > b; b++) m.find(a, d[b], c); + return ( + (c = this.pushStack(e > 1 ? m.unique(c) : c)), + (c.selector = this.selector ? this.selector + " " + a : a), + c + ); + }, + filter: function (a) { + return this.pushStack(w(this, a || [], !1)); + }, + not: function (a) { + return this.pushStack(w(this, a || [], !0)); + }, + is: function (a) { + return !!w(this, "string" == typeof a && t.test(a) ? m(a) : a || [], !1).length; + }, + }); + var x, + y = a.document, + z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + A = (m.fn.init = function (a, b) { + var c, d; + if (!a) return this; + if ("string" == typeof a) { + if ( + ((c = + "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && a.length >= 3 + ? [null, a, null] + : z.exec(a)), + !c || (!c[1] && b)) + ) + return !b || b.jquery ? (b || x).find(a) : this.constructor(b).find(a); + if (c[1]) { + if ( + ((b = b instanceof m ? b[0] : b), + m.merge(this, m.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : y, !0)), + u.test(c[1]) && m.isPlainObject(b)) + ) + for (c in b) m.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]); + return this; + } + if (((d = y.getElementById(c[2])), d && d.parentNode)) { + if (d.id !== c[2]) return x.find(a); + (this.length = 1), (this[0] = d); + } + return (this.context = y), (this.selector = a), this; + } + return a.nodeType + ? ((this.context = this[0] = a), (this.length = 1), this) + : m.isFunction(a) + ? "undefined" != typeof x.ready + ? x.ready(a) + : a(m) + : (void 0 !== a.selector && ((this.selector = a.selector), (this.context = a.context)), + m.makeArray(a, this)); + }); + (A.prototype = m.fn), (x = m(y)); + var B = /^(?:parents|prev(?:Until|All))/, + C = { children: !0, contents: !0, next: !0, prev: !0 }; + m.extend({ + dir: function (a, b, c) { + var d = [], + e = a[b]; + while (e && 9 !== e.nodeType && (void 0 === c || 1 !== e.nodeType || !m(e).is(c))) + 1 === e.nodeType && d.push(e), (e = e[b]); + return d; + }, + sibling: function (a, b) { + for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a); + return c; + }, + }), + m.fn.extend({ + has: function (a) { + var b, + c = m(a, this), + d = c.length; + return this.filter(function () { + for (b = 0; d > b; b++) if (m.contains(this, c[b])) return !0; + }); + }, + closest: function (a, b) { + for ( + var c, + d = 0, + e = this.length, + f = [], + g = t.test(a) || "string" != typeof a ? m(a, b || this.context) : 0; + e > d; + d++ + ) + for (c = this[d]; c && c !== b; c = c.parentNode) + if ( + c.nodeType < 11 && + (g ? g.index(c) > -1 : 1 === c.nodeType && m.find.matchesSelector(c, a)) + ) { + f.push(c); + break; + } + return this.pushStack(f.length > 1 ? m.unique(f) : f); + }, + index: function (a) { + return a + ? "string" == typeof a + ? m.inArray(this[0], m(a)) + : m.inArray(a.jquery ? a[0] : a, this) + : this[0] && this[0].parentNode + ? this.first().prevAll().length + : -1; + }, + add: function (a, b) { + return this.pushStack(m.unique(m.merge(this.get(), m(a, b)))); + }, + addBack: function (a) { + return this.add(null == a ? this.prevObject : this.prevObject.filter(a)); + }, + }); + function D(a, b) { + do a = a[b]; + while (a && 1 !== a.nodeType); + return a; + } + m.each( + { + parent: function (a) { + var b = a.parentNode; + return b && 11 !== b.nodeType ? b : null; + }, + parents: function (a) { + return m.dir(a, "parentNode"); + }, + parentsUntil: function (a, b, c) { + return m.dir(a, "parentNode", c); + }, + next: function (a) { + return D(a, "nextSibling"); + }, + prev: function (a) { + return D(a, "previousSibling"); + }, + nextAll: function (a) { + return m.dir(a, "nextSibling"); + }, + prevAll: function (a) { + return m.dir(a, "previousSibling"); + }, + nextUntil: function (a, b, c) { + return m.dir(a, "nextSibling", c); + }, + prevUntil: function (a, b, c) { + return m.dir(a, "previousSibling", c); + }, + siblings: function (a) { + return m.sibling((a.parentNode || {}).firstChild, a); + }, + children: function (a) { + return m.sibling(a.firstChild); + }, + contents: function (a) { + return m.nodeName(a, "iframe") + ? a.contentDocument || a.contentWindow.document + : m.merge([], a.childNodes); + }, + }, + function (a, b) { + m.fn[a] = function (c, d) { + var e = m.map(this, b, c); + return ( + "Until" !== a.slice(-5) && (d = c), + d && "string" == typeof d && (e = m.filter(d, e)), + this.length > 1 && (C[a] || (e = m.unique(e)), B.test(a) && (e = e.reverse())), + this.pushStack(e) + ); + }; + } + ); + var E = /\S+/g, + F = {}; + function G(a) { + var b = (F[a] = {}); + return ( + m.each(a.match(E) || [], function (a, c) { + b[c] = !0; + }), + b + ); + } + (m.Callbacks = function (a) { + a = "string" == typeof a ? F[a] || G(a) : m.extend({}, a); + var b, + c, + d, + e, + f, + g, + h = [], + i = !a.once && [], + j = function (l) { + for (c = a.memory && l, d = !0, f = g || 0, g = 0, e = h.length, b = !0; h && e > f; f++) + if (h[f].apply(l[0], l[1]) === !1 && a.stopOnFalse) { + c = !1; + break; + } + (b = !1), h && (i ? i.length && j(i.shift()) : c ? (h = []) : k.disable()); + }, + k = { + add: function () { + if (h) { + var d = h.length; + !(function f(b) { + m.each(b, function (b, c) { + var d = m.type(c); + "function" === d + ? (a.unique && k.has(c)) || h.push(c) + : c && c.length && "string" !== d && f(c); + }); + })(arguments), + b ? (e = h.length) : c && ((g = d), j(c)); + } + return this; + }, + remove: function () { + return ( + h && + m.each(arguments, function (a, c) { + var d; + while ((d = m.inArray(c, h, d)) > -1) + h.splice(d, 1), b && (e >= d && e--, f >= d && f--); + }), + this + ); + }, + has: function (a) { + return a ? m.inArray(a, h) > -1 : !(!h || !h.length); + }, + empty: function () { + return (h = []), (e = 0), this; + }, + disable: function () { + return (h = i = c = void 0), this; + }, + disabled: function () { + return !h; + }, + lock: function () { + return (i = void 0), c || k.disable(), this; + }, + locked: function () { + return !i; + }, + fireWith: function (a, c) { + return ( + !h || (d && !i) || ((c = c || []), (c = [a, c.slice ? c.slice() : c]), b ? i.push(c) : j(c)), + this + ); + }, + fire: function () { + return k.fireWith(this, arguments), this; + }, + fired: function () { + return !!d; + }, + }; + return k; + }), + m.extend({ + Deferred: function (a) { + var b = [ + ["resolve", "done", m.Callbacks("once memory"), "resolved"], + ["reject", "fail", m.Callbacks("once memory"), "rejected"], + ["notify", "progress", m.Callbacks("memory")], + ], + c = "pending", + d = { + state: function () { + return c; + }, + always: function () { + return e.done(arguments).fail(arguments), this; + }, + then: function () { + var a = arguments; + return m + .Deferred(function (c) { + m.each(b, function (b, f) { + var g = m.isFunction(a[b]) && a[b]; + e[f[1]](function () { + var a = g && g.apply(this, arguments); + a && m.isFunction(a.promise) + ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) + : c[f[0] + "With"]( + this === d ? c.promise() : this, + g ? [a] : arguments + ); + }); + }), + (a = null); + }) + .promise(); + }, + promise: function (a) { + return null != a ? m.extend(a, d) : d; + }, + }, + e = {}; + return ( + (d.pipe = d.then), + m.each(b, function (a, f) { + var g = f[2], + h = f[3]; + (d[f[1]] = g.add), + h && + g.add( + function () { + c = h; + }, + b[1 ^ a][2].disable, + b[2][2].lock + ), + (e[f[0]] = function () { + return e[f[0] + "With"](this === e ? d : this, arguments), this; + }), + (e[f[0] + "With"] = g.fireWith); + }), + d.promise(e), + a && a.call(e, e), + e + ); + }, + when: function (a) { + var b = 0, + c = d.call(arguments), + e = c.length, + f = 1 !== e || (a && m.isFunction(a.promise)) ? e : 0, + g = 1 === f ? a : m.Deferred(), + h = function (a, b, c) { + return function (e) { + (b[a] = this), + (c[a] = arguments.length > 1 ? d.call(arguments) : e), + c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c); + }; + }, + i, + j, + k; + if (e > 1) + for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++) + c[b] && m.isFunction(c[b].promise) + ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i)) + : --f; + return f || g.resolveWith(k, c), g.promise(); + }, + }); + var H; + (m.fn.ready = function (a) { + return m.ready.promise().done(a), this; + }), + m.extend({ + isReady: !1, + readyWait: 1, + holdReady: function (a) { + a ? m.readyWait++ : m.ready(!0); + }, + ready: function (a) { + if (a === !0 ? !--m.readyWait : !m.isReady) { + if (!y.body) return setTimeout(m.ready); + (m.isReady = !0), + (a !== !0 && --m.readyWait > 0) || + (H.resolveWith(y, [m]), + m.fn.triggerHandler && (m(y).triggerHandler("ready"), m(y).off("ready"))); + } + }, + }); + function I() { + y.addEventListener + ? (y.removeEventListener("DOMContentLoaded", J, !1), a.removeEventListener("load", J, !1)) + : (y.detachEvent("onreadystatechange", J), a.detachEvent("onload", J)); + } + function J() { + (y.addEventListener || "load" === event.type || "complete" === y.readyState) && (I(), m.ready()); + } + m.ready.promise = function (b) { + if (!H) + if (((H = m.Deferred()), "complete" === y.readyState)) setTimeout(m.ready); + else if (y.addEventListener) + y.addEventListener("DOMContentLoaded", J, !1), a.addEventListener("load", J, !1); + else { + y.attachEvent("onreadystatechange", J), a.attachEvent("onload", J); + var c = !1; + try { + c = null == a.frameElement && y.documentElement; + } catch (d) {} + c && + c.doScroll && + !(function e() { + if (!m.isReady) { + try { + c.doScroll("left"); + } catch (a) { + return setTimeout(e, 50); + } + I(), m.ready(); + } + })(); + } + return H.promise(b); + }; + var K = "undefined", + L; + for (L in m(k)) break; + (k.ownLast = "0" !== L), + (k.inlineBlockNeedsLayout = !1), + m(function () { + var a, b, c, d; + (c = y.getElementsByTagName("body")[0]), + c && + c.style && + ((b = y.createElement("div")), + (d = y.createElement("div")), + (d.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"), + c.appendChild(d).appendChild(b), + typeof b.style.zoom !== K && + ((b.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1"), + (k.inlineBlockNeedsLayout = a = 3 === b.offsetWidth), + a && (c.style.zoom = 1)), + c.removeChild(d)); + }), + (function () { + var a = y.createElement("div"); + if (null == k.deleteExpando) { + k.deleteExpando = !0; + try { + delete a.test; + } catch (b) { + k.deleteExpando = !1; + } + } + a = null; + })(), + (m.acceptData = function (a) { + var b = m.noData[(a.nodeName + " ").toLowerCase()], + c = +a.nodeType || 1; + return 1 !== c && 9 !== c ? !1 : !b || (b !== !0 && a.getAttribute("classid") === b); + }); + var M = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + N = /([A-Z])/g; + function O(a, b, c) { + if (void 0 === c && 1 === a.nodeType) { + var d = "data-" + b.replace(N, "-$1").toLowerCase(); + if (((c = a.getAttribute(d)), "string" == typeof c)) { + try { + c = + "true" === c + ? !0 + : "false" === c + ? !1 + : "null" === c + ? null + : +c + "" === c + ? +c + : M.test(c) + ? m.parseJSON(c) + : c; + } catch (e) {} + m.data(a, b, c); + } else c = void 0; + } + return c; + } + function P(a) { + var b; + for (b in a) if (("data" !== b || !m.isEmptyObject(a[b])) && "toJSON" !== b) return !1; + + return !0; + } + function Q(a, b, d, e) { + if (m.acceptData(a)) { + var f, + g, + h = m.expando, + i = a.nodeType, + j = i ? m.cache : a, + k = i ? a[h] : a[h] && h; + if ((k && j[k] && (e || j[k].data)) || void 0 !== d || "string" != typeof b) + return ( + k || (k = i ? (a[h] = c.pop() || m.guid++) : h), + j[k] || (j[k] = i ? {} : { toJSON: m.noop }), + ("object" == typeof b || "function" == typeof b) && + (e ? (j[k] = m.extend(j[k], b)) : (j[k].data = m.extend(j[k].data, b))), + (g = j[k]), + e || (g.data || (g.data = {}), (g = g.data)), + void 0 !== d && (g[m.camelCase(b)] = d), + "string" == typeof b ? ((f = g[b]), null == f && (f = g[m.camelCase(b)])) : (f = g), + f + ); + } + } + function R(a, b, c) { + if (m.acceptData(a)) { + var d, + e, + f = a.nodeType, + g = f ? m.cache : a, + h = f ? a[m.expando] : m.expando; + if (g[h]) { + if (b && (d = c ? g[h] : g[h].data)) { + m.isArray(b) + ? (b = b.concat(m.map(b, m.camelCase))) + : b in d + ? (b = [b]) + : ((b = m.camelCase(b)), (b = b in d ? [b] : b.split(" "))), + (e = b.length); + while (e--) delete d[b[e]]; + if (c ? !P(d) : !m.isEmptyObject(d)) return; + } + (c || (delete g[h].data, P(g[h]))) && + (f ? m.cleanData([a], !0) : k.deleteExpando || g != g.window ? delete g[h] : (g[h] = null)); + } + } + } + m.extend({ + cache: {}, + noData: { "applet ": !0, "embed ": !0, "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" }, + hasData: function (a) { + return (a = a.nodeType ? m.cache[a[m.expando]] : a[m.expando]), !!a && !P(a); + }, + data: function (a, b, c) { + return Q(a, b, c); + }, + removeData: function (a, b) { + return R(a, b); + }, + _data: function (a, b, c) { + return Q(a, b, c, !0); + }, + _removeData: function (a, b) { + return R(a, b, !0); + }, + }), + m.fn.extend({ + data: function (a, b) { + var c, + d, + e, + f = this[0], + g = f && f.attributes; + if (void 0 === a) { + if (this.length && ((e = m.data(f)), 1 === f.nodeType && !m._data(f, "parsedAttrs"))) { + c = g.length; + while (c--) + g[c] && + ((d = g[c].name), + 0 === d.indexOf("data-") && ((d = m.camelCase(d.slice(5))), O(f, d, e[d]))); + m._data(f, "parsedAttrs", !0); + } + return e; + } + return "object" == typeof a + ? this.each(function () { + m.data(this, a); + }) + : arguments.length > 1 + ? this.each(function () { + m.data(this, a, b); + }) + : f + ? O(f, a, m.data(f, a)) + : void 0; + }, + removeData: function (a) { + return this.each(function () { + m.removeData(this, a); + }); + }, + }), + m.extend({ + queue: function (a, b, c) { + var d; + return a + ? ((b = (b || "fx") + "queue"), + (d = m._data(a, b)), + c && (!d || m.isArray(c) ? (d = m._data(a, b, m.makeArray(c))) : d.push(c)), + d || []) + : void 0; + }, + dequeue: function (a, b) { + b = b || "fx"; + var c = m.queue(a, b), + d = c.length, + e = c.shift(), + f = m._queueHooks(a, b), + g = function () { + m.dequeue(a, b); + }; + "inprogress" === e && ((e = c.shift()), d--), + e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), + !d && f && f.empty.fire(); + }, + _queueHooks: function (a, b) { + var c = b + "queueHooks"; + return ( + m._data(a, c) || + m._data(a, c, { + empty: m.Callbacks("once memory").add(function () { + m._removeData(a, b + "queue"), m._removeData(a, c); + }), + }) + ); + }, + }), + m.fn.extend({ + queue: function (a, b) { + var c = 2; + return ( + "string" != typeof a && ((b = a), (a = "fx"), c--), + arguments.length < c + ? m.queue(this[0], a) + : void 0 === b + ? this + : this.each(function () { + var c = m.queue(this, a, b); + m._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && m.dequeue(this, a); + }) + ); + }, + dequeue: function (a) { + return this.each(function () { + m.dequeue(this, a); + }); + }, + clearQueue: function (a) { + return this.queue(a || "fx", []); + }, + promise: function (a, b) { + var c, + d = 1, + e = m.Deferred(), + f = this, + g = this.length, + h = function () { + --d || e.resolveWith(f, [f]); + }; + "string" != typeof a && ((b = a), (a = void 0)), (a = a || "fx"); + while (g--) (c = m._data(f[g], a + "queueHooks")), c && c.empty && (d++, c.empty.add(h)); + return h(), e.promise(b); + }, + }); + var S = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + T = ["Top", "Right", "Bottom", "Left"], + U = function (a, b) { + return (a = b || a), "none" === m.css(a, "display") || !m.contains(a.ownerDocument, a); + }, + V = (m.access = function (a, b, c, d, e, f, g) { + var h = 0, + i = a.length, + j = null == c; + if ("object" === m.type(c)) { + e = !0; + for (h in c) m.access(a, b, h, c[h], !0, f, g); + } else if ( + void 0 !== d && + ((e = !0), + m.isFunction(d) || (g = !0), + j && + (g + ? (b.call(a, d), (b = null)) + : ((j = b), + (b = function (a, b, c) { + return j.call(m(a), c); + }))), + b) + ) + for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c))); + return e ? a : j ? b.call(a) : i ? b(a[0], c) : f; + }), + W = /^(?:checkbox|radio)$/i; + !(function () { + var a = y.createElement("input"), + b = y.createElement("div"), + c = y.createDocumentFragment(); + if ( + ((b.innerHTML = "
a"), + (k.leadingWhitespace = 3 === b.firstChild.nodeType), + (k.tbody = !b.getElementsByTagName("tbody").length), + (k.htmlSerialize = !!b.getElementsByTagName("link").length), + (k.html5Clone = "<:nav>" !== y.createElement("nav").cloneNode(!0).outerHTML), + (a.type = "checkbox"), + (a.checked = !0), + c.appendChild(a), + (k.appendChecked = a.checked), + (b.innerHTML = ""), + (k.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue), + c.appendChild(b), + (b.innerHTML = ""), + (k.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked), + (k.noCloneEvent = !0), + b.attachEvent && + (b.attachEvent("onclick", function () { + k.noCloneEvent = !1; + }), + b.cloneNode(!0).click()), + null == k.deleteExpando) + ) { + k.deleteExpando = !0; + try { + delete b.test; + } catch (d) { + k.deleteExpando = !1; + } + } + })(), + (function () { + var b, + c, + d = y.createElement("div"); + for (b in { submit: !0, change: !0, focusin: !0 }) + (c = "on" + b), + (k[b + "Bubbles"] = c in a) || + (d.setAttribute(c, "t"), (k[b + "Bubbles"] = d.attributes[c].expando === !1)); + d = null; + })(); + var X = /^(?:input|select|textarea)$/i, + Y = /^key/, + Z = /^(?:mouse|pointer|contextmenu)|click/, + $ = /^(?:focusinfocus|focusoutblur)$/, + _ = /^([^.]*)(?:\.(.+)|)$/; + function aa() { + return !0; + } + function ba() { + return !1; + } + function ca() { + try { + return y.activeElement; + } catch (a) {} + } + (m.event = { + global: {}, + add: function (a, b, c, d, e) { + var f, + g, + h, + i, + j, + k, + l, + n, + o, + p, + q, + r = m._data(a); + if (r) { + c.handler && ((i = c), (c = i.handler), (e = i.selector)), + c.guid || (c.guid = m.guid++), + (g = r.events) || (g = r.events = {}), + (k = r.handle) || + ((k = r.handle = + function (a) { + return typeof m === K || (a && m.event.triggered === a.type) + ? void 0 + : m.event.dispatch.apply(k.elem, arguments); + }), + (k.elem = a)), + (b = (b || "").match(E) || [""]), + (h = b.length); + while (h--) + (f = _.exec(b[h]) || []), + (o = q = f[1]), + (p = (f[2] || "").split(".").sort()), + o && + ((j = m.event.special[o] || {}), + (o = (e ? j.delegateType : j.bindType) || o), + (j = m.event.special[o] || {}), + (l = m.extend( + { + type: o, + origType: q, + data: d, + handler: c, + guid: c.guid, + selector: e, + needsContext: e && m.expr.match.needsContext.test(e), + namespace: p.join("."), + }, + i + )), + (n = g[o]) || + ((n = g[o] = []), + (n.delegateCount = 0), + (j.setup && j.setup.call(a, d, p, k) !== !1) || + (a.addEventListener + ? a.addEventListener(o, k, !1) + : a.attachEvent && a.attachEvent("on" + o, k))), + j.add && (j.add.call(a, l), l.handler.guid || (l.handler.guid = c.guid)), + e ? n.splice(n.delegateCount++, 0, l) : n.push(l), + (m.event.global[o] = !0)); + a = null; + } + }, + remove: function (a, b, c, d, e) { + var f, + g, + h, + i, + j, + k, + l, + n, + o, + p, + q, + r = m.hasData(a) && m._data(a); + if (r && (k = r.events)) { + (b = (b || "").match(E) || [""]), (j = b.length); + while (j--) + if (((h = _.exec(b[j]) || []), (o = q = h[1]), (p = (h[2] || "").split(".").sort()), o)) { + (l = m.event.special[o] || {}), + (o = (d ? l.delegateType : l.bindType) || o), + (n = k[o] || []), + (h = h[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)")), + (i = f = n.length); + while (f--) + (g = n[f]), + (!e && q !== g.origType) || + (c && c.guid !== g.guid) || + (h && !h.test(g.namespace)) || + (d && d !== g.selector && ("**" !== d || !g.selector)) || + (n.splice(f, 1), g.selector && n.delegateCount--, l.remove && l.remove.call(a, g)); + i && + !n.length && + ((l.teardown && l.teardown.call(a, p, r.handle) !== !1) || m.removeEvent(a, o, r.handle), + delete k[o]); + } else for (o in k) m.event.remove(a, o + b[j], c, d, !0); + m.isEmptyObject(k) && (delete r.handle, m._removeData(a, "events")); + } + }, + trigger: function (b, c, d, e) { + var f, + g, + h, + i, + k, + l, + n, + o = [d || y], + p = j.call(b, "type") ? b.type : b, + q = j.call(b, "namespace") ? b.namespace.split(".") : []; + if ( + ((h = l = d = d || y), + 3 !== d.nodeType && + 8 !== d.nodeType && + !$.test(p + m.event.triggered) && + (p.indexOf(".") >= 0 && ((q = p.split(".")), (p = q.shift()), q.sort()), + (g = p.indexOf(":") < 0 && "on" + p), + (b = b[m.expando] ? b : new m.Event(p, "object" == typeof b && b)), + (b.isTrigger = e ? 2 : 3), + (b.namespace = q.join(".")), + (b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") : null), + (b.result = void 0), + b.target || (b.target = d), + (c = null == c ? [b] : m.makeArray(c, [b])), + (k = m.event.special[p] || {}), + e || !k.trigger || k.trigger.apply(d, c) !== !1)) + ) { + if (!e && !k.noBubble && !m.isWindow(d)) { + for (i = k.delegateType || p, $.test(i + p) || (h = h.parentNode); h; h = h.parentNode) + o.push(h), (l = h); + l === (d.ownerDocument || y) && o.push(l.defaultView || l.parentWindow || a); + } + n = 0; + while ((h = o[n++]) && !b.isPropagationStopped()) + (b.type = n > 1 ? i : k.bindType || p), + (f = (m._data(h, "events") || {})[b.type] && m._data(h, "handle")), + f && f.apply(h, c), + (f = g && h[g]), + f && + f.apply && + m.acceptData(h) && + ((b.result = f.apply(h, c)), b.result === !1 && b.preventDefault()); + if ( + ((b.type = p), + !e && + !b.isDefaultPrevented() && + (!k._default || k._default.apply(o.pop(), c) === !1) && + m.acceptData(d) && + g && + d[p] && + !m.isWindow(d)) + ) { + (l = d[g]), l && (d[g] = null), (m.event.triggered = p); + try { + d[p](); + } catch (r) {} + (m.event.triggered = void 0), l && (d[g] = l); + } + return b.result; + } + }, + dispatch: function (a) { + a = m.event.fix(a); + var b, + c, + e, + f, + g, + h = [], + i = d.call(arguments), + j = (m._data(this, "events") || {})[a.type] || [], + k = m.event.special[a.type] || {}; + if (((i[0] = a), (a.delegateTarget = this), !k.preDispatch || k.preDispatch.call(this, a) !== !1)) { + (h = m.event.handlers.call(this, a, j)), (b = 0); + while ((f = h[b++]) && !a.isPropagationStopped()) { + (a.currentTarget = f.elem), (g = 0); + while ((e = f.handlers[g++]) && !a.isImmediatePropagationStopped()) + (!a.namespace_re || a.namespace_re.test(e.namespace)) && + ((a.handleObj = e), + (a.data = e.data), + (c = ((m.event.special[e.origType] || {}).handle || e.handler).apply(f.elem, i)), + void 0 !== c && (a.result = c) === !1 && (a.preventDefault(), a.stopPropagation())); + } + return k.postDispatch && k.postDispatch.call(this, a), a.result; + } + }, + handlers: function (a, b) { + var c, + d, + e, + f, + g = [], + h = b.delegateCount, + i = a.target; + if (h && i.nodeType && (!a.button || "click" !== a.type)) + for (; i != this; i = i.parentNode || this) + if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) { + for (e = [], f = 0; h > f; f++) + (d = b[f]), + (c = d.selector + " "), + void 0 === e[c] && + (e[c] = d.needsContext + ? m(c, this).index(i) >= 0 + : m.find(c, this, null, [i]).length), + e[c] && e.push(d); + e.length && g.push({ elem: i, handlers: e }); + } + return h < b.length && g.push({ elem: this, handlers: b.slice(h) }), g; + }, + fix: function (a) { + if (a[m.expando]) return a; + var b, + c, + d, + e = a.type, + f = a, + g = this.fixHooks[e]; + g || (this.fixHooks[e] = g = Z.test(e) ? this.mouseHooks : Y.test(e) ? this.keyHooks : {}), + (d = g.props ? this.props.concat(g.props) : this.props), + (a = new m.Event(f)), + (b = d.length); + while (b--) (c = d[b]), (a[c] = f[c]); + return ( + a.target || (a.target = f.srcElement || y), + 3 === a.target.nodeType && (a.target = a.target.parentNode), + (a.metaKey = !!a.metaKey), + g.filter ? g.filter(a, f) : a + ); + }, + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split( + " " + ), + fixHooks: {}, + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function (a, b) { + return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a; + }, + }, + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split( + " " + ), + filter: function (a, b) { + var c, + d, + e, + f = b.button, + g = b.fromElement; + return ( + null == a.pageX && + null != b.clientX && + ((d = a.target.ownerDocument || y), + (e = d.documentElement), + (c = d.body), + (a.pageX = + b.clientX + + ((e && e.scrollLeft) || (c && c.scrollLeft) || 0) - + ((e && e.clientLeft) || (c && c.clientLeft) || 0)), + (a.pageY = + b.clientY + + ((e && e.scrollTop) || (c && c.scrollTop) || 0) - + ((e && e.clientTop) || (c && c.clientTop) || 0))), + !a.relatedTarget && g && (a.relatedTarget = g === a.target ? b.toElement : g), + a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), + a + ); + }, + }, + special: { + load: { noBubble: !0 }, + focus: { + trigger: function () { + if (this !== ca() && this.focus) + try { + return this.focus(), !1; + } catch (a) {} + }, + delegateType: "focusin", + }, + blur: { + trigger: function () { + return this === ca() && this.blur ? (this.blur(), !1) : void 0; + }, + delegateType: "focusout", + }, + click: { + trigger: function () { + return m.nodeName(this, "input") && "checkbox" === this.type && this.click + ? (this.click(), !1) + : void 0; + }, + _default: function (a) { + return m.nodeName(a.target, "a"); + }, + }, + beforeunload: { + postDispatch: function (a) { + void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result); + }, + }, + }, + simulate: function (a, b, c, d) { + var e = m.extend(new m.Event(), c, { type: a, isSimulated: !0, originalEvent: {} }); + d ? m.event.trigger(e, null, b) : m.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault(); + }, + }), + (m.removeEvent = y.removeEventListener + ? function (a, b, c) { + a.removeEventListener && a.removeEventListener(b, c, !1); + } + : function (a, b, c) { + var d = "on" + b; + a.detachEvent && (typeof a[d] === K && (a[d] = null), a.detachEvent(d, c)); + }), + (m.Event = function (a, b) { + return this instanceof m.Event + ? (a && a.type + ? ((this.originalEvent = a), + (this.type = a.type), + (this.isDefaultPrevented = + a.defaultPrevented || (void 0 === a.defaultPrevented && a.returnValue === !1) ? aa : ba)) + : (this.type = a), + b && m.extend(this, b), + (this.timeStamp = (a && a.timeStamp) || m.now()), + void (this[m.expando] = !0)) + : new m.Event(a, b); + }), + (m.Event.prototype = { + isDefaultPrevented: ba, + isPropagationStopped: ba, + isImmediatePropagationStopped: ba, + preventDefault: function () { + var a = this.originalEvent; + (this.isDefaultPrevented = aa), a && (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)); + }, + stopPropagation: function () { + var a = this.originalEvent; + (this.isPropagationStopped = aa), + a && (a.stopPropagation && a.stopPropagation(), (a.cancelBubble = !0)); + }, + stopImmediatePropagation: function () { + var a = this.originalEvent; + (this.isImmediatePropagationStopped = aa), + a && a.stopImmediatePropagation && a.stopImmediatePropagation(), + this.stopPropagation(); + }, + }), + m.each( + { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout", + }, + function (a, b) { + m.event.special[a] = { + delegateType: b, + bindType: b, + handle: function (a) { + var c, + d = this, + e = a.relatedTarget, + f = a.handleObj; + return ( + (!e || (e !== d && !m.contains(d, e))) && + ((a.type = f.origType), (c = f.handler.apply(this, arguments)), (a.type = b)), + c + ); + }, + }; + } + ), + k.submitBubbles || + (m.event.special.submit = { + setup: function () { + return m.nodeName(this, "form") + ? !1 + : void m.event.add(this, "click._submit keypress._submit", function (a) { + var b = a.target, + c = m.nodeName(b, "input") || m.nodeName(b, "button") ? b.form : void 0; + c && + !m._data(c, "submitBubbles") && + (m.event.add(c, "submit._submit", function (a) { + a._submit_bubble = !0; + }), + m._data(c, "submitBubbles", !0)); + }); + }, + postDispatch: function (a) { + a._submit_bubble && + (delete a._submit_bubble, + this.parentNode && !a.isTrigger && m.event.simulate("submit", this.parentNode, a, !0)); + }, + teardown: function () { + return m.nodeName(this, "form") ? !1 : void m.event.remove(this, "._submit"); + }, + }), + k.changeBubbles || + (m.event.special.change = { + setup: function () { + return X.test(this.nodeName) + ? (("checkbox" === this.type || "radio" === this.type) && + (m.event.add(this, "propertychange._change", function (a) { + "checked" === a.originalEvent.propertyName && (this._just_changed = !0); + }), + m.event.add(this, "click._change", function (a) { + this._just_changed && !a.isTrigger && (this._just_changed = !1), + m.event.simulate("change", this, a, !0); + })), + !1) + : void m.event.add(this, "beforeactivate._change", function (a) { + var b = a.target; + X.test(b.nodeName) && + !m._data(b, "changeBubbles") && + (m.event.add(b, "change._change", function (a) { + !this.parentNode || + a.isSimulated || + a.isTrigger || + m.event.simulate("change", this.parentNode, a, !0); + }), + m._data(b, "changeBubbles", !0)); + }); + }, + handle: function (a) { + var b = a.target; + return this !== b || a.isSimulated || a.isTrigger || ("radio" !== b.type && "checkbox" !== b.type) + ? a.handleObj.handler.apply(this, arguments) + : void 0; + }, + teardown: function () { + return m.event.remove(this, "._change"), !X.test(this.nodeName); + }, + }), + k.focusinBubbles || + m.each({ focus: "focusin", blur: "focusout" }, function (a, b) { + var c = function (a) { + m.event.simulate(b, a.target, m.event.fix(a), !0); + }; + m.event.special[b] = { + setup: function () { + var d = this.ownerDocument || this, + e = m._data(d, b); + e || d.addEventListener(a, c, !0), m._data(d, b, (e || 0) + 1); + }, + teardown: function () { + var d = this.ownerDocument || this, + e = m._data(d, b) - 1; + e ? m._data(d, b, e) : (d.removeEventListener(a, c, !0), m._removeData(d, b)); + }, + }; + }), + m.fn.extend({ + on: function (a, b, c, d, e) { + var f, g; + if ("object" == typeof a) { + "string" != typeof b && ((c = c || b), (b = void 0)); + for (f in a) this.on(f, b, c, a[f], e); + return this; + } + if ( + (null == c && null == d + ? ((d = b), (c = b = void 0)) + : null == d && + ("string" == typeof b ? ((d = c), (c = void 0)) : ((d = c), (c = b), (b = void 0))), + d === !1) + ) + d = ba; + else if (!d) return this; + return ( + 1 === e && + ((g = d), + (d = function (a) { + return m().off(a), g.apply(this, arguments); + }), + (d.guid = g.guid || (g.guid = m.guid++))), + this.each(function () { + m.event.add(this, a, d, c, b); + }) + ); + }, + one: function (a, b, c, d) { + return this.on(a, b, c, d, 1); + }, + off: function (a, b, c) { + var d, e; + if (a && a.preventDefault && a.handleObj) + return ( + (d = a.handleObj), + m(a.delegateTarget).off( + d.namespace ? d.origType + "." + d.namespace : d.origType, + d.selector, + d.handler + ), + this + ); + if ("object" == typeof a) { + for (e in a) this.off(e, b, a[e]); + return this; + } + return ( + (b === !1 || "function" == typeof b) && ((c = b), (b = void 0)), + c === !1 && (c = ba), + this.each(function () { + m.event.remove(this, a, c, b); + }) + ); + }, + trigger: function (a, b) { + return this.each(function () { + m.event.trigger(a, b, this); + }); + }, + triggerHandler: function (a, b) { + var c = this[0]; + return c ? m.event.trigger(a, b, c, !0) : void 0; + }, + }); + function da(a) { + var b = ea.split("|"), + c = a.createDocumentFragment(); + if (c.createElement) while (b.length) c.createElement(b.pop()); + return c; + } + var ea = + "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + fa = / jQuery\d+="(?:null|\d+)"/g, + ga = new RegExp("<(?:" + ea + ")[\\s/>]", "i"), + ha = /^\s+/, + ia = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + ja = /<([\w:]+)/, + ka = /\s*$/g, + ra = { + option: [1, ""], + legend: [1, "
", "
"], + area: [1, "", ""], + param: [1, "", ""], + thead: [1, "", "
"], + tr: [2, "", "
"], + col: [2, "", "
"], + td: [3, "", "
"], + _default: k.htmlSerialize ? [0, "", ""] : [1, "X
", "
"], + }, + sa = da(y), + ta = sa.appendChild(y.createElement("div")); + (ra.optgroup = ra.option), (ra.tbody = ra.tfoot = ra.colgroup = ra.caption = ra.thead), (ra.th = ra.td); + function ua(a, b) { + var c, + d, + e = 0, + f = + typeof a.getElementsByTagName !== K + ? a.getElementsByTagName(b || "*") + : typeof a.querySelectorAll !== K + ? a.querySelectorAll(b || "*") + : void 0; + if (!f) + for (f = [], c = a.childNodes || a; null != (d = c[e]); e++) + !b || m.nodeName(d, b) ? f.push(d) : m.merge(f, ua(d, b)); + return void 0 === b || (b && m.nodeName(a, b)) ? m.merge([a], f) : f; + } + function va(a) { + W.test(a.type) && (a.defaultChecked = a.checked); + } + function wa(a, b) { + return m.nodeName(a, "table") && m.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") + ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) + : a; + } + function xa(a) { + return (a.type = (null !== m.find.attr(a, "type")) + "/" + a.type), a; + } + function ya(a) { + var b = pa.exec(a.type); + return b ? (a.type = b[1]) : a.removeAttribute("type"), a; + } + function za(a, b) { + for (var c, d = 0; null != (c = a[d]); d++) m._data(c, "globalEval", !b || m._data(b[d], "globalEval")); + } + function Aa(a, b) { + if (1 === b.nodeType && m.hasData(a)) { + var c, + d, + e, + f = m._data(a), + g = m._data(b, f), + h = f.events; + if (h) { + delete g.handle, (g.events = {}); + for (c in h) for (d = 0, e = h[c].length; e > d; d++) m.event.add(b, c, h[c][d]); + } + g.data && (g.data = m.extend({}, g.data)); + } + } + function Ba(a, b) { + var c, d, e; + if (1 === b.nodeType) { + if (((c = b.nodeName.toLowerCase()), !k.noCloneEvent && b[m.expando])) { + e = m._data(b); + for (d in e.events) m.removeEvent(b, d, e.handle); + b.removeAttribute(m.expando); + } + "script" === c && b.text !== a.text + ? ((xa(b).text = a.text), ya(b)) + : "object" === c + ? (b.parentNode && (b.outerHTML = a.outerHTML), + k.html5Clone && a.innerHTML && !m.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) + : "input" === c && W.test(a.type) + ? ((b.defaultChecked = b.checked = a.checked), b.value !== a.value && (b.value = a.value)) + : "option" === c + ? (b.defaultSelected = b.selected = a.defaultSelected) + : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue); + } + } + m.extend({ + clone: function (a, b, c) { + var d, + e, + f, + g, + h, + i = m.contains(a.ownerDocument, a); + if ( + (k.html5Clone || m.isXMLDoc(a) || !ga.test("<" + a.nodeName + ">") + ? (f = a.cloneNode(!0)) + : ((ta.innerHTML = a.outerHTML), ta.removeChild((f = ta.firstChild))), + !((k.noCloneEvent && k.noCloneChecked) || (1 !== a.nodeType && 11 !== a.nodeType) || m.isXMLDoc(a))) + ) + for (d = ua(f), h = ua(a), g = 0; null != (e = h[g]); ++g) d[g] && Ba(e, d[g]); + if (b) + if (c) for (h = h || ua(a), d = d || ua(f), g = 0; null != (e = h[g]); g++) Aa(e, d[g]); + else Aa(a, f); + return (d = ua(f, "script")), d.length > 0 && za(d, !i && ua(a, "script")), (d = h = e = null), f; + }, + buildFragment: function (a, b, c, d) { + for (var e, f, g, h, i, j, l, n = a.length, o = da(b), p = [], q = 0; n > q; q++) + if (((f = a[q]), f || 0 === f)) + if ("object" === m.type(f)) m.merge(p, f.nodeType ? [f] : f); + else if (la.test(f)) { + (h = h || o.appendChild(b.createElement("div"))), + (i = (ja.exec(f) || ["", ""])[1].toLowerCase()), + (l = ra[i] || ra._default), + (h.innerHTML = l[1] + f.replace(ia, "<$1>") + l[2]), + (e = l[0]); + while (e--) h = h.lastChild; + if ((!k.leadingWhitespace && ha.test(f) && p.push(b.createTextNode(ha.exec(f)[0])), !k.tbody)) { + (f = + "table" !== i || ka.test(f) + ? "" !== l[1] || ka.test(f) + ? 0 + : h + : h.firstChild), + (e = f && f.childNodes.length); + while (e--) + m.nodeName((j = f.childNodes[e]), "tbody") && !j.childNodes.length && f.removeChild(j); + } + m.merge(p, h.childNodes), (h.textContent = ""); + while (h.firstChild) h.removeChild(h.firstChild); + h = o.lastChild; + } else p.push(b.createTextNode(f)); + h && o.removeChild(h), k.appendChecked || m.grep(ua(p, "input"), va), (q = 0); + while ((f = p[q++])) + if ( + (!d || -1 === m.inArray(f, d)) && + ((g = m.contains(f.ownerDocument, f)), (h = ua(o.appendChild(f), "script")), g && za(h), c) + ) { + e = 0; + while ((f = h[e++])) oa.test(f.type || "") && c.push(f); + } + return (h = null), o; + }, + cleanData: function (a, b) { + for ( + var d, e, f, g, h = 0, i = m.expando, j = m.cache, l = k.deleteExpando, n = m.event.special; + null != (d = a[h]); + h++ + ) + if ((b || m.acceptData(d)) && ((f = d[i]), (g = f && j[f]))) { + if (g.events) for (e in g.events) n[e] ? m.event.remove(d, e) : m.removeEvent(d, e, g.handle); + j[f] && + (delete j[f], + l ? delete d[i] : typeof d.removeAttribute !== K ? d.removeAttribute(i) : (d[i] = null), + c.push(f)); + } + }, + }), + m.fn.extend({ + text: function (a) { + return V( + this, + function (a) { + return void 0 === a + ? m.text(this) + : this.empty().append(((this[0] && this[0].ownerDocument) || y).createTextNode(a)); + }, + null, + a, + arguments.length + ); + }, + append: function () { + return this.domManip(arguments, function (a) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var b = wa(this, a); + b.appendChild(a); + } + }); + }, + prepend: function () { + return this.domManip(arguments, function (a) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var b = wa(this, a); + b.insertBefore(a, b.firstChild); + } + }); + }, + before: function () { + return this.domManip(arguments, function (a) { + this.parentNode && this.parentNode.insertBefore(a, this); + }); + }, + after: function () { + return this.domManip(arguments, function (a) { + this.parentNode && this.parentNode.insertBefore(a, this.nextSibling); + }); + }, + remove: function (a, b) { + for (var c, d = a ? m.filter(a, this) : this, e = 0; null != (c = d[e]); e++) + b || 1 !== c.nodeType || m.cleanData(ua(c)), + c.parentNode && + (b && m.contains(c.ownerDocument, c) && za(ua(c, "script")), c.parentNode.removeChild(c)); + return this; + }, + empty: function () { + for (var a, b = 0; null != (a = this[b]); b++) { + 1 === a.nodeType && m.cleanData(ua(a, !1)); + while (a.firstChild) a.removeChild(a.firstChild); + a.options && m.nodeName(a, "select") && (a.options.length = 0); + } + return this; + }, + clone: function (a, b) { + return ( + (a = null == a ? !1 : a), + (b = null == b ? a : b), + this.map(function () { + return m.clone(this, a, b); + }) + ); + }, + html: function (a) { + return V( + this, + function (a) { + var b = this[0] || {}, + c = 0, + d = this.length; + if (void 0 === a) return 1 === b.nodeType ? b.innerHTML.replace(fa, "") : void 0; + if ( + !( + "string" != typeof a || + ma.test(a) || + (!k.htmlSerialize && ga.test(a)) || + (!k.leadingWhitespace && ha.test(a)) || + ra[(ja.exec(a) || ["", ""])[1].toLowerCase()] + ) + ) { + a = a.replace(ia, "<$1>"); + try { + for (; d > c; c++) + (b = this[c] || {}), + 1 === b.nodeType && (m.cleanData(ua(b, !1)), (b.innerHTML = a)); + b = 0; + } catch (e) {} + } + b && this.empty().append(a); + }, + null, + a, + arguments.length + ); + }, + replaceWith: function () { + var a = arguments[0]; + return ( + this.domManip(arguments, function (b) { + (a = this.parentNode), m.cleanData(ua(this)), a && a.replaceChild(b, this); + }), + a && (a.length || a.nodeType) ? this : this.remove() + ); + }, + detach: function (a) { + return this.remove(a, !0); + }, + domManip: function (a, b) { + a = e.apply([], a); + var c, + d, + f, + g, + h, + i, + j = 0, + l = this.length, + n = this, + o = l - 1, + p = a[0], + q = m.isFunction(p); + if (q || (l > 1 && "string" == typeof p && !k.checkClone && na.test(p))) + return this.each(function (c) { + var d = n.eq(c); + q && (a[0] = p.call(this, c, d.html())), d.domManip(a, b); + }); + if ( + l && + ((i = m.buildFragment(a, this[0].ownerDocument, !1, this)), + (c = i.firstChild), + 1 === i.childNodes.length && (i = c), + c) + ) { + for (g = m.map(ua(i, "script"), xa), f = g.length; l > j; j++) + (d = i), + j !== o && ((d = m.clone(d, !0, !0)), f && m.merge(g, ua(d, "script"))), + b.call(this[j], d, j); + if (f) + for (h = g[g.length - 1].ownerDocument, m.map(g, ya), j = 0; f > j; j++) + (d = g[j]), + oa.test(d.type || "") && + !m._data(d, "globalEval") && + m.contains(h, d) && + (d.src + ? m._evalUrl && m._evalUrl(d.src) + : m.globalEval((d.text || d.textContent || d.innerHTML || "").replace(qa, ""))); + i = c = null; + } + return this; + }, + }), + m.each( + { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith", + }, + function (a, b) { + m.fn[a] = function (a) { + for (var c, d = 0, e = [], g = m(a), h = g.length - 1; h >= d; d++) + (c = d === h ? this : this.clone(!0)), m(g[d])[b](c), f.apply(e, c.get()); + return this.pushStack(e); + }; + } + ); + var Ca, + Da = {}; + function Ea(b, c) { + var d, + e = m(c.createElement(b)).appendTo(c.body), + f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : m.css(e[0], "display"); + return e.detach(), f; + } + function Fa(a) { + var b = y, + c = Da[a]; + return ( + c || + ((c = Ea(a, b)), + ("none" !== c && c) || + ((Ca = (Ca || m("