最长的代码加上两个数字[关闭]


38

任务:

我知道我们都可以使用来简单地将两个数字相加+。您的任务是创建可以添加两个输入数字的最长代码。

规则:

  • 所有代码都必须是主题(不要用非添加代码来填充长度)
  • 该计数以字符为单位,但不计算制表符,空格或换行符。
  • 不要使用多余的变量名
  • 这是,所以最长的答案是成功的!

2
输入数字的范围(最大和最小)是多少?该程序是否可以使用整数或浮点数?是否期望增加负数?有没有特定的输入格式?(例如,数字系统?即十进制/二进制等)
ace_HongKong独立

3
是否a + b - b + b...算?这将是无限的
phuclv 2014年

1
可证明,将两个数字相加的最长算法是(无足轻重)无限。对于这个问题,获胜者应该是最具创造力和circuit回曲折的人(这是一个挑战),而不仅仅是最长寿的(不是)。
J ...

我们是否应该不计算任何空格和换行符,或者仅计算功能程序不需要的空格和换行符?我想说后者会更聪明。
nyuszika7h 2014年

1
@LưuVĩnhPhúc如果将其设为无穷大,我认为这等于a + b/2,而不是a + b(类似于Grandi的系列)。
Tim S.

Answers:


6

C ++超过3x10 ^ + 618(不带空格,制表符或换行符)

这段代码花了更多的数学而不是逻辑!在计算字节数

短代码

#include<iostream>
#include<conio.h>
long double sumofxandy(long double,long double);
int main()
{
    long double x,y;
    cin>>x>>y;
    sumofxandy(x,y);
    getch();
    return 0;
}
long double sumofxandy(long double x,long double y)
{
    ...
    ...
    ...
    if(x==0)if(y==-1)return -1;
    if(x==0)if(y==0)return 0;
    if(x==0)if(y==1)return 1;
    ...
    ...
    ...
    ...
    if(x==1)if(y==0)return 1;
    if(x==1)if(y==1)return 2;
    ...so....on.
}  

输出值

真的吗 认真!你想看输出吗?此代码将花费数周的时间来编写,而编译则要花费数月!


4
偷..错了,我
要买

@RichardA BTW罢工标签是'<strike>'而不是<s>
Mukul Kumar 2014年

1
@TheDoctor新用户(1天-2个月大)永远不会看不起他们对第一答案give'em投票和其他问题的迷恋
Mukul Kumar

1
您的代码中有错误。如果x还是y不是整数?
科尔·约翰逊

1
可惜的是,由于使用了很长的时间,这个答案被接受了,而这个想法已经出现在下面投票最多的共产国际的答案中。
justhalf 2014年

148

C-2,739,341,494,945,868,415,002(不包括空格)

蛮力夺冠。仅处理整数,并保留溢出行为。这是一段代码:

int addnumbers(int x, int y)
{
    if (x == -2147483648 && y == -2147483648) return 0;
    if (x == -2147483648 && y == -2147483647) return 1;
    if (x == -2147483648 && y == -2147483646) return 2;
    if (x == -2147483648 && y == -2147483645) return 3;
    if (x == -2147483648 && y == -2147483644) return 4;
    if (x == -2147483648 && y == -2147483643) return 5;
    if (x == -2147483648 && y == -2147483642) return 6;
    if (x == -2147483648 && y == -2147483641) return 7;
    if (x == -2147483648 && y == -2147483640) return 8;
    if (x == -2147483648 && y == -2147483639) return 9;
    if (x == -2147483648 && y == -2147483638) return 10;
    if (x == -2147483648 && y == -2147483637) return 11;
    if (x == -2147483648 && y == -2147483636) return 12;
    if (x == -2147483648 && y == -2147483635) return 13;
    if (x == -2147483648 && y == -2147483634) return 14;
    if (x == -2147483648 && y == -2147483633) return 15;
    if (x == -2147483648 && y == -2147483632) return 16;
    if (x == -2147483648 && y == -2147483631) return 17;
    if (x == -2147483648 && y == -2147483630) return 18;
    if (x == -2147483648 && y == -2147483629) return 19;
    if (x == -2147483648 && y == -2147483628) return 20;
    if (x == -2147483648 && y == -2147483627) return 21;
    if (x == -2147483648 && y == -2147483626) return 22;
    if (x == -2147483648 && y == -2147483625) return 23;
    if (x == -2147483648 && y == -2147483624) return 24;
    if (x == -2147483648 && y == -2147483623) return 25;
    if (x == -2147483648 && y == -2147483622) return 26;
    if (x == -2147483648 && y == -2147483621) return 27;
    if (x == -2147483648 && y == -2147483620) return 28;
    if (x == -2147483648 && y == -2147483619) return 29;
    if (x == -2147483648 && y == -2147483618) return 30;
    if (x == -2147483648 && y == -2147483617) return 31;
    if (x == -2147483648 && y == -2147483616) return 32;
    if (x == -2147483648 && y == -2147483615) return 33;
    if (x == -2147483648 && y == -2147483614) return 34;
    if (x == -2147483648 && y == -2147483613) return 35;
    if (x == -2147483648 && y == -2147483612) return 36;
    if (x == -2147483648 && y == -2147483611) return 37;
    if (x == -2147483648 && y == -2147483610) return 38;
    if (x == -2147483648 && y == -2147483609) return 39;
    if (x == -2147483648 && y == -2147483608) return 40;
    if (x == -2147483648 && y == -2147483607) return 41;
    if (x == -2147483648 && y == -2147483606) return 42;
    if (x == -2147483648 && y == -2147483605) return 43;
    if (x == -2147483648 && y == -2147483604) return 44;
    if (x == -2147483648 && y == -2147483603) return 45;
    if (x == -2147483648 && y == -2147483602) return 46;
    if (x == -2147483648 && y == -2147483601) return 47;
    if (x == -2147483648 && y == -2147483600) return 48;
    if (x == -2147483648 && y == -2147483599) return 49;
    if (x == -2147483648 && y == -2147483598) return 50;
    if (x == -2147483648 && y == -2147483597) return 51;
    if (x == -2147483648 && y == -2147483596) return 52;
    if (x == -2147483648 && y == -2147483595) return 53;
    if (x == -2147483648 && y == -2147483594) return 54;
    if (x == -2147483648 && y == -2147483593) return 55;
    if (x == -2147483648 && y == -2147483592) return 56;
    if (x == -2147483648 && y == -2147483591) return 57;
    if (x == -2147483648 && y == -2147483590) return 58;
    if (x == -2147483648 && y == -2147483589) return 59;
    if (x == -2147483648 && y == -2147483588) return 60;
    if (x == -2147483648 && y == -2147483587) return 61;
    if (x == -2147483648 && y == -2147483586) return 62;
    if (x == -2147483648 && y == -2147483585) return 63;
    if (x == -2147483648 && y == -2147483584) return 64;
    if (x == -2147483648 && y == -2147483583) return 65;
    if (x == -2147483648 && y == -2147483582) return 66;
    if (x == -2147483648 && y == -2147483581) return 67;
    if (x == -2147483648 && y == -2147483580) return 68;
    if (x == -2147483648 && y == -2147483579) return 69;
    if (x == -2147483648 && y == -2147483578) return 70;
    if (x == -2147483648 && y == -2147483577) return 71;
    if (x == -2147483648 && y == -2147483576) return 72;
    if (x == -2147483648 && y == -2147483575) return 73;
    if (x == -2147483648 && y == -2147483574) return 74;
    if (x == -2147483648 && y == -2147483573) return 75;
    if (x == -2147483648 && y == -2147483572) return 76;
    if (x == -2147483648 && y == -2147483571) return 77;
    if (x == -2147483648 && y == -2147483570) return 78;
    if (x == -2147483648 && y == -2147483569) return 79;
    if (x == -2147483648 && y == -2147483568) return 80;
    if (x == -2147483648 && y == -2147483567) return 81;
    if (x == -2147483648 && y == -2147483566) return 82;
    if (x == -2147483648 && y == -2147483565) return 83;
    if (x == -2147483648 && y == -2147483564) return 84;
    if (x == -2147483648 && y == -2147483563) return 85;
    if (x == -2147483648 && y == -2147483562) return 86;
    if (x == -2147483648 && y == -2147483561) return 87;
    if (x == -2147483648 && y == -2147483560) return 88;
    if (x == -2147483648 && y == -2147483559) return 89;
    if (x == -2147483648 && y == -2147483558) return 90;
    if (x == -2147483648 && y == -2147483557) return 91;
    if (x == -2147483648 && y == -2147483556) return 92;
    if (x == -2147483648 && y == -2147483555) return 93;
    if (x == -2147483648 && y == -2147483554) return 94;
    if (x == -2147483648 && y == -2147483553) return 95;
    if (x == -2147483648 && y == -2147483552) return 96;
    if (x == -2147483648 && y == -2147483551) return 97;
    if (x == -2147483648 && y == -2147483550) return 98;
    if (x == -2147483648 && y == -2147483549) return 99;
    if (x == -2147483648 && y == -2147483548) return 100;
    //etc...
}

显然,这是在此处或在Pastebin上上传的最大方法,因此这是一个程序,它将生成该函数的源代码(将输出定向到文件-假设您有驱动器空间):

#include <stdio.h>

int main()
{
   int x, y;
   printf("int addnumbers(int x, int y)\n{\n");
   for (x=-2147483648;x<2147483648;x++) 
   {
      for (y=-2147483648;y<2147483648;y++) 
      {
         printf("\tif (x == %d && y == %d) return %d;\n", x, y, x+y);
      }
   }
   printf("}\n");
}

我为长时间的功能感到震惊...

编辑:重新计算分数(应该是正确的)以给出准确的计数。我更倾向于认为删除空白时我打了10²²字符。


52
您让我摘录了这段代码
丹尼斯

23
每当有人将测试驱动的开发描述为“做最少的事情以使新的测试通过”时,这种类型的代码总是会
浮现

22
您知道如果使用,您可以将其延长else if
Radiodef 2014年

40
您还可以为每个整数(LEFT_SIDE_NEG_2147483648 = -2147483648)定义单独的命名常量。您知道,最好使用描述性名称而不是硬编码值。
杰森C

35
他们是否按代码行向您付款?
Pieter Witvoet 2014年

20

C ++,3573

3573,当时变得无聊,但我可以继续添加更多抽象层。

#include <iostream>
#include <vector>

class Number
{
public:
   typedef int Representation;
   class InvalidNumber
   {
   };

   Number();
   Number( const InvalidNumber& invalid );
   explicit Number( const Representation& v );
   friend Number operator + ( const Number& rop, const Number& lop );

   bool operator == ( const Number& v );
   bool operator != ( const Number& v );
   bool operator == ( const Representation& v );
   bool operator != ( const Representation& v );

   bool IsValid() const;
   Representation GetRepresentation() const;
private:
   Representation mValue;
   bool mValid;
};

Number::Number()
   : mValue { 0 },
     mValid { false }
{
}

Number::Number( const Number::InvalidNumber& invalid )
   : mValue { 0 },
     mValid { false }
{
}

Number::Number( const Representation& v )
   : mValue { v },
     mValid { true }
{
}

bool Number::IsValid() const
{
   return mValid;
}

Number::Representation Number::GetRepresentation() const
{
   return mValue;
}

bool Number::operator == ( const Number& v )
{
   return ( v.mValid == mValid ) && ( v.mValue == mValue );
}

bool Number::operator != ( const Number& v )
{
   return ( v.mValid != mValid ) || ( v.mValue != mValue );
}

bool Number::operator == ( const Number::Representation& v )
{
   return ( mValid ) && ( v == mValue );
}

bool Number::operator != ( const Number::Representation& v )
{
   return ( !mValid ) || ( v != mValue );
}

Number operator + ( const Number& rop, const Number& lop )
{
   if( rop.mValid && lop.mValid )
   {
      return Number { rop.mValue + lop.mValue };
   }
   else
   {
      return Number { Number::InvalidNumber() };
   }
}

Number NumberParser( const char* numberString )
{
   const char* p = numberString;
   while( *p != '\0' )
   {
      if( !isdigit( *p ) )
      {
         return Number { Number::InvalidNumber() };
      }
      ++p;
   }
   Number::Representation value = atoi( numberString );
   return Number { value };
}

std::ostream& operator<< ( std::ostream& os, const Number& num )
{
   if( num.IsValid() )
   {
      os << num.GetRepresentation();
   }
   else
   {
      os << "Invalid number";
   }
   return os;
}

class SimpleOperation
{
public:
   typedef Number Result_t;
   typedef Number Parameter_t;
   virtual ~SimpleOperation();
   virtual Result_t operator()( const Parameter_t&, const Parameter_t& ) = 0;
};

SimpleOperation::~SimpleOperation()
{

}

class AssociativeOperation : public SimpleOperation
{
};

class SimpleSum : public AssociativeOperation
{
public:
   virtual Result_t operator()( const Parameter_t&, const Parameter_t& );
};

SimpleSum::Result_t SimpleSum::operator()( const Parameter_t& a, const Parameter_t& b )
{
   Result_t res = a + b;
   return res;
}

class PackOperation
{
public:
   AssociativeOperation::Result_t operator()( const std::vector<AssociativeOperation::Parameter_t>& );
   virtual AssociativeOperation& getOperation() = 0;
};

AssociativeOperation::Result_t PackOperation::operator()( const std::vector<AssociativeOperation::Parameter_t>& parameters )
{
   AssociativeOperation& operation = getOperation();
   AssociativeOperation::Result_t tempResult = AssociativeOperation::Result_t { 0 };

   for( auto param : parameters )
   {
      tempResult = operation( tempResult, param );
   }
   return tempResult;
}

class PackSum : public PackOperation
{
public:
   virtual AssociativeOperation& getOperation();
private:
   SimpleSum mSum;
};

AssociativeOperation& PackSum::getOperation()
{
   return mSum;
}

void print_usage()
{
   std::cout << "Sum operator1 operator2\n";
   std::cout << "print the sum of the operator \n";
}

void print_parsingError( int argIndex )
{
   std::cout << "Error while parsing argument " << argIndex << "\n";
   std::cout << "Aborting...\n";
}

void print_result( Number res )
{
   std::cout << res << "\n";
}

int main( int argc, char* argv[] )
{
   if( argc < 3 )
   {
      print_usage();
      return 1;
   }
   std::vector<Number> addends;
   int opIdx = 1;
   while( opIdx < argc )
   {
      Number n = NumberParser( argv[opIdx] );
      if( n == Number::InvalidNumber() )
      {
         print_parsingError( opIdx );
         return 1;
      }
      addends.push_back( n );
      opIdx++;
   }
   PackOperation* op = new PackSum();
   Number result = ( *op )( addends );
   delete op;
   print_result( result );
   return 0;
}

7
可怕的是,这类似于我在公司中看到的用于执行如此普通任务= d的代码。
塞达利斯2014年

12

Ruby,29048(可以根据需要提高,但我必须在帖子的字符数限制下使用它)

require 'zlib'

# gzip deflated data
data = "x\x9C\x01\xA3'\\\xD8x\x9C\x01\x98'g\xD8x\x9C\x01\x8D'r\xD8x\x9C\x01\x82'}\xD8x\x9C\x01w'\x88\xD8x\x9C\x01l'\x93\xD8x\x9C\x01a'\x9E\xD8x\x9C\x01V'\xA9\xD8x\x9C\x01K'\xB4\xD8x\x9C\x01@'\xBF\xD8x\x9C\x015'\xCA\xD8x\x9C\x01*'\xD5\xD8x\x9C\x01\x1F'\xE0\xD8x\x9C\x01\x14'\xEB\xD8x\x9C\x01\t'\xF6\xD8x\x9C\x15\xD0S@%\x8A\x02@\xD1\\\x93m\xE3d\xDB\xB6m\xDB\xB6\xED\x9Al\xDB\x93m\xDB\xB6m\xFB\xBD\xFB\xB5\xBE\xF7\xF6\xC8\x06~\x05@\xAD{d\x03_\x01P\xFEc\x1F\x80\xFF\x1F+\x00\xCA\xFF\x98\x04\xB0\xFCG\x1F\x80\xFF?\x9A\x01R\xFFQ\tP\xFD\x8F<\x80\xC1\x7F$\x03\xAC\xFF#\x12\xE0\xF6\x1F~\x80\xC0\xFFp\x06\xC4\xFC\x87\x05 \xED?t\x01\x85\xFF\xA1\x04\xA8\xF9?h+\xC6\xC2dQ \x02\xF36r\xE96\x9B-\xB6\x9B+&\x9B-\xD7I\xB6\x9B\xE91I\x9C\xEB\xB5\xAF7e\xCF(//S\xE0h\x85g\xBBwS\xE0\xA6e\xE9\x1F\b\xD8Q)\xBF\x84\xC5k\x9F\b.Q\xD1\xBF\x01%\x1E?\xF1\xF6Ns\xD3\xBF\x8F\x02qw\x04\xE6G\xBD\xBF\xA0\x12r\x0F\x04\xFE\xE3\xE7\xBF\xC6\xD9\xD9\x97\xFC^c\xA2\xBFE\t:\xFB\xFC\x13\xE3\xCD\xBF$\xE1[W\xFC\xC8\xE3x\xBF\b#\xE5\x15\x88~4\x98cA\xEF+36Y\xDFj\x9B)\xEF3%\x10\xDD\xE7b\xBBa\x9F.Y\xDF\x86\xB7\xD3\xE4\xAD\xFDaH\x14\x1F\xF9\xD7\xBF\x8E\x02\xF6_\x8Ci\xBD\xDC\xD7\xE2\xF9\x1F?3\xF9H\xFE\xD0\x7F\xD5\xEC\xDE\x7Fh9\xB8\x10\xE7\xCAI_\x1F\xB3|\x9E\xF4\x81*\x91wN\xED3\xE7\xCB\x80\f\x8Fs\xEBXun\x8E_\xF3\xEC\xA0\xC7\xEB\xBC\x1CN\xF7\b\xF0\x1E\xA2f\x81j,qP\x9EFx\x0FoN\xCFQ\xC2\xB98\xB4\xA0a\x95\v#\xC8\xDB\xE3\xC9;\xDF\tL\xCCK\xC9rOKl\x8E\xBDs\xF8\xB6\x18\xA0\xADn\x9E\xE9\xAE\xFE\xF5\xB4;\xEA\xBF\x87\xB2\xF4\xD6=\xDC\xDEl\xBA\x10\x8B\xED\x10\xF8\\7\xDE\x9A\x90p\xE5\xD1\xF3/\xCF\xAD\x96\x13\xC9\x15\xCB\xC3\x84U\xCB#\x19\xE2\x0E\xDB\x83wt\xB8\xFF\x99[c\xDD%(y\xCB\xDB#\xAC\x956\xE1l\xE6\xCF\xDB\xFF\xF4\xF1\x8A\xC8\x03\xCA\\e\x91L\xCD\a@\x87u\xAD\x1EZZ\xB2\xFEB\x999\x97l8\xEB\xC4q.\xF3\xC5\x19\x1Fk\xD6\x95\xC17:\xEAI \x93?\x91(\xEDG\x0E^\x0EW\xA4\xF0\xB4\xFD\x9D\xAC\x8B\x1A\x9Fqw\x8B)J\xF2\xEB0\xE1\x01\xD0\xC4\x04\x13@/M\xEB\x13*$w?\x95fmS\xBF]>\xB7\xD9\xA4\xF8[\x1E?\xF0\xE7m|\x89\x1C\xD0-\xE7\xF7h\xDF\xC3\xC0\xF0\xC4\x12\x06\xF9\xF0\xCD\xDD\xE9\xFB\x94\x1A\x98:\x98\xD6\xAF\xC6YH\x1A2\xF0\xF2\xF9\r\xFE\x94O\xEEtm\x8F\xB7\x92xL\x88\xEA\xF9\x1CM\xA5\x89\x8D\xC4<9\xA1\x95\tJ\xE4\xDA\xF2U\xE3\x84uO\xD3\x84\xC6CN\x87\xFC{a\x99\xF9\x9D|g\xD31\xD8+*\x16\xF2YD!F\xEC\x8D[\xFA\xD3\xBE.Rs\xAD\xBC\x05\x81T\x11\x1FLJn]H\ev\xFAvB?\x99S7\x9Ad8X\xC0s\x93\xF6\x12\xB4\x8C\\\xEE)\x90\"Y`\xE5\xC7\xE6\xA4\xF1\xC1\xB0\xFE\x128V\x1A6\xE9\\\xDF\xBFVM\xAEa(\x8E\xEC .\xC4^)$B~^\xAD\x9A2\x8E\x84\x05J\x04\xCF\xA8\xD2\x82\xB4-\x06RvfU? \x02j\xF0\xDE\e\xCC\xD3\x1FW\xAA\xF2\xD6\xCD\xB21a\x8D\xCE\xC7\xAC\xC6eH\xA2\xF6E\x97\xE9\x1D\x1F\x1A2\x85\xFF\xC7\xD5'\xA2\xDD\xCE\xEBk\x11l\x93\xB1\a)/\xA1i\xBF\x9E\xE3\x82m\xF8|\x9E\x13Y#\xE5\x9C\xED0p\f\xC3\x97_\xBEB\xFE\xB0\xE4\xF0\xC4\xF5bu\x84n\x16\xF2\x12\xBE\xFE\x05<\xDD\xB5\x8E\xDE\xCAq\e\xB6\x17\xDE$\x1F\xD4V8Le\xDC\xDB\xC2\xAB\xF1\x03\xCE\xEF\xA22\xDD\xE3cxt\xB8\xD9\x97*d{\x8F\xC7\xF0\x9F\xF5\xB7L\x8D\xED\t V\x1D\b\xABz\xF2\x82\xFB\xFE\xE0~/z\x7F\xCA\xD2\xF2\x1F\x01\xEDD\x9CM\xDE4t\xFE|\xAF\xE3\xC8\x90E\xB8\\\xAC\xFDs\xFB\xDF:\xF0h\xE5K\x18\xD3\x14\x80\xDC\xB8we\xA2!\x83\r\xF71\x9C\x82\xA9K\x84\xB0\x98b\x13\x85\xAF\xD4\x10\xF0\xC0\x05\x94\t\xA1j\xF4v\xA7\x7F\xD8\x89\x18\aj\xAD<Ymvv\xC7\xA9L\xC7\xE2\x93\xFE}F&\n\xDD\bE\x9B\xDC^jW/g\xDA\xF5\xA6\x87\v\xE3\e`d\xC7\x9F\xF1\v\xCA\x9As\xA0\xB3\r\xDCt\xC1\x9AL\xEDU\xCF\x03\xAD\x181\x18|?\x16\xF2\xB7\xCD\xC1x=B\xB4'\xD0E\xE8\x00\xDA\xC7F\x14\xD1H\x13%\xC18\x16\x82\xF8I\x92\xE5\xE9\aw\xFD\x93$\xB1\xB5\x98d\xD4\xBF\x9A<\x1F\xC9\x0F\xFD\xAB\x82\xF5\x0E\x92i&\bQ\xAA\x9Eb\xEDg\vF6\xC6\xC0i\xDBF\xE0\x06[U\xA8\x82\xA8\x17\xF8\xDA\xA0\xB9\xED}J\xF0>\x91\xEB\x0F\x8F\xC3\x96\xA9\xF0\x02\x9C\xA1\x1F]\xFC\xE2X\x11)\xDF\xC5F\xC1*\xD6Y\xEB\x05F\xD7VI\xCF\x1D\xBD\x1E\x13\x8EN~t\xD8(\x81\xC2\xCC\xE97\xC3\x91\xAC\x10\x18\r\xA8\x9D\xC9S\xD4\x81\"d\x81\xF9c\x8A\xF3\xDAe\xE6~\xEFan\x03\xBEQ\xB2\xFD\x9A\xFC\x13\xDCkz\xB8\xBDa\xAD\x15\xAC9\x9C>\xDC\x00\xD1\xE6\xAB\xC7\xC4\x0F\x1A\x9B\x9E:\xC3\xE2\x14\xF7\xC8hz\xC0\x1CT\x06\xC3=\xCD}j\xE7\xDD\x90\xF2\xCD!\x9E\x95\x8A6\x01\xE2\xBAfw<\xD3I\x88\x80\x80\xD8\xA8\xD3\x96\x91o\nFY\xDB\eg\x84\xB5\x0E\xEE\x04\b-\xA6\e\x05\xE5\xF1\x99\x92w\x1A\\|\xE8\xE8K\xD1\xCD\x99\xC69\xDC\x87\x16\xC4\x12uJ\x87b\x80\xDF&}\xF3\xEF\x83\xBA\x8F\x95\x9A\xCDD\x01\xA7\xC9\xB3u\xE5$\f\x05\xBD\x94\xD3\x90\x0FX\xDC\xED\xB6\x8A*9\xB7\xCE?\x0E\xDBl\xC6J\xFC\xBD-\rna\x94\x0E\x18*U\xF5\xC9\a\x197\x9A\xD9\xB9Q+,'\xDC\x1A\xBD\x83\x9DV\t\x7Fak\xBE~'\xBDb\xDAL*\x98\xF6\xB6Xbpvx\xD8\xCC\x12\xB6\xFB\xBDG\x18\xB5qE:q\xD8\xB4\xE0\x04\xBB\xAB\"\x1AF\xAB;\xC7_\xE5\x8Cg\xAFQ3\xACN\x91\f<\xAF\xE9Zh\"7\xA3N[Q93\xBA\xEFp\xDDQ@\xBC|\xF9/\xD6\x949\xD9\xCA,\xB5\xD9s\xCC\x03b@\xB7\xEE\xD8HR\x1A#%\"~\x93\x95\x7F\x90~ZR\x8Fsm\xC0\x9C\xCD%J\x00\x90\x84\x992\xE8\x87\xC9\xE2\xDCj\x1DF\x03\xC5\x19\x85\x15\xBE\xF2\xA4\xF1\xB1j\xAA\x93\xA8\xA9\x82\xD1|\xC5\xC3\xD2\xF9\xAC\x16\b\xAD\xABE|\xE7\xF9`\xE7A2;\xA8\x98\xF5:\xD0\x8C\x94\xDF\xD8\x04\xFC\a\xE3vU\xA2L\x8AnE\x8A\x12S\av\xE9\xAD\x9B\x92\xEA\xD2\xD4s\x0E\x14 \xE3\x89m'\x8EY\x95,9\xC2\xC8\xDEM\xCE\xEC_\xD3\x1Eec\xE4\x8C\xAB&\xD4\xC0\x1C\xB0\x87\x10\xE3km\xCF\x96\xBB,\n\x9B\xE8g,\xDE\x06\x03\xD4\x1FGG\x91~\x10Fw\xC1\xD1\x8A\xC7>2\xE6\xD4F\a\xC8\xDD8\xCA+\xEE\xE6s\xB6h\x87\x12\xBFL\xEE\xE8T\x96\xCD\xC4X\xB1VK\xCF&\xCE\x9C\x05Q\xD4\xC1r\xFE\x0F\xE8L\xD1\xD9\xDCb\x8F\xAA3\xE5\xBC\xD5\x8B\xBB\x8A\"Q\r\xC5\x84{\xCB|\xDB\xAC\x90\x1Ei\xD6\xE0GIc_\xDE(\xF9d\xFA\xA0\x9C.\xF7\x8Cc\n\xA4\xB9\a\xD7\xB1\xA10\xA5i\xEBW\x8B\xF5VV~\a\xEE_\x9F\x85\x18\xD3 \xC8\x14\x10\xE4\xB4\vDf\x0E&\x96\xAE\x180\xCFX\x01\xCB\x80&\x9E\xDC\xF4\xB9\rx\xB2\\i\xAA\xE5^\x9C\x15\x8FY\x10\x03H\xEB\xBC,c\xA3k\x84>\x88|\xA3K\xCFD\xE5\x92\x8Ev\x80\xE3\xED\xB2I3\x0EH-Kh%3;\xFD\x8BfS\xE0\x82z\xBF\x1E\x8A(W\xF8P\xA0\xBF\x1F$\xBA3s\f\x92\xD5w\xA4m\x1D\x0Fa\x10\x10\xF74\x02<\t\xB4$k\x15%\xD2m\x85\xB8n\t]dv\xE1\r\x93!k\x8C\xC4\xC1\xE776>a8\xAC-\x1A\x03\xC6Uj~\x8A\x91F\x0E\xEDM\xEF\x9B\xD2\xDBY\xAE\xF8K\xB7n\xA4\xD4\xA0i\xFAa\xF7\xD6\xDFn\x13s\x8E\x98`\xE3Ku`\xE9\xDD\xDB;\x8A\xDE\x0E\x87\xA7\xA4\xF4c:\xE2\xB9\xBBf*\xEE\x03\x80E\x1F\xD7\x92\xE9\xB3\x14\x18\x1D\xE3\xBF\xF0`\xE3\"\xFE\xC4d\x82eqq\xE7\x83\xB2\xFE\x8BH\x01\x8Fe\x850>V\x8A\xE2\xD50 \xCF\xAE5]\x9F\xDFdm\xF6\x9Dr\x86\xF7\xF7#z)\x87\xCE\xA1\x86\xB9\xF7\xF6XO\xC5\xD7P\x0Fx5\xA8\xD4Buj\xDD\xD7\x83\b\xE3\xBF\xEA~\xB6\xA5\xBC>\x8A\x99Gp\x87\n\xA6s\x9A\x11\xC0\xE1VD\xE0\xB4\xF3\x9A\xE9\xA5\x89\xB6\xF7oQ\xD7\xEF<\x7FB\xC9/p2\xEE\xD4\xDD\xE5;\xAAc\x1F\xECWP\xB0/\xAE:\xEE1\xF8\x9D\xEF\x94\xD1\x87i\x82it\x0E\x86\xEAA\x9C\x1A\xC7*\xFA\xAA\x05\xC8l\xCD\xD3\x84W\xB0\\\x9F\xA9\xDD\xFF\xF2`8\xDF_,\xB8\xA7q\xE07=V %\xE1\x9DX\x80\e\x15k\xCDe\x18k \xAAz\xCCb\xD3\xDD[\xAC,\xFE\xCB\x1D\xBC\xA6\xD8\xED\x7F\xC9f-\x1C\x8B\xF6\xDF\xCA\x05\xBE\xEC\x15q\xB7[=\r,R\xC5|\xAFX\xAAR\xCBd~\x8D\x1Fs\xD8Ow\xE4\x1F\x18\xF4A$\xF7k\x11\xB0\x10E\xB0>\x12\xE5\x99\x88\xF7n'\xAAPg\x1A\xD0\xC7\x1E!\xBF\x85\xBF\xF7aL\x9E\xF0\xA7\x9D\x91c\xAC-%s\xFFT\xC1\f\x84X\x1D\x06\xA8\x13\xF2T\xF0V*\x8Ay4\x84\xE8Z\x83Q\x9A\xA0D\xC1\x1D$=0\xEB?\xB4\x94\x91K\xBF\xB6\x8C\x1C\x82\xB2\xC5\xB3\x9D\xE3]\x00aU\xB4\x8F\xCB\eo\x8F\x8E\xF5\xB7.h\f+9\e\x8F5\xD8s<\x11O\xEC\x84\x02\a\x1A\xA1\xEFy\xE6\xA2d/\x03\xB7\x87ey:\x93\xC6eL0-\xA69%~\xE6C\xB7\x8A!i\xD5>b\xA2\x91\x19\xF2\xFB\xB4b\xEF\xA2E \x8Amm\xAE\x97\xDC\x98\xFAH%h\xBE\xC7\xDAk\x9E\t\x7F\xE2\xE5\xEF8\x8A\xE3\xF0\x99\x94\xA8#K\xFB\xF5s|\x13\xF6$\x9A\xDFg@\x8D\xEF.]\xDB\xFBw\xA2\xCB\n6r\x9Ex\x9A\xCC\x88\x80\xF2\xF2\xC5x)q&\xFD\xFD]\x11h\xD9M\x924\xAB\x83\xDE\xAE\xB8\x87\xDF\x93\xFF\xFB[\x8F\xBF\xCAM{#\x11I\x849\xA7\xC1\xE9-\xFD\xFA\x11\v\xE7\x13\xE0\xF8\x02\xDD%\xF6\xBD\x06\x18\x8A\xA7n\xA8rh\xD5\xFA}\x1E\xC1Gee\rrx\xC3\xA8\x80~y\xED@\x8B\x99\x91\x81\x93y\xD3\xF0\v5E\x12\xFD\x19{\xF0B\x8Fr\x12J-\x9A|x\xEF\xBD\xA8\x96\xA3_\xA8\x96\xF3-\xEB\\/\xF6\x03\xEFGf\xA6\xB1)\xF2?ex\f\r\xD7\x16\x16y\x7F\xD3\xD6j\x81\x9C\xFE\x90\xB7\xD8\xE6\x83\x02NG\xE8p\xEC,r{\v=\x03\xE0\xC9\xD6\x8A\xF1\xCD}\xBFjTf$Ezw|\xBD\x92\x03A`\vn\xB4\xE8\x86\v\x04\xDB\xCA\xEB \x8F\xDC\xFFx%|\xE5\xE7F\xD1K\xCE\x9F\x86\xD8\xA5o\xDB$\xDD\x86\x8E\xE6\xF88t\xFB\xF9\xFC#\x19\xDBtA\x1Een}\x90\xEEZndo\x99D!W\x8E\xF6\xFB\x03w8\x0E\xC6\xB2\x96f\xF2\x9C\x12Y\xFA\x84G\x8A\xF8\x1A\xB0\xAE*$\x82{\xF3\xC3\xCEc\x87\x03\xFF\xEF\xC0s\xD0&8\xA5\xF7\xC5X\x11\x1C+\xF5X\xA9\x05\x04\xDE4\x1A\xD3\xB1\xCB\x9C\x8F\\\xB7\xE5\xE2\x83\xC9\xB1\xC8\x88b \x8E\xA3\xC1+Q<\x05=\xA6d\xE9%?\x18\xA5\a;\xF5\xD9\xF8`\xC2\xAA\xE7\x1DZ\xD2\xEE\xEEw\xEA3\xC9\x9D\xE4\xDB\xFF\xBBM\xEC\xFC\x1E\xCA\xDBf\xB1\xBEE\x82\xB8A\xAC\xE5\x9Ab\xFAU\xC7\xF1!\x16z\x03\x99`\xD8\xF1D\xF2\xD0\xE1\xD2\x85\"\xDC.\xFE\x98\n\xD2\x18\x06\x81!\xBB\xA8\x01F\x0F\x0F\xDF\"\n^\xD8R\xFF\xDF\xA5\x04'<y\x95m\x97\xDA\xB6\xD9\xD2\xF4\x976\xB2\xACw\x83[\x8B\x18\xDD\x99opw\x93T\xD2.\x91O\xA8\x91\x80\x86\xB7a\xB8\xEF\xFA\xA6\xCBIB\xFD\"\x1A}\bk\xD5\x98\xA4i\xFCj\xA40\xEB-#\xF1\x17\xDF\xD3(\xB5\x85K\xE3\xDD\x94\xD9\xAA\xDBo\x94\xF4\x04\xA1;\xAC\xB0\x186[},\x1Ee \xBB\xD6V\xC1\xC4J\xD3\x00\x9D\xEDD\xA6\xC9\x87\xFA.7eN\xD4:\x9B\x85\x989N\xC5\xEE\xE4\xE2\xB5\xCBE\xE8\xF8H<\xF23\xCA\xD4\xDEy|'\xCF\xE7G,\xB3\n\x18\xC8\x81G\xA0\xDBm\x1D\xA7Q\xC5\xCF\xB3\x03a\xB1\xEF\xBAuL&\enD\x89\f\x8E\xFB\xB9\xC73mT\f\xB3\xEFJ\xC6\xA0_k3\x84}\xD1%r\xAB\xB5\xBD\x05\x01K(\xAD\n\xE1\x1D\xA0\xF4R\fA{\xF5W\xF3%\xE9\xFA\xF0\xE4\x98\xAF\x05\\c\v\x98\xB7a\x8B\xD9\xD6\"\r\xC74p\x9D\x8C\xB0:\xFD\x8E\xBB]\xEB\xC7OR\xBF\t'|B\xC1\xFC`\x85\xAF\xE8y7\x11\x82p\xA4\xFDF\xA4\xFB'iD\x95p\x88\xC9\x94\xE1\xBB\xBD\x91\xA5\xF9\xAFTL\xB1\xD4C\x01\xF3\xC7\xFE\xD0\x8C \x82})\x1E\x7F\x99\xAF\xD4%a\x03\xC1\xFE\xB7#\x11\xDA\x9F\x82\x93\xB5nq\x11|\x03\x99\xC4\xD3\xA8\xBB\xC5&<z\xE4\xFAE6c:\x02\x13r\xF3#\xB9\xB5I\x9E\x05C<\x052\x92\x7F6\v\tIt\x0E\xAA\x1C\x1Cw\xB0C\x99[\xDD\xEB\xD0\x12\x84\xED\f\xA3\xD82\xAC,d'\xB5\x12g\xD74\xFC\xF3\xE2\x8AB\xB4{r\xB7\xFE\xDB:\xFC\b2\xAA\xD5\x06\xEFS\xBB,\x834\xE2\xB7D\xD4x\xB9!\e\xA1\x10\xE1#\xF3_\xA6\x9F[\xA5\xFE7g\x8A&_/`\xC4\xAD\x8FB\xE5\xFC.\x96\xB0\vn\xB6c\x17\xF1\x8F\x1E{r=\xABQ\xE0 \x1C\xC7\x1A\xFC\xE5w\xEEbl/lW\xBB\x9B\xE6\xA6\xAF\x01<%\xF0\x12\xAA*\xB3\xEC\xF8\x84=\x16\x1D\x91:\xE3ss\xCFg\x18n\v\xD7Q\x93.\xFA\x9B-U\x86K\x06xn\xF9\xB1\xE9\x8E\x7F\x03\xDB\x91\xF1\xE1\xEC\r[\xFD\xBF[\x1Ajkpc5\x1D\xCA\xCB\xC44_\x1F\xB4\xB3\x15\xC8\xC3\x8A\xD33O~K,$\x1C@\xB2s8\x81\xFC\xBC\x89,L\xD8\xA0\xC6\xBC\xB4\x88Y\xEDE\xF9~\xC805\nAc\xFE~\x11\xDF\xBA&\xA1591\xDC]\xD6\xE8\xA5D\xE1\xD0}>\xAA\x9A\xF8\x19\t\xCB\xD6s\xEA=\x99=\xDBac\x81R\xD9\xBBN\xB4S\x95\x1A\xF9\tpz\xFD\x8D\xFF\x90#|\xF5:\xE4#\xE8\x8F\xFA\xA7Y\xF6%\x82\r\x97X#wTS1b\xFE\xA2I\x1D}\x97\x88\xAC\xD6\x17\xB3\xA2\xB6~\xF0#X\xE1\xF6\xDA\xBC'G\xF1!\x8F*\xC3nb\xA5\x80\x9D\x81.\x14\xA0\xF3\xD8\x9E^$\x89\x7F\xB9\bU@,J$\x1A\xB3\xCB\xD4\xB3|\x82*^\xCAn\xF3\xF0**V\x17\f.\xF3\xAD\x91\x1Eh\xEA\x98\xB4\xC1h\xE0\xFD\b4\xE9\x8E\xB5v\x03\x9Er\x82A\x03\vA;\xC6B\xF1\xB3\xFD\x9A\x8C:\xC2!\xBC\xB1\xDC3Z\xEA\r\x9D\xCF\"\xBE\x92mK\x9F<\x9E\x06/\xD6\xF1\xEC\xC8\xD8\xFC\x9E9\xFE\\\x99z\xDF\x90,\xA9'\x9E\x9DS\xE96\xBC\x96as\xB3x\xC9S\xCC\x96\xEAqg\x02\xA5\xDE\x17=\x80\xBC'\xAD\xF0f=\x9C\x84g:\xAD]\xA4\xE0/\x9D\xF5\xA0\xBA\x1E\xBC\xA1\x86\x99\x98\xB3\xA5\xA4\xE5j'\xB7),b\xED\aR\x96%HM\x1E\xC9\x837\xB5w-\xD9(\x17\xF5\x9B\x9D\xBC\xCB\x89\x1D\x11\x16RO\xC7f\xB1z\x16K\xBA6\xE6\xAA\xF5\x9C\xD9\x1E\xDFz:oE(\xC9\xD2m\x19\xCA\x93\xAF\xD7k\xC4\xFAB\x11N\xFCw\fp\xD6\x8B\x04\\\xBC\x04\x04v\r\xE5\xC3\xA4\xC0\x0F5\xE7\xD1\xA2\xD7\xE4\xF9\\c\x1C,\x00\x054\xCD\x94;\xF6\xF5t1\x7F\x99qj\xCF\xD8\xDC\xB83\x9C1\xB0-\\\xDFA\xE9\xF2\x00%XQ\xD7\xA3Lb\aF\xEB\xD3\xF2\xF5\x93=\x1C\x19h\x90n\xFCB\xAF\x9B\xDC\xCDo\xC0W\xCD\x0E\xC8 qO\xBA\x97<\xEF)\x98\xEB[\xB4wD\xE9\xEEQ\rD3\x97\a\xC7\x912\xD1\xE6aq'\xEC\x1A\xE4\xBF\xC9\xE093\xCF\xECy!>\x14:_\xCA\xFF\xB8\xC1u\xBF\xE7?\x90O\xEFv\aa\x8Ex\x1A\xCC\xC0\xAAO:\x84\xFF2\xA6\xA4H\b\x06]\x93N\x88\xD3\xBFx\xD5U]\x92\xC4\xE1\xC1\xDB\xC1\xFCq8Se\xE2\x931\xCD\xB7\x8C\xCF\xD4\">\a\x8DS\e\tH\xC5\xEB\rM\xDD%\x0F\xA2\xF8\x9D\xA0\nZ\xDE(\x17\xB0\xCF\xCD\xB9\xE8\x9F\xFA\xFFh#x\xCB\x8C\x1F\xC7\x19~\xCD\xB8FI1\x96\xEA\t\x02\x14\xAB\x0FV#m\x16\x92;LU\x81\xBB6\x1C\x03\xE5\x90p\xA2\xEF\xC3\x8E\xFC\x0EF\xBD\xF7{({jC\xB7<R\xB1=%\xC7\xA2\xAD\x03\xE9\x91\xE9\xF7\xAAb\n~\x92\xF7\xE1\x16\xA1]\xF2\xFD8\xA2\\0\xC7\xEA\a\xE8\x14\x1E/\xF2=X\t\xE7\x99N\x93\xFC\xB1A\x89\xD2\xED2\xAA\xF9&\xF7\xB3\xD0ls\xFC\xD23\xCB\xA1\x84%HP\xF6G3\x8B\xA0\x82ga\x82I\xFB{\bqY\xC2\x97\xD5\xF8\xCF\xD7\x99\xA9\xA6\x01\xD0\x0FH\x99*Deu\xA9\xFD|\xF6BI\xC8\xD79}\xD1\x14>~>p\xBDh[T\x88\xFDk[N\xB3\x8E\xAA\xDA<\x89\x83\xDE\xF0\xEF\x0E\xB6\xCF\x9A]\xFA\xFA\x10\xFB\x96\xFE~\xEAs\xEE\xA7\xB7|\xCC\x9C9Yh\xFC-\xFC{6W\x8B\x95\xA5-\xDC\x1C\t\x1A\x9F\xF9\xF4m\x8B#\xFB;\xE0\xA6\xA8\xA7|<\xAF\v\xE3\xF6\x10r\xBD\xCFW12\xE5E\xD6\xC1\xC2.\xD6hr\xEC\x13\xD2\x84\n\xD8\x1Eyd\xE4_\xAB\xA9K\x8D<;\x11[\\,\x04\xE2\"\x92uQ\xE3\x83\xD1zt\x16+\xE4<Y[#\x06\x8C\xD95\xAD\xF5\xD1\x1C\xE9f\xEF\x06EAW\x90\xA2jK\xFA\x9BW\xE4/\xD9\x8F\x02L\xB8\x7Fx\xD7\xCC\xAB\xFA\xCC\xF7FY\xF4$\t\x1E\xCD\xED\xAF\x99\x92(\xAC\xC2\xAF\x17e\xAC\xB0iP\xFAp\xA0}5\f2\xAFp\xFAL\xE9\xC1\x8A\xC8\x10\xDC\xE2\xD3\xD5a\xCF#e\x19\xCE\xE9S\x8A\xD4.F0?\x04 \x9CQ$z\x8E\xDD\\Q\x95\x90\x01\xEF\xBC\xD7\x88\xF5\x97\xD8\xF7g\a\x1D\xAD\xF8Z\x85\xC2\xD5\xF6\xC9'\xA2n\xB7\xA3\x9A,\xCD=K\xE4\xF8\x8A\xDE\xBF\"\x99\xBD\\GN\x99M\x89\x93\x10\xFC\xBF\xCC\x03\xEES\xAE\b)\xBC\xDE\xDB\xA6\x01+%\xBCdW![-\x91\x85|\x89 \f\x1DI\x1Fpq\xD1\xFF\x1C\xD3*3\xB3\xF4\x03\xF2\xA4\\\a\x14\xCF\xF6u*\xB3D(zS \xE6\x17\xB6d4\x99\x88\xAE\xCD\x99\xBD\xF5.\xE9\xE7G6\"\f\x00x8`9\xD7\xD9\x19\xC1\xE9\xE3\xD2\xFF\x8F+{`\x1C\xA9\xA7\x8D\x0E-\xD5\x02I\xB8\x82]B\xA2T\xA7\xB9\x18\xDB\xCA\x86]\xCC>\xB4\xC59\xB8`\xAD\x84\x17\x94\xBCg\xD1\xDB@\x1E\x93o\x0Fo?\x00\xDF\xD2\xD3\x95\x925\xAF%\xC8\x957O\x95\xC2\xD2C0\xF2Ci\xBD\xEE\xB2uZRL\xF9\tY;f\xE2\xD5!w?\xA5\xA93\x96\xBE\xB8\xD3w\x14\xED\xAB[\x94\x0F\x98\xF4\xFB\x80=f/\xDF\xAB\x05\xBD\xDA\x11\x03>\xE7\xC6\xAC-e\xDCb\xE6:\x85!<\xEC\xFF\x82\x82j\x9B\xE1\x05\xD9\x138N\x9C\x0E\xB3{\xD0\xF1\xE9\v7\b\xDF\xBDU\x176&\xFF\xD3W\xC2\xFD\x8D\xFF\x84\x03\x0E\xD87\x83\xC1\xB2\xB1\xF6S\xF19\xA9\xF0\xB2l\xA0r\x0F\xDC\xA1A\ae\xF1\x9D(\r\x97)y\x14\xEFi\xBD\xFE\xBC\xB3\e\xFB\x9B\xC4wTD\xF5\nc\x99\xBDW}lJ\x1A\xC7J0*\x8A\x9F\xD4u\xD7T\xB8\x04\xFDm\xD2\x93\xE5J\x1E\n>\xEF~\xAE\e\x9442\xD6K]\x89Y45\xBC\x9E\"P\xC0)6,)\xAB\f\xED\xF3\x9C\x85\x80\xAD\"\x8C\x8A*\xA7\xCB\xDAz\xCCk\xF8\xA2(C\xDA\xDEB\xE4\x12\xED\xDAa4\xB6\x14\xB9S\xB2\xB8!\xC1\x18eH\xB9\xD5\xF4M\xDEg`\xEE\x9B\xD4\x91\xFCl\x92\x15\xF1\"@\x7F#\x7F\xC1\x10p\xC8%C'\xF3R=\xCD\xD0\xE7|\n\xBB\xB7<\xB6\xEE\xF3X\xA2O9\xFE]+\xB0#\x91\xFA&\xD3\xE4e\x9C4\xA1\xB3\xDF\xA8r\xCF\x8F\xC8\xC3\x92\x04\x02e=T\xD6QO\x88i\x920g\xA4u\x18\a\xBB\xC1\xAAY\x13\xBA\xCDt#<\x9C\x80\x11\xE4N\xA9\xE2!W\xC2\x7Fb\x1D\xBEU\x86\xE0%\x18\xAF=a5\x96\xC4\v\xBF\x88\x86>S\x84\xC8\xEC\x9CR\xABk3\xDA\x7FXh\xA3\at\xF6\xE2\x97\xCF\xB2\x8C\xA3\xDB}b\xC9\x95\x91\xCE3\xC70\xA0\xDD[Sv \x95\n\x96\xEC\x97Ti\xE6\x91\xB9\xE9w\x96f>OH\x03x\x1C\xB4?G\e4k\xC2\x11\xA9\xB4'\xF2\x06\xAA]\xE4\x0F\x93\x98\x84t\xFA\v\xDB*\t\xB9\xDB\xC3\xEA\xF4\x81O4\xD3\xF1]6\xBA\x89\x94\xD6\x1A\x9D\xE1\xB6\xEF\xE25\x10\x1F\x16\x00QK\x06\x8B4\x17%\x95\x85\xAF\x89?^\xE6\xC1+\xAF\xFFK\x04\xE6\xBB_\x81\xCB\x93PU\xF4\x05A\x97\x99\xE7\xF7f\x9C\xD9\xE1%\xA2\xF4\xDD\xD2\xA7J:\xA4\xA3\x8E\x90\xE2\xC5\xF9F\xDAr\xC2\x96B\xEB\xAD\x8F\x84u\xEA\xDF\e\x14Y\xFEp\xAF{nJ\xBF\xE3\xE0\x17\xADRq\xB2k`\xC0\x9D\x92\b\x1D\xFE\x9CKU]\xDD2\xC2\xA8\xA08\xF0\xE2\xD1T\xAF\x97\xE5\xDEl\xC6|Ju\x88-r\xD3C\x16\xC1$\xBB,?\xA2\xF1\x95\xF5\xF6\x00\xDA\x0E]\x8E\x1D\xA3S'c\x91\xAA(\xDF/d2g\xA3\xDD\xEDp\xD8X\xB1\xDA\xD5xfn3\xBB\xD0\x9B;\x02\xDBAI\xDE)\xED7\x17\xDB5\xEEL\x137\x0E\xE7\xDC\xD0M\x98\xE2\x18\f\xE6\x19\xFE\x14\xBF.\xCF9H\ek\xF9\xC5Lz\xB8\xC8\xD3L\x95\v&\x16\fS\xB1c\xB5\xAE\x04S\x8A\x8Cgf!:gr\xBAf\x01\x8FI,\xBA\xDC\r\xAF!v\xA1\xF0)\n\xDC;)\xF9!\x84\x8E\x0F\xCE\x1A\xC89\x1A\xF2(\xA7\xF5Nu\xD6\x19\xCB\x98\xFE\xFD\x80\x89w$i\xEA\n\xA7\xB2\xCD\xDB\xD5\v$\vt\x98C/\x8E\xCF/\x83\xAE\xB3VD\xD2\xE9\xB4\x9E\xEEv\x8AV\xAAq\xAF\x8D\xED\xE4\xEFL;=\xE2\xACOf\x15R\x86WP\xFE\xD7\xA5J\xEDDl\x8B\x1A2ws\xE3udc\xA6I.\xF8p\xAE\x85\xBA\x83%\xFF\xC9\x13\xDB\xDD/v\xD2\x1FR:\x80\xDF\xAFC9\xBC\xA8\xF9i\xFC\xB1(\xCA\x13\xCB\xCFt7\\V\x90:\x13\x82$\x15\x1F\xBD\xB6\xBD>\x15\xEA\xE2K\xCB\xB2\xEF\xA2\xD1\xCD4\xF7\xF9\xCF\xDD\xBF(\xAB\xE9\xBB\x14r\x93\xA2R2\eY\r\xD8\x18<s\xC85\r\xCA\xC1_\xD7^S\xD5./\x18\xD8K\xEF\xE8\x8A\xD1\eg&\xC8\xEB\x94\xB3$dv\"b\xD67\f\xF7\x93\x13mI\xA7\xA8/Y\xC73sl\x884\x9E\xCA@\x04\x818\xAF,e\x85m\x97Hp\xAC-*#\xCC\xDE\x8CVQ\xD8\xE3\xE2\xDE0wp\xCEI%b^<Dq\x8F\x1AZb\xEB\t\xF6{\xA3\xD2\xEE\xCDp\xED\xC7\xADiv\xB0\x9C\xF3\xB5\xEC\x19\xB6\xE7\x95\xA5\x05yFf\x02\xBA]\x1A*x\x06\xE5\xDD\xE0\xC1\\\xDE!\x97\x194\xDE\xFDAPX\x19\x97(\x1C\xB0\x8F\x05\x99]mZ\x14Z\xC8\xFA\xAC\x89n\xA4EC\xF6\xC3\x0Ee\xB0\xD6\x05T\xF2z\xF7\f\xD9\x91p\xD1\xD4\x10\e\xF9\xC1\x962\xFBy\x1D\xDB\x81R\x83\xE0O\xFCF\xCC\xCC`\x06D\xC9\xF1\xD0\x1A0\x04\xA1\xD0\x0E\xEAw\xA6u\xBE\xB0\xE3/2\x9B*\xBC8i\xFBL\rLt\x920\x1E\t\x1D\x0F -\xF9w\x0F!\xCE`m\xFE\xE6\n$\x1D\xC6qp\xA8qq\xD1\xD4\x86\xA8\x83\x02\xA3\x02\x81\x83TI\x86\xBB\x12\xC0*\f\xF3^\x95\x0Ek\xFB2\xB1\xF2\x81\xBD\xC4^\x14\xFF\xF3\xBETv\xF6[\a\x83W\xB7WT5\xD0\xC1mV\vZ\x95\xF5\xDC\xAB\x97<b\x92N\xA3\x80\xF8\xDEU\xA7J\x81-*\xB4\x91\x96i\x00\xB7\n\xA9S\xF5G\xBDv\x9A\xCC\xA1\xC2P\x97\xDCc\xAC3x\xAC\x02\x17\xE0)!\xD2\x03\x90E\x1C\x04\a\x1E\x06a\x15\xBE\x8Fz\xDB_\xC5u|\xF3`\x1F#\x99\x91\x16\x00\xDDF\xD0\x82\x92\xF6\xCA3W\xAF\xA0\xD4a\xBF\xC7\x81QIm\xEE'\xA0\x9F\xBF\xCE\xA0\x9FmZ\t\xEF\x89\xEA2+\xCBp\x87\x11b\vP=\xFB\xB3\xD9\xE9\xD2\xDE\x1D\fVS\xD6\xF4NO\xF7\xC7bt>\xA8\xAE\xF0pf\xD6\t\xA8v\xFE\x00\x03 \x84V\xB6\x88%s\xB3\xA9\xDBv-\x85$\xBF\x192\xD7\xA9XY\xF9Q'\x1E>\xB2>\\y,\x84B;\x03\x16#\xFBY\xF2\xDA }\x8D\r\"M\x9D 8N\x9C,E\x8A\x16\xF9\xA8\xFB\x87\xFA\xC7\xA0/\r\x1Ed\xDE\xC6\xDCArD\x13\xD3\xD4\xFA\x89\xCA\n\xFF$\xD9\xCEB\xD4w\x8A1\x9Dm\xDDU\x18f\xCFz\xDDD\x9Dd\xFC\xA0\x95\xD1\xCC!\xA0\xE2J\x006\xF8\xE3\xF11?.U\xA2\xF2>\x05\xE7\xAD\x8BY\xCB\xF8\x89\xBB:\x17\xC8N\xDD['{\a\xF1\x1Ec:]\xAE\x100\xD2\x9E\x18\xF3X\x8C\x8EWH\x94\ry\xECf\x8B>\x1C\x90p\xEF\xF2r\xCFq\x7F\xD6\x86\xDF\x17;\xC0\x91\x9A\xEF%\xBB\xF4\x03n\xC5\x05\xE5*\xAE\xFD\x03\x94\xB3\xA81y\xB1]\xC9,4\xCA\xC4\xA9\xCEn\xFB\xD5\x9F\x8C\xF4\xFB\xB3M\"\xCA7\xE6\x16<+\xEB\xD0\x8A\x88\xB3\x17\x9C^\xEC6\xAA\x0EQ\xDA\xED+\xB6s\xD0\xE8\xB5k(%\x95~\x10z5\x86o\xE0F]\x9EB\xAD\x8D\x15g\xF4^\xE6lKQ\xD8Q\xC36\x1A\x82\xF1\xD1\xB1Q\xC5X\xF8\x84\xE8\xCC\xA0\x9B\fC\xCC\x10,\xC1{_{\xB5\x1DR( 8\x9B'8\xB4\xCD\xFFf\x8F\b\x959\xD4t\xCEH\xDF\x1FQ\xF3s\xE9\xBB\xCC=\xD4\x96(\x86\xE5\xDFt\xD7_\xA3A\xFF\x8B\xDAE\xEF#M\xDDH\x03SvHy;\x88d\xBE\x9D<\x1A\xF6\xFD|;\xE9\xB4\xCF$\a\xE6bF\x851\n\x8A=4\x95r50\x81\x89T4\x80\xA7\xABz\xDA/\xFF\xAE\xEF\xA5;\xACq\x03\e#E\x13\x06\xA6zD\xD0\xDB}+\xCF\x8Fp\x1E\x10AI\xE5\v^\xF2\xF7X\xA2HIv\xDB\xBB\xFC\xDF9\xD6t[\x94\xF7\xD9\xFE\x91\xD8\xFEZ\xC5C\x0EZ\x0F\xFF\x96\xB6\xF2~\x01'4\xAA\xA9\xD8\x11a\xD0\x9F%\xB9\xD7_\xE4\x8D0\xAAr\x80~\x10\xE5t\xC7of~\xBC\xE2pImR\xA4\xAB\xD2\xDCkx\x19\x96\xFDG\xDA\x02\x1F\xD1,\x7F\xA4C1\xC7\x95\v\x02r;\xA1^!\x90\x9B]+_\xC1\x11\x14\x13\xE8\xEE\xD3\x06\x11Fq\xC2dB\xBF}\x16c\xB4C\xAB\xA6\xDA\xD4\xD0\xFB\x86\xA6\x9B4\xF0\x85|J\xA9ES\xA3[\xCF\x0E)\"\xFA\x90\x17\x82\x82r\xB3\xD5LVJ\xD7\f=\xB1S\x9E\n=\xE3\x9B+k(\xFE\x8Eh\x1DI\xDE9\x96\xAEVlT\xB4\x97\x04j\x92S\xBD+\xD7\xB9u\xAE\xD2L\xD8\xA1\xC3\xCE\xD66n\xCEXO=\xD6\xA4s\xE4\xDB\x8F\ewz\x93\xB7\x15x\x96\xA2\xDB\xA1\x9A\x10\x92\xE1\xCE\xE7\xF5\xDA\x8E\xE50\x81\xC2@\x81\xF8\xFBru\x9Co\xF8O]\x82\x15H-\x93\xF8\xC5g\x13R\xB9\xCF',\xC1\x93\xD97\xEF^w\xB0M\xD4\x8D\xE6@\x85\xED\x9E\xE5\x9EG]\xA5\xDF\f\xE7H\xC6\xCAJ]\xE4\x9C\xE0\x9A\xB1_3%\xB7\x93\xA7\x9A\xE1\xA3H!AU\xED\xDD<a\xBB\xA7\xC6\x99_\xB1\x8D\x8Aty2\xBC\xC1\xC3P\xFE\x84B8\xD9\xBA\xD2\x81+0\xF6\x05\x97\xD4\x8D\xD5h\x94I\xE2\x1CDMu\x96\xFE\xB8\x93,At\xDE\xE6[\x01\xEFh\xB6\xB7\x8F\xB2\x11/\xEA\xC7\x1E\xCB\xD44\xF8\x02\xFF\r\xEED\xA5\xAA7$<\xCCr\xAC\xBFJe\x8C\xB6\x13T\xDBQZ/{0\x96\xCDuc\xBA\xD3\xB2(\xA8\xC6-Q$}\xF3\x82\xA6%\x18d\xDF\xD8\xE6\x81v1\xA3\rl\xB9\x14\xF8%\x87|\x10'\xEAj\x15?\xF9\xE8\xF8\xBD\x80\#{\xCFAD\xB16\xDF|\xAFFp\xD47\xEA\x95\xA3\xAC\x92v\xDD\x9E[\x91\t\xF7\xD9%\xCC).\eG\t\xA8\x83\xE9\xEEl\xAE\x93K\rG\x80\xF4v\b'\xAB\xF3c\"\xDB\xA9e\xD1\xF5\x1F6Q\x15k\x10a\xFA\xCEG=\xDC\xA8Dr\xDB%\xA23Nt\xC2\xEF\x7F\xF9\x14\x87q\x06ih\xB7;\xA9\x1F4\x05\xC9Qm\xDC\xD3\xCC0\\\\<\xF4\x9FL\xEE\x84Wj$F\x92\x1D\xAF\xC7\x16\xA3\xB4$F\x88.&\x11\x98\x94\xB9\x94C\x96\xA4\xBE$a\x8B\x1F4C\x892MotV\x82\xB0\xEF\r.Fh)b\x1D\xD4eP\nt_\xC95\xBE\xE0#!7\xC6k9zo\x03\xC3s\x05\xC5\xF8E\xC4p\xD0\xEA\"^\v\xFE\x98|\a\xC2\xDA\xD1\xF1\x0F\x85<\xDC9\xB9\x0E\x8F@\xB3\xB9c\x03\x9A\xE7\xD5U\n\xA9\xE0\xD9\xD4\xD0\xD4\x90\xF6\xA9\xA3M\xD6\xBCom \xC2\xDBe9\xA3\xEF\xC2q\xC57\xB5hTr\xED\xCE\xED^\xF0w\xAC\xE7\x91Z\x11\x9E\x91\x87\x133L\xB6/D\xE6\xF1aN\xF0h\xA8\x1F\x8B\xD3\f\xA8\xFE\x87\xBDh$\x94\x91\xB8,\xB7\x1C\xCE\xE3SP4\xD1B\v\x13\xBA8\\\xFAi\x82\\\x9E\xBC.\xCE<W\xFF\x1CL\r\xD9\xCA\xED\e!K\xD2\x12\"</\x1Eo\x16\x1C\xB2\x87\x12p0\t3\xEC?s\xD3\xB5\xE93\x15ne\x15G\xAE\xCB\xD1\xE2P\xDFG\x82\x1D\x87s\x1Fm\xC8k\xD8\xEC\xDF\xFA\xDB\xAB\xDF\x90\xB6\f\xE3\xE5*\xB8\xB8t\x81HgH\xAD\xCB\xA6X\x99F?5/\e\xFA\xEC\xBFQ\xC6WU\t\x1A\xBD\xF1\xA1\x87\xEE\x96\xC6Xd\xDDDY\xFC\xCA\"\n9V%\ep\xEF\xE0\x11\v\xA0\xE4S\x850\xFDd\xC9\xA3\e>\x18\x94\xEC<l\x92\xECb\x88m\xCE\x1E\xCE\x94\xEC\xA3\v\x11nK.\x19\x16\xE9@L\xF3\x8Cr\xF7B\xC5\xB4S\xED\xF5JR7\xC7\xB2\xDC\xBB9\xA5X\"m\xDF\x85\xD7\x05Y\xD0\xF3\x00b\x17\v\xD1m}\x89Os\xEA$j\xC9W\xDD\x16Z\xEC\x19\x88\xA7Wn\xB5W\x9D\x97\xD7c\x81\x9F\xDA@\x8A:M\xA9TN\xE6\x8B\xB1,\xFA\x17\xC2t\x13\xA7[\vlP\x10\xA5\xB6\xD9t\x88\xE7T\xC2\xCAE\xEC\xCCb\xEF\xF1\b\x82\x91\x0F\x97\xB0\x00\xF3\x11\x13\xBAf\xB2#\xE9swi\xD1\xA1\x90\xE9\\7\xAA\xE1S\xAE\x16\xC2\xDF\xB4M\xC4\xFE\x01\xFD;\xB7=\xD9:\xF4\xFB'S\x14\x8E\x93\xE6v\xF9`3\xAE\v\xAEB\xED\xED\tp\xEA%\xFAy\xC9\xAFG\xF3P\x15\xB8\vPY\x060\xDCt\x01\x92D\xDCa\x9E\x1C}!\xC0\xBA\x85\xADa\xD0\xD7\xD3`\xA6\xF4\x91\x00\xDAA\x9DtX\xD6\xC22\x9A\xBF\x9A\x94\xED$v\xEB\x90\xBAEd\x11\xB6\xFE\xDC\xF9\xD4\xBE\x8D\x83i\x90n}\xC7Io\xCC\xCC\xAA}\xA0\xF96!0\xD6#\x8F\x01\x16\x19]\xEFv\xA4+&#\xC3\xA7;\xDD\xD9}2j\n\x89@\x9F\xDA\xBB\xEF-\xB3\xE0dZ\x06W!\xF0R$F\"\xEAm\xF3\x88\xCE\ve\xE7\x97\x16\xFA#T\x15\t\x91p\v\xF3\x1F\xB2\x9A\"B\x88^3A\x9D\xA6\x93\x8A\xD6~\xF6\xA8\xECe\x10R\xCCK\xB6\x06\xC6-\x89xren\x96\xEE\xBFW,\xE6\xE8\x97\x82q\xDAl\xB1\xB7\"#\x05\xC9\xC7\x96\xCA\x10\xC0\xB5\xC9\xEB\xB4\xC2\x9DE\x06\xEE\xED\xFB\xF9H<\x9Eg\x9B\f\xEF\x1Ak\xAB\f\x1A\xA7\xBFgH\xA7'\xEFTm@|+\xD5\xE3t\xD8\x9Bl\xF8\xE7\xCEw!\x14\xD5FA\xF7\x11\xFA\xE7-\xC90\x9B\xA5\x10\xBC\x12\xEC\x9B\xD0\x8B1\xF2\xE3\x83\x9Ath\xB4\xA4\xF8`ZO\xBD\x87\xF7\x97\x81B\x7F\xBCB\xA7v\xA5.x\x82\xE3\xDE\x17\xF3g\xB3[\xC1\xE71\x95\xCB\xB4\xFE\x00\xD8\xEF\x15$H\xCEeU\x91de\x1D\xEEs\x922]\v\xF7#q\x16HJ\xC0e\a\xFC\xD8)\xF35A\x10<z{L\x15\\\xA3\x9F\xCB\xD99\x8D\xC8g\x8AL\xCC\f\x89\x04\xF2\x1E\xC2\x98\x87\x00\xB2\xE1\x9DMP\"R.\xB6b8\xA5\x16\x14\x9Fm\xBC\xEA\xFC\xF1\xB4u0\x03\x82\xCDL\xE9\xB6\xB3\x19X\x87\x99}F?tM\x94\xC6\xB8j\x03\x96\xE7T\xB5N\xB7\v\xC0\r\xD3\x93\x06\xA0\xD7[v\xD7K\x0E[!\r\xE5\x9D\x0F\xE2K\xDF\x8C/\x1AE\xE0\xF0t}\x9D\x81\x02Fb5\x8A\xF5\x0E\xC8\xA4hS\x94L:\xFE\x99\x15O\v<\xA3\x98\x985\x06$\x1E\xB0\xC0:H\x05\x90\x8C\x7F|\x1E\xE6\xC4\x90\e\x1D\xB8I\xB4\x01\xEB\xEC\x17o.\xE3\xEB\xDA'n\x8F\xB6`\xD6\x9C\xD5p \xFF\xA2\x1DY_\xBE\xA1p\xD8\xD2\xFD\xA8\x8E\x9E\xE1\x8BZ\x8F^P\x19\xF1\xA0i\xE6\x9D]\xAB\x7F\xBA\xE5s\xE7\a%\x85\x1E\eTJl\xD4\v\xE4\x06\x93\xC0\x93\xDD1\xCC/6V\xC1\xB6\x9B$m\xC6\xCF\xD1\xEE\xB0\xF1\x8D\xE1g\xB9i\x9A\xB5\xAA \x88\bM\xEF\x18\xF7U\xD9\\2U\xCE\xB9\x9D\x17L%w\x16\x87}f\xBB\xE3!3\xB2\xEB\xEF\x8Cm\xC3\xAE\xDB\xE0\xDA#\xAB\x81\xD0\xE6\x9Bj\xD9C\b>\x94\x9E\xB4>H\xC46c\xD0;@\x9B\xBB\x01k\xBB\x17uuI\xC3\x8D\xD5Q\x17*uj\x03\xA54\xEB\xD4N\xC6\e\xD8\x83&HR\x12:06\xDB\x17\x1F!\xB8p\xE2\x7F\xAA7\x17\xD0\xF7\x05<3F\xFC\xFE\xC0oZL\xDD\xB6\xAD?\xEF\xA0O\x8A\x9E\xCC[&\x1A\xB3=\xCB\xA8/\x1E\t$\x89\xCF\xBF\x90;\xFF\x92%Y\xED\x8C\xF5\x17\xB5\xE7r-x\xEC\"\xD6\xC5\xFF\r%\xF1\x98\xDA_P\x90\xAA\x9F\x0F/de\x86\xCBl\xB7\xCE\xD8\x80wj\xCD\x1E\x9D\x15\"\xDC\xB4\xF0\xA3LhYEJ\x9D\x0F\xC9]\xC6\xD8\x13\x87\x1Aw#\xC9\x1FL\xD3l@\xBC\xF1\b\xC4?\x9DwF\e\xD2\xCB\xB1\xB0O\\\x9E\xF4\a.S\xD0\xD9k$w\xE8}\x99\xC5M\v\xC4\x90\xC3\xE1v\x8C\xA0\xB5\x8F3Z\x1F\x00\xB3\x0E\x9E\x99\x94\xFB\x88\fpV\xAE\xD8&\xF9l\x9A\xC8w= \x88\x9CxR\xE1\xFE\xA5\x83ioH\x87\xF7\xFCC\xC8\x88\xD6\x1F\xE1u\x9A\x9D\xF9\xFC\x88\xFE\x9Dt\xA0\x96S)#e\x96#\bd-\xF9\xB0\xA2\xC2\x14\xC7\xAD\xFA\x80\xCC\xAF\x18Q\xB3\xA4N9\xA9\x18\xC8\xAE\x89\x91M\x95!/\x82\xDAo\xAA#[e\xDA\xA2\x9F\x14mL\x0E\xFD\xD9/W\x01s\x9B~\x89\xB0^\xBAs`G\xEF\xDF\xA1&=4\xC8\xB0\x95Kh\x0FV\x87\xD9\xD1b\x05\ey\xF4\xB7\xDA\xC2)C\xB2\xF5\xED\x95\x83\xFE\x1F58\xF9\xBA\xC7N/:i\xDA\xCF\xA5\xEC\xECV\xF2\xE7\x8E(Wi\xBD\xFF\xA4\x17-\xD3\xF2\xB8^\xF6\x8F\xF0?\xF4PJ\x8E#\xED\xF3\x81\xE7\xBDyE\xCA\x0F\n\xA2i\xFBA\xAD\x7F\xA6\x9C\xE2\xBA\xDF\x8A\e\xE3 U\x8Brr\xFD\xC9\x8F\x87\xE6L\x7Fk6\xDA\xD1\xB9)\xF7\xB4\xA1.H\xC07\x9Ej\xD7\a&{\x04\xC3\xD5\xD1\xF2\xDA\xD2\xE9\x91#\xC4\x94\x18\xFD\b\xAD\xBA\x06^\xDD\xED\xD4\x8D\xF6\x95V4\x80\xB9\xEAW\xF8r\xDD\xA6\x85\xA2\xA5\xAB\xE2\xC2\xC4b\x92>Dh\xFF\x80Q P\xA0\xBF\xEFw\x1E}E\xB6O\xAA\xC24!\xA6\xE3\xBC\x98\x8EGm'?\xFAP\xE7\xF0g\v\xEF\x19\">z\xE9v9OP)\xFA`\xAE9\xAA\xB5\xCC.Pw\x8A\x87|\x9C\xDB\xAD\a*s\xDB\xBDt?\xE3\n_\x8B\x19\xF4\x91\x05\xA7\x87\a\x9D\xEAh\x1C\xED\x99m\xDF\xEC\xEB]\xB2B\x8BW*|%,O\xD4^\xF2\xD4\xCB\x8C\xAA\xA0\xA89\x02Bi\xBC\xC02\xDEA\xA0\xA3*52\x12l\x86\xB1r\x91=at\xAAGg\xBE\xB6\xA7\x96%\n\xA6d\x04\x8C\x11\"\xE9\x832f\xDD\xD4\xFBT\x00\xB4\xE0\xBEo\xBF\xB1PLS\xEEmQ\e\xE8\x90\xD4 \xB0\xA1\xFCGUL{* \xB6\x83\xA0\xB7\x1D\x0E\x86\x12\xFE\xF3\xD5z\xBF\xDCZX\x8D\xBBHOc\xD5\xCB\xF7\x9A\x86\xC1X\x06=\xC1CD8\x97\x9AV\xB3/\xFE\xB6\xEDRS\x8C,\xEBw\xA9\x1C\xC31\xE8$M\xA1\xE0\x81\x05\xC7\xF8\xBFG\x95,J\t%\xF7{\xC1\xD2\x9CZ\xD2\xF0X\x86\x01\\\xBDi\xFE$n\x874\xA2@\xAF\xDC\xA8\xD8Ua\x19#\xD6\x96\xFC\x18\xF7.\x89\xEA\xEB\xBAe\xBC\xD2\x02\f\xE4\xCC\xED*\xC0)\x93\xC6\xE5\xDB\xFAo\xA1;[\x1E\xA1\xE5\xE1\xA2\xCE\x92\x13_`\xD0\x01\xFA<\xB2y\xEE/\x86\"y\x82\xA5H h*\xA9\x97\xF2\xD8\xD8u(\xD1u\xFB\x83\xA7\xE5lvT\xA111\xB5\xF8N\x94\bQ&t\xC6N\xB7\\\xB9@(\xAD\xD9\xA9Q\x8B\x88c\xC2\xA8l\xB3\xD1\b\xA4!z\xA0_R\xF7\x8B\xE1H\x82K=\x9D\xE6\xCEN2}K\xA3;\x97\xD6\xCF\xCF\x88\xAF(\xA0\x9D\x13\xA8c\xDE\x8A\xF4\xB6[\xB2\xC6\xD2eS\xD7\xADu\xA4\xD2v\xD2\x9E\x7F|\xA7\t\xC7\x11y\x9Bo\x95\f\xAA\x95\x19\x9D\x16V#\x7F:0\xE1\x1C\r\x9B\x1F\xEFz\xA6x\xD8\xC8p9j\xF4\xB6\f=Q\xA0\xEB47\x90\xA4\x13\xD0\xFA\x1E\xAF\x89ouVG\x8A\xFD+\xDC\xE1\x10\x19o&\xEB\x8D\t\x9B2*\xDB\xAE\x16{{\xF0_W2\xBF\xBC\xCE\x033\xF6]Cb\xB5\xAFZ\x05\xAF\x10\x12\xDFsB\xD9\xEF\xB0#\xA4\x7F\x0E}\x1AC\xB79\xC4\xDD\x85\x9E\xFE\xB4E\xAE%Z#H3o\x9B3N9Ne\x13\x88\xAA\xBF\xCE\xD5\xE8g\xE1g\xE2\xA9\xCE\xCC\x8E]\xA5.\xFF\xCE\xD7\xC8\x90 \x8E\x02\x00\xCF,\x14\xBE\xEB2\xDD'\x03\xB8N\x9F5\xB1\x9Fl<\xE3\x86\xA8t#\xB8'\xB5Ig\\\xC4\x93f\xE1$\xE3F\f\xC8\x82KB\xF5'\xA9\x8Fz\x16\xBA\xE1\x1C\x8E2/\x83\x94\xBE\xCFh$\xE2g\xACf\x9A-\x85\xDA\x1F\xE6{\xDE[\xE5r\x8A>\xAC\xD7C\x99=\xDAnU?\x93|5\xFF\xB4\xF5/,\x8D^xOE\xA2\xC8<Z\xFE@\x9F\b\xC1K\x13\xCF\xB0\xB6Z\xA0\xCDR\x93ha\x0F>\xB3\xF75\xC6\xD0\xE9\x90\x9E\x80L-\xA6jt\xB7\x10\xFF\xED\xC4\x0F\xD8T\xA9+\x8F_\x14u\x17\xF6Cp\x9F\x13\xBB,\xA0\x87\t\xCCnM+8s\xBE\x93\xB1\x96\xA0,\n\xF4m\x8A\x80\x9C\xF6= \xB2\xAE\"$\t0\xC2\xDA\xDA]\xBC\x91\xD6I\xA4\xC5\x91\x1Cw\xA4@\xA5\xC7Km]\xC64\x95\xD1\x16\xD2\b\xBA\xB1\xE2\"lfV\x88\x04$n)Wb\xD5\b\xFC\x85\xEE>\\\x8B\xD1\x0F\xEDV.\x94\xEBGi&\xCF\xD9\xD9\xB8N\xCA\xF0\xA1\x7F\xE78G7\x1C\xB43\x10\xB9\xAC[-\x82\xC9\xAC\x17\xAF\xFFQ\xD8\xC45\xF7\xBD(1S0\xE2X4\xBE\xF6X81\x9E\xA7Yod\xAFvi&\xD0I\xCCf\t\xB7\xD0\xB2\xD5~\xC9\x84Y\x1E\xC4\xC7\x81\xC9U\xAFgnk\x0F\xD0\x15\x0E83\x96\x89A\x00\xCEJlZ\xD7\xD4\xCFD7\xD3\x02\xC5<t!q\x8B\x1D\a\n!\xBA\x87b\xA0\x06/6\xC4\x1Ed\xDAk\xE0\xC1O\x91\xE6\x02\xC3\xA7\xF9\xA4\xF5\xCC\xCA\xC7-\x06\xA2\xEDL\x86\xD4a\n\x152J\xD9y_\xB4\xD7y\xD0\xDC\xA8\xE2R4\xF9\x9Dk\x1D\x18'~s\x0ExX\x9C:'\xDE\xE9\xA6\xDEfy\x8A\xD0$0\xE3C\x88h\xC3\xFA!N\xF7I\xC6\xD7\x97h\x9F\xCA\xAA;\xBA\x19\x95\xF0:\xF4\xED\x17\xE5\x9C}!!\xDF\xFF:a\\\eO<*/\xA2\x9AB\x8C\xB8t\x83\xC4\xAD\x1F\xC9zZ9\xAF\x9E\xC6J\xC5Y\xB0\xA2A`\x7F\xEC\x00\xA6dK\x1Dtrc\xC5\xDAU\e\x8C\xB0f'\b\xD2\x9E\x9B\xBFE\xCF(\xBEx\xF9\x95\\\x8B\xA1\xA8 \x97\x9F\xA9R\x80\x82\xE43\xCD\xF6\x8E\xAB(\a\x9F\x9A\x11\xEC\xBA\xA5\xD8m\x9A\xA5,\x8B\xB0k0\xFF\xB4\xBD\xE66\xB2\xA8!\x0F\xBAH\x14\\\x133 \xEBX\x81\xEB\x0F\x05[\x00\a\xDFr\xBA^\"\x0E\xD3s\x18\xB8\xBE0E\x9A<\xDFCY@\xD7R\xDEu]7\x97\x02\xA2\xD9\x15\xFB\xB6\x8F\xF7\x8D\tB[\xCA\xCE\x05~;YH\"\x87\xFF\xD80\xD4+\x9B,\xAF5\xD9B\xF4\x83p]\xAFm\b,\xCC3*\x00\xBC\x92\x17\x8D\xB9\xAB\xB7\x06y\xDA#\xF2\xA8\xB2\x1C\xE2\xA1;7\x82u\x04\xF9\xA7\b\x85\xAF@\xC5\xE3\xB5\xE0}\x9D\#@\x1D\xD9\xC9\xB7\xA8\xB2\xD1\xD5%\x06\" F\x98\xD5\xF9\xF1.\xEB\xDF\x98\x8A\xED\xCD\b\xFB\xCD\xF1c\x9ADd\xAE\xA7\x94\xCFY\xF1`\xD6\x06\xED\xAC\xBD\xFF\x82\xEA\x9E\xE2\x13\xBDn\x99J\x04\xCC[m\nd8\x84\xB0\xBD\xBB\x9A\x18\x17z\xF9\x8F8\xF9\xFF5H\n\xB9`d\x8A\xD2c\xA7\x8C\xEBr8H\xF2<\x90I\xBF\x88\xBE\xCF\xAD\xB1\xBB,\x0E\x8FJ\xAE\xC4\xDF\x8E\xAB\xC30\xCFk\xD2\xFE\x1F'P\xB9\x83\x06\xE7\xD2\vr\x14\xD6\xE8\x12\xC7\xDC?\xEA\xAA\xE1F\xFB\xB9\xE7\x14FA\xEC\xD6\xC69\xF22~\xE7\xF7ho~\xFD?\x97\xC4\x02\x8A\xF6\xA8\a\x84\x8C\x96\f\xC0W\xC3\x11\xC1X\x99\x16\xC0\x8E\xE1\e\x9A"

# inflate compressed data
937.times do |counter|
    data = Zlib::inflate(data)
end

# request input
puts "Please input two numbers, each on its own line, to add."

# run data code
eval(data)

你问我从哪里得到那条巨大的绳子?这是我用来生成它的程序:

require 'zlib'
code = 'a,b=gets.to_i,gets.to_i;p a+b'
oldcode = nil
count = -1
until code.inspect.length > 29000; oldcode = code; code = Zlib::deflate code; count += 1; end
File.open(ARGV.shift, 'w') do |f| f.puts oldcode.inspect; end
puts count

是的,“压缩”!:P

如您所见,我将字符串的长度限制设置为29000,刚好低于Stack Exchange帖子的长度限制,但是我可以将其设置为我想要的最大值。


9

PHP-1299

规则不禁止使用外部库,因此这是使用SimplePHPEasyPlus的代码:

use SimplePHPEasyPlus\Number\NumberCollection;
use SimplePHPEasyPlus\Number\SimpleNumber;
use SimplePHPEasyPlus\Number\CollectionItemNumberProxy;
use SimplePHPEasyPlus\Parser\SimpleNumberStringParser;
use SimplePHPEasyPlus\Iterator\CallbackIterator;
use SimplePHPEasyPlus\Operator\AdditionOperator;
use SimplePHPEasyPlus\Operation\ArithmeticOperation;
use SimplePHPEasyPlus\Operation\OperationStream;
use SimplePHPEasyPlus\Engine;
use SimplePHPEasyPlus\Calcul\Calcul;
use SimplePHPEasyPlus\Calcul\CalculRunner;


$numberCollection = new NumberCollection();

$numberParser = new SimpleNumberStringParser();

$firstParsedNumber = $numberParser->parse('1');
$firstNumber = new SimpleNumber($firstParsedNumber);
$firstNumberProxy = new CollectionItemNumberProxy($firstNumber);

$numberCollection->add($firstNumberProxy);

$secondParsedNumber = $numberParser->parse('1');
$secondNumber = new SimpleNumber($secondParsedNumber);
$secondNumberProxy = new CollectionItemNumberProxy($secondNumber);

$numberCollection->add($secondNumberProxy);

$addition = new AdditionOperator('SimplePHPEasyPlus\Number\SimpleNumber');

$operation = new ArithmeticOperation($addition);

$engine = new Engine($operation);

$calcul = new Calcul($engine, $numberCollection);

$runner = new CalculRunner();

$runner->run($calcul);

$result = $calcul->getResult();
$numericResult = $result->getValue(); // 2

10
我真正对为什么编写该库感兴趣。
marczellm 2014年

2
@marczellm也许是一个较早的代码收集挑战。
格里特2014年

8

C(通过perl)-对于32位无符号输入,为170,141,183,381,241,069,554,076,045,499,751,727,125(即1.70141183381241e + 38)

我的理念是,当从头开始执行加法运算时,依靠预先计算的成本要素(例如2、3、7或65535)是不明智的!0和1应该是我们唯一需要的常量,对吗?

因此,我不会预先计算任何常数-即时计算它们,如下所示!要支持8位带符号整数输入,您将需要源代码,长度为20,461,843个非空白字符。要实现32位有符号整数输入,您需要源代码,其长度为1.70141183381241e + 38 ;-)

准备好使用一小段8位带符号整数代码了吗?这个给你:

int add(int i, int j) {
  if (i == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) {
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1;
    ...
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return -1-1-1;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return -1-1;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return -1;
  }
  if (i == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) {
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1;
    ...
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return -1-1;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return -1;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 0;
  }
  if (i == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) {
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1;
    ...
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return -1;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 0;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 1;
  }

  ...

  if (i == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) {
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1-1;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1;
    ...
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1;
  }
  if (i == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) {
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1-1;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return 0;
    ...
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1;
  }
  if (i == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) {
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return -1;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return 0;
    if (j == -1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1) return 1;
    ...
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1;
    if (j == 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1) return 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1;
  }
}

请注意,此代码有些复杂-我不说例如:

if(x==1 and y==1) ...
if(x==1 and y==1+1) ...
if(x==1 and y==1+1+1) ...

无需每次检查x是否等于1,对吗?因此,我的代码效率更高,更简洁†,而是这样做:

if(x==1) {
  if(y==1) ...
  if(y==1+1) ...
  if(y==1+1+1) ...
}

我当然可以通过更改为不太简洁的方法来进一步扩展代码长度=)

这是我用来生成这些怪物的源代码,但是要小心-以这种格式表示一个24位整数(每个33MB)会导致perl占用我的机器上1GB以上的内存。如果您有超过512GB的可用内存,则可以继续尝试使用32位整数=)

#!/usr/bin/perl

use strict;
use warnings;

my ($MININT, $MAXINT);
my $abbrev;
if($ARGV[0] =~ /-a(?:=(\d+))?/) {
  $abbrev = defined $1 ? $1 : 3;
  shift @ARGV;
}
if($ARGV[0] =~ /^(\d+)([su]?)$/ && !defined $ARGV[1]) {
  my $unsigned = $2 && $2 eq "u"; #default to signed
  my $bits = $1;
  my $range = 2**$bits;
  $MININT = $unsigned ? 0          : 2**($bits-1)-$range;
  $MAXINT = $unsigned ? $range - 1 : 2**($bits-1)-1;
} else {
  $MININT = shift @ARGV;
  $MAXINT = shift @ARGV;
}

sub componentize {
  my $x = shift;
  return $x < 0 ? "-1" x abs($x) :
         $x > 0 ? "1".("+1"x abs($x-1)) :
         0;
}

my @range = $abbrev ? ($MININT..($MININT+$abbrev), "x", ($MAXINT-$abbrev)..$MAXINT)
                    : ($MININT..$MAXINT);

my $indent="  ";
print "int add(int i, int j) {\n";
for my $i (@range) {
  if($i eq "x") { print "$indent...\n"; next };
  print "${indent}if (i == ".componentize($i).") {\n";
  for my $j (@range) {
    if($j eq "x") { print "$indent$indent...\n"; next };
    print "${indent}${indent}if (j == ".componentize($j).") return ".componentize($i+$j).";\n";
  }
  print "$indent}\n";
}
print "}\n";

哇,就这样=)


1
†如果您错过了,那就是讽刺=)
skibrianski 2014年

7

Java-2406(带空格的3220)

我们都知道计算机擅长处理位,而其他方面则不那么擅长。因此,我的程序使用有效的按位加法执行加法!

/**
 * Solution for PCG22921.
 * 
 * The program adds two natural numbers using efficient bit addition.
 */
public class PCG22921 {
    /**
     * Contains the program.
     * 
     * @param   args    Exactly two integer numbers.
     */
    public static void main(String[] args) {
        // check whether sane arguments were given
        if (args.length != 2) {
            throw new IllegalArgumentException("You must provide exactly two numbers");
        }

        // transform the arguments into integer
        int number1 = Integer.parseInt(args[0]);
        int number2 = Integer.parseInt(args[1]);

        // convert number1 into bits
        String bits1 = "";
        while (number1 > 0) {
            bits1 = (number1 % 2) + bits1;
            number1 = number1 / 2;
        }

        // convert number2 into bits
        String bits2 = "";
        while (number2 > 0) {
            bits2 = (number2 % 2) + bits2;
            number2 = number2 / 2;
        }

        // ensure both numbers have the same length
        while (bits1.length() < bits2.length()) {
            bits1 = "0" + bits1;
        }
        while (bits2.length() < bits1.length()) {
            bits2 = "0" + bits2;
        }

        // stores whether the last addition overflowed
        boolean overflow = false;

        // bits of the result
        String resultBits = "";

        // keep adding until the bits are empty
        while (bits1.length() > 0) {
            // grab the last bit of each number
            char lastBit1 = bits1.charAt(bits1.length() - 1);
            char lastBit2 = bits2.charAt(bits2.length() - 1);

            // Quick lookup table to speed up addition!
            if (lastBit1 == '1' && lastBit2 == '1' && overflow) {
                resultBits = "1" + resultBits;
                overflow = true;
            }
            else if (lastBit1 == '1' && lastBit2 == '1' && !overflow) {
                resultBits = "0" + resultBits;
                overflow = true;
            }
            else if (lastBit1 == '1' && lastBit2 == '0' && overflow) {
                resultBits = "0" + resultBits;
                overflow = true;
            }
            else if (lastBit1 == '0' && lastBit2 == '1' && overflow) {
                resultBits = "0" + resultBits;
                overflow = true;
            }
            else if (lastBit1 == '1' && lastBit2 == '0' && !overflow) {
                resultBits = "1" + resultBits;
                overflow = false;
            }
            else if (lastBit1 == '0' && lastBit2 == '1' && !overflow) {
                resultBits = "1" + resultBits;
                overflow = false;
            }
            else if (lastBit1 == '0' && lastBit2 == '0' && overflow) {
                resultBits = "1" + resultBits;
                overflow = false;
            }
            else if (lastBit1 == '0' && lastBit2 == '0' && !overflow) {
                resultBits = "0" + resultBits;
                overflow = false;
            }
            // error handling is importent
            else throw new RuntimeException("This should not happen");

            // remove the processed bits
            bits1 = bits1.substring(0, bits1.length() - 1);
            bits2 = bits2.substring(0, bits2.length() - 1);
        }
        // check whether there is overflow left
        if (overflow) resultBits = "1" + resultBits;

        // Convert the bits into a result number again
        int result = 0;
        int bitValue = 1;
        while (resultBits.length() > 0) {
            char lastResultBit = resultBits.charAt(resultBits.length() - 1);

            if (lastResultBit == '1') {
                result = result + bitValue;
            }
            resultBits = resultBits.substring(0, resultBits.length() - 1);

            // each bit is twice as worthy as the last one
            bitValue = bitValue * 2;
        }

        // show the result
        System.out.println(result);
    }
}

您可以添加一些错误捕获功能以将其大量
散布

3
我曾期望Java版本使用BitFactory,BitFactoryStrategy,一堆XML配置文件等等。
RemcoGerlich 2014年

@RemcoGerlich我通常不是Java开发人员,所以选择它是因为与其他语言相比,它很冗长。
TimWolla 2014年

4

爪哇- 309 731 759

不是最长的,但可能是最合理的错误解释。

编辑:糟糕,只是注意到这不是

大于一位的数字的加法运算是通过使用全加器将各个位相加来完成的,该加法器将输入两位和上一级的进位作为输入,并输出和位和进位位。为了简单加法,第一级的随身值应为零。

public class Adder {
    public static void main(String[] args) throws Exception {
        int a = 135;
        int b = 87;

        int result = 0;
        int carryIn = 0;

        // Assume 8 bits, so we have 8 full-adders:
        for (int i = 0; i < 8; i++) { // Assume numbers are 8 bits long
            // Get the Nth bits from the numbers
            int bitA = a >> i & 1;
            int bitB = b >> i & 1;

            // Full adder, using the truth table:
            int bitC = 0;
            int carryOut = 0;
            if (bitA == 0 && bitB == 0 && carryIn == 0) {
                bitC = 0;
                carryOut = 0;
            }
            else if (bitA == 0 && bitB == 0 && carryIn == 1) {
                bitC = 1;
                carryOut = 0;
            }
            else if (bitA == 0 && bitB == 1 && carryIn == 0) {
                bitC = 1;
                carryOut = 0;
            }
            else if (bitA == 0 && bitB == 1 && carryIn == 1) {
                bitC = 0;
                carryOut = 1;
            }
            else if (bitA == 1 && bitB == 0 && carryIn == 0) {
                bitC = 1;
                carryOut = 0;
            }
            else if (bitA == 1 && bitB == 0 && carryIn == 1) {
                bitC = 0;
                carryOut = 1;
            }
            else if (bitA == 1 && bitB == 1 && carryIn == 0) {
                bitC = 0;
                carryOut = 1;
            }
            else if (bitA == 1 && bitB == 1 && carryIn == 1) {
                bitC = 1;
                carryOut = 1;
            }

            // Append the bits to the result
            result |= bitC << i;

            // Carry for next stage
            carryIn = carryOut;
        }

        // Verify the result
        System.out.println("Result = " + result + ", CarryOut = " + carryIn);
        System.out.println("Should be: " + (a + b));
    }
}

结果= 222,执行= 0
应为:222


1
在我职业生涯的前几年,我以某种看起来像编程语言的方式工作,但实际上是在描述将在芯片上实现的门。这看起来很痛苦……除了我认为我们没有像for循环这样优雅的说法:“在输入总线的所有位上复制它”。(想象一下一种具有过程语法和功能执行力的语言...编辑该语言的主要工具是流程图的高度程序化表示。。。我可以说这是早期的尝试。)
keshlam

3

Python 2.7(添加好方法)

def add(x,y):
    while True:
        a = x & y
        b = x ^ y
        x = a << b & 0xffffffff
        y = b
        if a == 0:
           break
    return b

number_1 = int(raw_input("Please enter a number(1)"))
number_2 = int(raw_input("Please enter a number(2)"))

print "result is: %d" % add(number_1, number_2)

信用去https://stackoverflow.com/questions/366706/bitwise-subtraction-in-python


这是Python 2吗?
Hosch250

1
@ hosch250,是的:它使用(在python3中)不受支持的打印版本
puckipedia

2
@puckipedia是的,我知道是因为raw_input()。我向OP暗示说语言是一种好习惯。
Hosch250 2014年


0

C#-5395

让我们发出使用动态方法添加的代码。实际上,我发出代码,然后发出代码以调用整数加法。Add()下面的函数构建一个动态方法,该方法在运行时构建一个动态方法以调用整数加法。

using System;
using System.Reflection.Emit;

namespace JA
{
class Program
{
    static void Main(string[] args)
    {
        int z=Add(1, 2);
        // z = 3
    }

    // Emit MSIL to emit MSIL
    public static int Add(int x, int y)
    {
        Type delegate_type=typeof(Func<int, int, int>);
        DynamicMethod method=new DynamicMethod(typeof(int).ToString()+".op_Addition",
            typeof(int),
            new Type[] { typeof(int), typeof(int) }, typeof(Program));
        ILGenerator generator=method.GetILGenerator();

        LocalBuilder method1=generator.DeclareLocal(typeof(DynamicMethod));
        LocalBuilder generator1=generator.DeclareLocal(typeof(ILGenerator));
        LocalBuilder add1=generator.DeclareLocal(typeof(Func<int, int, int>));
        LocalBuilder args1=generator.DeclareLocal(typeof(Type[]));
        generator.Emit(OpCodes.Ldtoken, typeof(int));

        generator.Emit(OpCodes.Call,
            typeof(Type).GetMethod("GetTypeFromHandle",
                System.Reflection.BindingFlags.Public|
                System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Callvirt,
            typeof(object).GetMethod("ToString",
                System.Reflection.BindingFlags.Public|
                System.Reflection.BindingFlags.Instance));
        generator.Emit(OpCodes.Ldstr, ".op_Addition");
        generator.Emit(OpCodes.Call,
            typeof(string).GetMethod("Concat",
                new Type[] { typeof(string), typeof(string) }));
        generator.Emit(OpCodes.Ldtoken, typeof(int));
        generator.Emit(OpCodes.Call,
            typeof(Type).GetMethod("GetTypeFromHandle",
                System.Reflection.BindingFlags.Public|
                System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Ldc_I4, 2);
        generator.Emit(OpCodes.Newarr, typeof(Type));
        generator.Emit(OpCodes.Stloc_3);
        generator.Emit(OpCodes.Ldloc_3);
        generator.Emit(OpCodes.Ldc_I4, 0);
        generator.Emit(OpCodes.Ldtoken, typeof(int));
        generator.Emit(OpCodes.Call,
            typeof(Type).GetMethod("GetTypeFromHandle",
                System.Reflection.BindingFlags.Public|
                System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Stelem_Ref);
        generator.Emit(OpCodes.Ldloc_3);
        generator.Emit(OpCodes.Ldc_I4, 1);
        generator.Emit(OpCodes.Ldtoken, typeof(int));
        generator.Emit(OpCodes.Call,
            typeof(Type).GetMethod("GetTypeFromHandle",
                System.Reflection.BindingFlags.Public|
                System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Stelem_Ref);
        generator.Emit(OpCodes.Ldloc_3);
        generator.Emit(OpCodes.Ldtoken, typeof(Program));
        generator.Emit(OpCodes.Call,
            typeof(Type).GetMethod("GetTypeFromHandle",
                System.Reflection.BindingFlags.Public|
                System.Reflection.BindingFlags.Static));

        generator.Emit(OpCodes.Newobj,
            typeof(DynamicMethod).GetConstructor(
                new Type[] { typeof(string), typeof(Type), typeof(Type[]), typeof(Type) }));

        generator.Emit(OpCodes.Stloc_0);
        generator.Emit(OpCodes.Ldloc_0);
        generator.Emit(OpCodes.Callvirt,
            typeof(DynamicMethod).GetMethod("GetILGenerator",
                Type.EmptyTypes));
        generator.Emit(OpCodes.Stloc_1);
        generator.Emit(OpCodes.Ldloc_1);
        generator.Emit(OpCodes.Ldtoken, typeof(int));
        generator.Emit(OpCodes.Call,
            typeof(Type).GetMethod("GetTypeFromHandle",
                System.Reflection.BindingFlags.Public|
                System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Callvirt,
            typeof(ILGenerator).GetMethod("DeclareLocal",
                new Type[] { typeof(Type) }));
        generator.Emit(OpCodes.Pop);
        generator.Emit(OpCodes.Ldloc_1);
        generator.Emit(OpCodes.Ldsfld,
            typeof(OpCodes).GetField("Ldarg_0",
                System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Callvirt,
            typeof(ILGenerator).GetMethod("Emit", new Type[] { typeof(OpCode) }));
        generator.Emit(OpCodes.Ldloc_1);
        generator.Emit(OpCodes.Ldsfld,
            typeof(OpCodes).GetField("Ldarg_1",
                System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Callvirt,
            typeof(ILGenerator).GetMethod("Emit", new Type[] { typeof(OpCode) }));
        generator.Emit(OpCodes.Ldloc_1);
        generator.Emit(OpCodes.Ldsfld,
            typeof(OpCodes).GetField("Add",
                System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Callvirt,
            typeof(ILGenerator).GetMethod("Emit", new Type[] { typeof(OpCode) }));
        generator.Emit(OpCodes.Ldloc_1);
        generator.Emit(OpCodes.Ldsfld,
            typeof(OpCodes).GetField("Stloc_0",
                System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Callvirt,
            typeof(ILGenerator).GetMethod("Emit", new Type[] { typeof(OpCode) }));
        generator.Emit(OpCodes.Ldloc_1);
        generator.Emit(OpCodes.Ldsfld,
            typeof(OpCodes).GetField("Ldloc_0",
                System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Callvirt,
            typeof(ILGenerator).GetMethod("Emit", new Type[] { typeof(OpCode) }));
        generator.Emit(OpCodes.Ldloc_1);
        generator.Emit(OpCodes.Ldsfld,
            typeof(OpCodes).GetField("Ret",
                System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Callvirt,
            typeof(ILGenerator).GetMethod("Emit", new Type[] { typeof(OpCode) }));
        generator.Emit(OpCodes.Ldloc_0);
        generator.Emit(OpCodes.Ldtoken, typeof(Func<int, int, int>));
        generator.Emit(OpCodes.Call,
            typeof(Type).GetMethod("GetTypeFromHandle",
                System.Reflection.BindingFlags.Public|
                System.Reflection.BindingFlags.Static));
        generator.Emit(OpCodes.Callvirt,
            typeof(DynamicMethod).GetMethod("CreateDelegate",
                new Type[] { typeof(Type) }));
        generator.Emit(OpCodes.Isinst, typeof(Func<int, int, int>));
        generator.Emit(OpCodes.Stloc_2);
        generator.Emit(OpCodes.Ldloc_2);
        generator.Emit(OpCodes.Ldarg_0);
        generator.Emit(OpCodes.Ldarg_1);
        generator.Emit(OpCodes.Callvirt,
            typeof(Func<int, int, int>).GetMethod("Invoke",
                System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Instance));
        generator.Emit(OpCodes.Ret);

        Func<int, int, int> add2=method.CreateDelegate(typeof(Func<int, int, int>)) as Func<int, int, int>;

        return add2(x, y);
    }
}
}

1
PS。我试图发出发出代码的代码,但最终我得到了{System.SystemException}: {"JIT Compiler encountered an internal limitation."}
ja72 2014年

0

假设您希望代码长度超过n个字符。以下代码更长。

public class Add
{
    int main(int a, int b)
    {
        return (a + (b/2^1) + (b/2^2) + (b/2^3) ... (b/2^n) + (b/2^n));
    }
}

0

C

#include<stdio.h>

int Max(int a,int b)
{
    if(a>b)
    return a;
    else
    return b;
}
int Min(int a,int b)
{
    if(a<b)
    return a;
    else
    return b;
}
int main(void)
{
    int a,b,sum,i,m;
    i=0;
    m = Min(a,b);
    scanf("%d", &a);
    scanf("%d", &b);

    if(Min(a,b) == Max(a,b))
    {
        sum = 2*a;
        printf("%d", sum );
    }
    else
    {
        do
        {
            i++;
            m++;
        }while(m < Max(a,b));



        sum = i + 2 * Min(a,b);
        printf("%d", sum);
    }
    return 0;
}

不适用于大量对象,但可以用此替换

#include<stdio.h>

int Max(int a,int b)
{
    if(a>b)
    return a;
    else
    return b;
}
int Min(int a,int b)
{
    if(a<b)
    return a;
    else
    return b;
}
int main(void)
{
    int a,b,sum,i,m;
    i=0;
    scanf("%d", &a);
    scanf("%d", &b);

    if(Min(a,b) == Max(a,b))
    {
        sum = 2*a;
        printf("%d", sum );
    }
    else
    {
        i = Max(a,b) - Min(a,b);
        sum = i + 2 * Min(a,b);
        printf("%d", sum);
    }
    return 0;
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.