#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  static int Failures = 0;
  void Pass(void) {
    Printstring(_imp_str_literal(" -- Pass"));
    Newline();
  }
  void Fail(void) {
    Printstring(_imp_str_literal(" -- FAIL"));
    Newline();
    Failures++;
  }
  static int One = 1;
  static int Two = 2;
  static int Three = 3;
  static int Four = 4;
  static int Dump;
  void Single(void) {
    static int One10[10 /*1:10*/] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    static int Two11[11 /*1:11*/] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22};
    static int J = 10;
    int Three10[J];
    int An10;
    int Anstar;
    int An;
    for (J = 1; J <= 10; J++) Three10[J] = J * 3;
    void R10(int A, int K) {
      int I;
      int J = 0;
      for (I = 1; I <= 10; I++)
        if (A != I * K) J = 1;
      if (!J)
        Pass();
      else
        Fail();
    }
    void Rstar(int A, int K, int L) {
      int I;
      int J = 0;
      for (I = 1; I <= L; I++)
        if (A != I * K) J = 1;
      if (!J)
        Pass();
      else
        Fail();
    }
    void Rv(int A, int K) {
      int I;
      int J = 0;
      for (I = M; I <= L; I++)
        if (A != I * K) J = 1;
      if (!J)
        Pass();
      else
        Fail();
    }
    Printstring(_imp_str_literal("r10(one10,1)"));
    R10(One10, 1);
    Printstring(_imp_str_literal("rstar(one10,1,10)"));
    Rstar(One10, 1, 10);
    Printstring(_imp_str_literal("rstar(two11,2,11)"));
    Rstar(Two11, 2, 11);
    Printstring(_imp_str_literal("rstar(three10,3,10)"));
    Rstar(Three10, 3, 10);
    Printstring(_imp_str_literal("rv(one10,1)"));
    Rv(One10, 1);
    Printstring(_imp_str_literal("rv(two11,2)"));
    Rv(Two11, 2);
    Printstring(_imp_str_literal("rv(three10,3)"));
    Rv(Three10, 3);
    Printstring(_imp_str_literal("an10 == one10; r10(an10,1)"));
    *An10 = &One10;
    R10(An10, 1);
    Printstring(_imp_str_literal("an10 == one10; rstar(an10,1,10)"));
    *An10 = &One10;
    Rstar(An10, 1, 10);
    Printstring(_imp_str_literal("anstar == one10; rstar(anstar,1,10)"));
    *Anstar = &One10;
    Rstar(Anstar, 1, 10);
    Printstring(_imp_str_literal("anstar == two11; rstar(anstar,2,11)"));
    *Anstar = &Two11;
    Rstar(Anstar, 2, 11);
    Printstring(_imp_str_literal("anstar == three10; rstar(anstar,3,10)"));
    *Anstar = &Three10;
    Rstar(Anstar, 3, 10);
    Printstring(_imp_str_literal("an10 == one10; rv(an10,1)"));
    *An10 = &One10;
    Rv(An10, 1);
    Printstring(_imp_str_literal("an == one10; rv(an,1)"));
    *An = &One10;
    Rv(An, 1);
    Printstring(_imp_str_literal("an == two11; rv(an,2)"));
    *An = &Two11;
    Rv(An, 2);
    Printstring(_imp_str_literal("an == three10; rv(an,3)"));
    *An = &Three10;
    Rv(An, 3);
  }
  void Double(void) {
    static int One10[10 /*1:10*/][3 /*-1:1*/] = {
        1, 101, 201, 2, 102, 202, 3, 103, 203, 4, 104, 204, 5,  105, 205,
        6, 106, 206, 7, 107, 207, 8, 108, 208, 9, 109, 209, 10, 110, 210};
    static int Two11[11 /*1:11*/][3 /*-1:1*/] = {
        2,   102, 202, 4,   104, 204, 6,   106, 206, 8,   108,
        208, 10,  110, 210, 12,  112, 212, 14,  114, 214, 16,
        116, 216, 18,  118, 218, 20,  120, 220, 22,  122, 222};
    static int I;
    static int J;
    static int K = 10;
    int Three10[K][3 /*-1:1*/];
    int An10;
    int Anstar;
    int An;
    for (I = 1; I <= 10; I++)
      for (J = -1; J <= 1; J++) Three10[I][J] = I * 3 + 100 + J * 100;
    void R10(int A, int K) {
      int I;
      int J;
      int E = 0;
      for (I = 1; I <= 10; I++)
        for (J = -1; J <= 1; J++)
          if (A != I * K + 100 + J * 100) E = 1;
      if (!E)
        Pass();
      else
        Fail();
    }
    void Rstar(int A, int K, int L) {
      int I;
      int J;
      int E = 0;
      for (I = 1; I <= L; I++)
        for (J = -1; J <= 1; J++)
          if (A != I * K + 100 + J * 100) E = 1;
      if (!E)
        Pass();
      else
        Fail();
    }
    void Rv(int A, int K) {
      int I;
      int J;
      int E = 0;
      for (I = 1; I <= L; I++)
        for (J = X; J <= Y; J++)
          if (A != I * K + 100 + J * 100) E = 1;
      if (!E)
        Pass();
      else
        Fail();
    }
    Printstring(_imp_str_literal("r10(one10,1)"));
    R10(One10, 1);
    Printstring(_imp_str_literal("rstar(one10,1,10)"));
    Rstar(One10, 1, 10);
    Printstring(_imp_str_literal("rstar(two11,2,11)"));
    Rstar(Two11, 2, 11);
    Printstring(_imp_str_literal("rstar(three10,3,10)"));
    Rstar(Three10, 3, 10);
    Printstring(_imp_str_literal("rv(one10,1)"));
    Rv(One10, 1);
    Printstring(_imp_str_literal("rv(two11,2)"));
    Rv(Two11, 2);
    Printstring(_imp_str_literal("rv(three10,3)"));
    Rv(Three10, 3);
    Printstring(_imp_str_literal("an10 == one10; r10(an10,1)"));
    *An10 = &One10;
    R10(An10, 1);
    Printstring(_imp_str_literal("an10 == one10; rstar(an10,1,10)"));
    *An10 = &One10;
    Rstar(An10, 1, 10);
    Printstring(_imp_str_literal("anstar == one10; rstar(anstar,1,10)"));
    *Anstar = &One10;
    Rstar(Anstar, 1, 10);
    Printstring(_imp_str_literal("anstar == two11; rstar(anstar,2,11)"));
    *Anstar = &Two11;
    Rstar(Anstar, 2, 11);
    Printstring(_imp_str_literal("anstar == three10; rstar(anstar,3,10)"));
    *Anstar = &Three10;
    Rstar(Anstar, 3, 10);
    Printstring(_imp_str_literal("an10 == one10; rv(an10,1)"));
    *An10 = &One10;
    Rv(An10, 1);
  }
  void Stringstar(void) {
    _imp_string Sa[4 /*1:4*/];
    static _imp_string Sb[4 /*1:4*/] = {
        _imp_str_literal("tom"), _imp_str_literal("dick"),
        _imp_str_literal("harry"), _imp_str_literal("archibaldy")};
    Sa[1] = _imp_str_literal("ABC");
    Sa[2] = _imp_str_literal("DEF");
    Sa[3] = _imp_str_literal("GHI");
    Sa[4] = _imp_str_literal("JKL");
    void Try(_imp_string S, int J) {
      int I;
      for (I = 1; I <= 4; I++)
        if (J == 1)
          if (S == Sa[I])
            Pass();
          else
            Fail();
        else if (S == Sb[I])
          Pass();
        else
          Fail();
    }
    Printstring(_imp_str_literal("Stringstar 1"));
    Try(Sa, 1);
    Printstring(_imp_str_literal("Stringstar 2"));
    Try(Sb, 2);
  }
  Openoutput(1, _imp_str_literal("JOURNAL"));
  Single();
  Double();
  Stringstar();
  Selectoutput(0);
  Write(Failures, 1);
  Printstring(_imp_str_literal(" failure(s)"));
  Newline();
  exit(0);
  return (1);
}
