[llvm-commits] CVS: llvm/lib/Reoptimizer/TraceCache/TraceCache.cpp

Anand Shukla ashukla at cs.uiuc.edu
Sun Sep 15 15:43:01 PDT 2002


Changes in directory llvm/lib/Reoptimizer/TraceCache:

TraceCache.cpp updated: 1.4 -> 1.5

---
Log message:

TraceCache.cpp is reorganized and split into multiple files


---
Diffs of the changes:

Index: llvm/lib/Reoptimizer/TraceCache/TraceCache.cpp
diff -u llvm/lib/Reoptimizer/TraceCache/TraceCache.cpp:1.4 llvm/lib/Reoptimizer/TraceCache/TraceCache.cpp:1.5
--- llvm/lib/Reoptimizer/TraceCache/TraceCache.cpp:1.4	Thu Aug  1 02:23:24 2002
+++ llvm/lib/Reoptimizer/TraceCache/TraceCache.cpp	Sun Sep 15 15:35:50 2002
@@ -17,42 +17,37 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "MemoryManager.h"
 #include "llvm/Reoptimizer/TraceCache.h"
-//#include <sys/proc.h>
-#include <unistd.h>
-//#include <sys/types.h>
-//#include <sys/stat.h>
-//#include <sys/mman.h>
-#include <fcntl.h>
-#include <stdio.h>
+#include "llvm/Reoptimizer/VirtualMem.h"
+#include "llvm/Reoptimizer/InstrUtils.h"
 #include <assert.h>
 #include <algorithm>
 #include <iostream>
-using std::cerr;
 
-int dummyFunction(int i); //the function that provides memory!
+using std::cerr;
 
 TraceCache::TraceCache(int limitSize){
-  memoryInitialize();
+  mm = new MemoryManager();
 
-  assert(limitSize <= globalMemSize && "can't allocate this large space");
+  assert(limitSize <= mm->getMemSize() && "can't allocate this large space");
   limit = limitSize;
 
   isLimitSet = true;
   currSize = 0;
 
-  intializeVM();
+  vm = new VirtualMem();
 }
 
 
 TraceCache::TraceCache(){
-  memoryInitialize();
+  mm = new MemoryManager();
 
-  isLimitSet = true; //making limit as the globalSize
+  isLimitSet = true; //making limit as the size of memory
   currSize = 0;
-  limit = globalMemSize;
+  limit = mm->getMemSize();
  
-  intializeVM();
+  vm = new VirtualMem();
 }
 
 void TraceCache::setLimit(int n) { 
@@ -61,127 +56,74 @@
   limit = n;
 }
 
-void TraceCache::intializeVM(){
-  //open file pointer
-  char ctr[25];
-  int pid = getpid();
-  sprintf(ctr, "/proc/%d/as",pid);
-  fp = open(ctr, O_RDWR);
-  assert(fp>=0 && "Error opening file!");
-}
-
-void TraceCache::copyToVM(unsigned int trace[], 
-                                     uint64_t traceStartAddr, int sz){
-  //copy sz instructions starting from
-  //location trace to virtual memory address traceStartAddr
-  lseek(fp, traceStartAddr, SEEK_SET);
-  write(fp, &trace[0], 4*sz);
-}
-
-unsigned int TraceCache::readInstrFrmVm(uint64_t frm){
-  lseek(fp, frm, SEEK_SET);
-  unsigned int instr=0;
-  read(fp, &instr, 4);
-  return instr;
-}
-
-void TraceCache::writeInstToVM(uint64_t dest, unsigned int newInstr){
-  lseek(fp, dest, SEEK_SET);
-  write(fp, &newInstr, 4);
-}
+//add an array of instructions (trace[]), whose first instruction
+//has address instrAddr in the original program
+//size of array is sz (number of instructions)
+// returns false if cannot assign space to trace
 
+//Do the following:
+//1. Insert a jump at location instrAddr with target as new trace
+bool TraceCache::addTrace(uint64_t instAddr, 
+                              std::vector<unsigned int> &trace, 
+                              int traceUniqId,
+                              std::map<int, uint64_t> &callMap,
+                              std::map<int, uint64_t> &branchMap){
+  
+  //remove trace if its already there
+  if(hasTraceAddr(instAddr))
+    removeTrace(instAddr);
 
-//Memory management algorithm:
-//
-//Maintain a list: every element of list is
-//a range [a, b] of free memory. The list is kept sorted: i.e.
-// if [a,b], [c, d] are two adjacent nodes in the list in that order
-//  then b<c
-//
-//Allocating memory of size sz:
-//find the "first" node [a, b] such that b-a >= sz-1
-//     -if b-a == sz-1, then erase the node [a, b]
-//     -if b-a > sz-1, then reset a = a+sz
-//     -if no such node [a, b] is found, memory can not be allocated!    
-//
-//Deallocating a memory beginning at location "toRemove" of size "sz":
-//find the first node [a, b] in free list such that toRemove < a
-//     -if such a node is found
-//         -if a == toRemove + sz, then "combine" the two memory locations
-//          i.e, set a = toRemove
-//         -else insert a new node [toRemove, toRemove+sz-1] before [a, b]
-//     -no such node is found => insert [toRemove, toRemove+sz-1] at the end
-
-void TraceCache::memoryInitialize(){
-  memStart = (uint64_t)&dummyFunction;
-  memEnd = (uint64_t)&dummyFunction+globalMemSize*4;
-  std::cerr<<"Dummy address :"<<(void *)memStart<<"\n";
-  freeMemList.push_back(std::make_pair(memStart, memEnd));
-}
+  int sz = trace.size();
 
-//allocate the first free memory
-//returns 0 if no memory can be assigned
-uint64_t TraceCache::getMemory(int sz){
-  //find a pair in freeMemList whose range>sz
-
-  sz *= 4; //changing sz to bytes!
-
-  assert(sz>0 && "memory of zero size requested!");
-  for(std::list<std::pair<uint64_t, uint64_t> >::iterator LI =
-        freeMemList.begin(), LE = freeMemList.end(); LI!=LE; ++LI){
-
-    if(LI->second - LI->first >= sz-1){
-      uint64_t temp = LI->first;
-
-      //reassign the pair
-      if(LI->second - LI->first == sz-1)
-        freeMemList.erase(LI);
-      else
-        LI->first += sz;
-      
-      return temp;
-    }
+  while(isLimitSet && currSize+sz>limit){
+    if(currSize == 0)
+      return false;
+  
+    //erase first addr from queue
+    assert(allocationOrder.size()>0 && "No entries in trace!");
+    uint64_t addr = allocationOrder.front();
+    allocationOrder.pop_front();
+    removeTrace(addr);
   }
   
-  return 0;
-}
+  uint64_t traceStartAddr = mm->getMemory(trace.size());
 
-void TraceCache::freeTraceMemory(uint64_t toRemove, int size){
-  //iterate over the free list, until find nodes (a, b), (c, d)
-  //such that b < toRemove < c
-  
-  size *= 4; //changing sixe to bytes!
+  if(traceStartAddr == 0) return false; //could not allocate space!
 
-  assert(size>0 && "Non positive size of memory!"); 
+  //copy trace to the memory
+  vm->copyToVM(trace, traceStartAddr);
+ 
+  traces[instAddr] = traceStartAddr;
+  traceId[traceUniqId] = traceStartAddr;
+  reverseTraceId[instAddr] = traceUniqId;
+  traceSize[instAddr] = sz;
+  reverseMap[traceStartAddr] = instAddr;
+  currSize += sz;
 
-  for(std::list<std::pair<uint64_t, uint64_t> >::iterator LI =
-        freeMemList.begin(), LE = freeMemList.end(); LI!=LE; ++LI){
-    
-    //since the list is sorted: insert it at first location
-    //which is greater than toRemove
-    if(toRemove < LI->first){
-      assert(toRemove + size-1 < LI->first && 
-             "Cannot have overlapping memory locations");
-        
-      if(toRemove + size == LI->first){
-        //combine the two free areas
-        LI->first = toRemove;
-        return;
-      }
-      freeMemList.insert(LI, std::make_pair(toRemove, toRemove+size-1));
-      return;
-    }
-  }
+  //add instAddr to queue
+  allocationOrder.push_back(instAddr);
   
-  //toRemove MUST have been the largest!!!
-  freeMemList.push_back(std::make_pair(toRemove, toRemove + size - 1));
-}
+  //copy the first instruction of the trace in the original code
+  //and write a jump instruction in its place
+  tracesFirstInstruction[instAddr] = 
+    std::make_pair(vm->readInstrFrmVm(instAddr), 
+                   vm->readInstrFrmVm(instAddr+4));
+
+  //Now write branch instruction with target as 
+  //traceStartAddr at the address instAddr
+  vm->writeBranchInstruction(instAddr, traceStartAddr);
 
-//add an array of instructions (trace[]), whose first instruction
-//has address instrAddr in the original program
-//size of array is sz (number of instructions)
-// returns false if cannot assign space to trace
+  //now set correctly all branches
+  vm->setBranches(branchMap, traceStartAddr);
+
+  //set correctly all calls
+  vm->setCalls(callMap, traceStartAddr);
+
+  doFlush(traceStartAddr, traceStartAddr+4*sz);
 
+  return true;
+}
+/*
 bool TraceCache::addTrace(uint64_t instAddr, unsigned int trace[], 
                           int sz, std::vector<uint64_t> &inBranches, 
                           std::vector<std::pair<uint64_t, uint64_t> > &outBranches, int traceUniqId){
@@ -201,11 +143,12 @@
     removeTrace(addr);
   }
   
-  uint64_t traceStartAddr = getMemory(sz);
+  uint64_t traceStartAddr = mm->getMemory(sz);
 
   if(traceStartAddr == 0) return false; //could not allocate space!
 
-  copyToVM(trace, traceStartAddr, sz);
+  //copy trace to the memory
+  vm->copyToVM(trace, traceStartAddr, sz);
  
   traces[instAddr] = traceStartAddr;
   traceId[traceUniqId] = traceStartAddr;
@@ -217,52 +160,19 @@
   //add instAddr to queue
   allocationOrder.push_back(instAddr);
   
-  //for every inBranch, change branch address to trace
-  for(std::vector<uint64_t>::iterator VI = inBranches.begin(), 
-        VE = inBranches.end(); VI!=VE; ++VI){
-    changeAddr(*VI, traceStartAddr);
-    inMaps[traceStartAddr].push_back(*VI);
-    //later, when trace is removed,
-    //point all addresses in inMaps[trace] to point to 
-    //reverseMap[trace]
-  }
-
-  //for outgoing branch addresses in traceCache
-  //change addresses within the trace that point to 
-  //instAddr to now point to trace
-  for(std::vector<uint64_t>::iterator VI = outMaps[instAddr].begin(), 
-        VE = outMaps[instAddr].end(); VI!=VE; ++VI){
-    changeAddr(*VI, traceStartAddr);
-    inMaps[traceStartAddr].push_back(*VI);
-    //later when trace is removed, point all addresses in 
-    //inMaps[trace] to point to 
-    //reverseMap[trace]
-  }
-  
-  //For every outgoing branch, see if its in the trace
-  //if in the trace => change to one in the trace
-  //if not in trace => add the addr of outgoing branch 
-  //       to outMap[branch]
-  for(std::vector<std::pair<uint64_t, uint64_t> >::iterator VI = 
-        outBranches.begin(), VE = outBranches.end(); VI!=VE; ++VI){
-    uint64_t branchAddr = getBranchAddr(*VI);
-    assert(VI->second > (uint64_t)trace && 
-           "The outBranch reference is erroneous");
-    uint64_t addrTarget = (VI->second-(uint64_t)trace)+traceStartAddr;
-    if(hasTraceAddr(branchAddr)){ 
-      changeAddr(addrTarget, traces[branchAddr]);
-      inMaps[traces[branchAddr]].push_back(addrTarget);
-    }
-    else{
-      outMaps[branchAddr].push_back(addrTarget);
-      //set the target right in existing one
-      changeAddr(addrTarget, branchAddr);
-    }
-  }
+  //copy the first instruction of the trace in the original code
+  //and write a jump instruction in its place
+  tracesFirstInstruction[instAddr] = 
+    std::make_pair(vm->readInstrFrmVm(instAddr), 
+                   vm->readInstrFrmVm(instAddr+4));
+
+  //Now write branch instruction with target as 
+  //traceStartAddr at the address instAddr
+  vm->writeBranchInstruction(instAddr, traceStartAddr);
 
   return true;
 }
-
+*/
 void TraceCache::removeTrace(uint64_t n){
   //if no trace, do nothing
   if(traces.find(n) == traces.end())
@@ -270,31 +180,11 @@
 
   uint64_t toRemove = traces[n];
 
-  //restitch
-  for(std::vector<uint64_t>::iterator VI = inMaps[toRemove].begin(), 
-        VE = inMaps[toRemove].end(); VI!=VE; ++VI){
-    assert(reverseMap[toRemove]==n && "two addresses should match!");
-    changeAddr(*VI, n);
-  }
-
-  inMaps.erase(toRemove);
-
-  //remove entries of this trace from every outMaps
-  for(std::map<uint64_t, std::vector<uint64_t> >::iterator MI = outMaps.begin(), 
-        ME = outMaps.end(); MI!=ME; ++MI){
-    bool changed=true;
-    while(changed){
-      changed=false;
-      for(std::vector<uint64_t>::iterator VI = MI->second.begin(), 
-            VE = MI->second.end(); VI!=VE; ++VI){
-        if(*VI>=toRemove && *VI<toRemove+4*traceSize[n]){
-          MI->second.erase(VI);
-          changed=true;
-          break;
-        }
-      }
-    }
-  }
+  //put back the original instruction at n
+  assert(tracesFirstInstruction.find(n) != tracesFirstInstruction.end() && 
+         "Starting instruction not found!");
+  vm->writeInstToVM(n, tracesFirstInstruction[n].first);
+  vm->writeInstToVM(n+4, tracesFirstInstruction[n].second);
 
   //remove n from queue
   std::list<uint64_t>::iterator LI = std::find(allocationOrder.begin(), 
@@ -303,7 +193,7 @@
     allocationOrder.erase(LI);
 
   //free up memory in tracecache
-  freeTraceMemory(toRemove, traceSize[n]);
+  mm->freeTraceMemory(toRemove, traceSize[n]);
   
   currSize -= traceSize[n];
   //remove allocated spaces to n
@@ -312,68 +202,11 @@
   reverseTraceId.erase(n);
   traceSize.erase(n);
   reverseMap.erase(toRemove);
-
-}
-  
-
-//two kinds of branches being handled for now
-//BIcc, and BPcc instructions
-//(sparcV9 manual, pg 146-150)
-
-//#define isBranchInstr(y) ((y & 0xc0000000) == 0)
-//#define isNonDepJump(y) ((y & 0x01c00000) == 4194304)
-//#define isDepJump(y) ((y & 0x01c00000) == 8388608)
-
-//#define getNonDepJmpTarget(y, oldAdd) (oldAdd+4*(((y&262144)==262144) ? ((y&0x0007ffff)|0xfffffffffff80000) : (y&0x0007ffff)))
-//#define getDepJmpTarget(y, oldAdd) (oldAdd+4*(((y&2097152)==2097152) ? ((y&0x003fffff)|0xffffffffffc00000) : (y&0x003fffff)))
-
-//#define getDepJumpInstr(a, to, pc) ((a&0xffc00000)|(((to-pc)/4)&0x003fffff))
-//#define getUndepJumpInstr(a, to, pc) ((a&0xfff80000)|(((to-pc)/4)&0x0007ffff))
-
-void TraceCache::changeAddr(uint64_t frm, uint64_t to){ 
-  unsigned int instr = readInstrFrmVm(frm);
-  //std::cerr<<"Instruction at: "<<(void *)frm<<" Is:"<<(void *)instr<<"\n";
   
-  //check if instr is a jump
-  assert(isBranchInstr(instr) && "Not a jump instruction");
-
-  //std::cerr<<"\t frm Address: "<<(void *)frm<<"\n";
-  //std::cerr<<"\t to address: "<<(void *)to<<"\n";
-  
-  if(isNonDepJump(instr)){     
-    unsigned int newInstr = getUndepJumpInstr(instr, to, frm);
-    writeInstToVM(frm, newInstr);
-    std::cerr<<"New instruction:"<<(void *)newInstr<<"\n"; 
-  }
-
-  else if(isDepJump(instr)){      
-   unsigned int newInstr = getDepJumpInstr(instr, to, frm);
-   writeInstToVM(frm, newInstr);
-   std::cerr<<"New instruction:"<<(void *)newInstr<<"\n";
-  }
+  tracesFirstInstruction.erase(n);
 
-  else
-    assert(0 && "This jump/branch not yet handled!");
 }
-
-
-uint64_t TraceCache::getBranchAddr(const std::pair<uint64_t, uint64_t> &n){
-  
-  unsigned int instr = readInstrFrmVm(n.second);
   
-  assert(isBranchInstr(instr) && "Not a branch Instr");
-  
-  //only handles BIcc and BPcc instructions for now
-  //(sparcV9 manual, pg 146-150)
-  if(isNonDepJump(instr))
-    return getNonDepJmpTarget(instr, n.first);
-  else if(isDepJump(instr))
-    return getDepJmpTarget(instr, n.first);
-  
-  assert(0 && "This branch type is not yet handled!");
-}
-
-
 #undef ANAND_TRACE_CACHE_TEST_CODE
 #ifdef ANAND_TRACE_CACHE_TEST_CODE
 
@@ -438,8 +271,8 @@
   std::cerr<<nn<<" after f()\n";
 
   close(fp);
-  std::cerr<<"Dummy addr: "<<(void *)&dummyFunction<<"\n";
-  return (uint64_t)&dummyFunction;
+  //std::cerr<<"Dummy addr: "<<(void *)&dummyFunction<<"\n";
+  //return (uint64_t)&dummyFunction;
 }
 
 
@@ -452,3249 +285,6 @@
   return a;
 }
 #endif
-//this provides space for traces!
-int dummyFunction(int i){
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-    for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  for(int j=0; j<20; j++){
-    if(j>10)
-      i+=1;
-    else
-      i+=2;
-  }
-  return i;
-}
+
 
   





More information about the llvm-commits mailing list