Example #1
0
        public string RecordLine()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(recordType); // (2) - static length
            sb.Append(SduBatchId.PadLeft(20, '0'));
            sb.Append(SduTranId);  //(20) - static length
            sb.Append(ReceiptNumber.PadLeft(7, '0'));
            sb.Append(StrRetransmittalIndicator.PadRight(1));
            sb.Append(PayorID.PadRight(13));
            sb.Append(PayorSSN.PadRight(9));
            sb.Append(PaidBy.PadRight(15));
            sb.Append(PayorLastName.PadRight(25));
            sb.Append(PayorFirstName.PadRight(20));
            sb.Append(PayorMiddleName.PadRight(20));
            sb.Append(PayorSuffix.PadRight(3));
            sb.Append(StrAmount.PadLeft(15, '0'));
            sb.Append(StrOfcAmount.PadLeft(15, '0'));
            sb.Append(PaymentMode.PadRight(2));
            sb.Append(PaymentSource.PadRight(4));
            sb.Append(ReceiptReceivedDate.PadRight(8));
            sb.Append(ReceiptEffectiveDate.PadRight(8));
            sb.Append(CheckNumber.PadRight(18));
            sb.Append(ComplianceExemptionReason.PadRight(1));
            sb.Append(TargetedPaymentIndicator.PadRight(1, '0'));
            sb.Append(Fips.PadRight(7));
            sb.Append(CourtCaseNumber.PadRight(25));
            sb.Append(CourtJudgementNumber.PadLeft(3, '0'));
            sb.Append(CourtGuidelineNumber.PadLeft(3, '0'));
            sb.Append(ReasonCode.PadRight(3));
            sb.Append(filler.PadRight(32));

            return(sb.ToString());
        }
Example #2
0
        public void overflow_causes_exception()
        {
            var c = new CheckNumber(CheckNumber.MaxValue);
            var e = Assert.Throws <ArgumentException>(() => c.Increment());

            Assert.Contains("overflow", e.Message);
        }
        public async Task ShouldUpdate_CashTransaction_UsingCashAccountAggregate()
        {
            CashAccount account = await _cashAcctRepo.GetByIdAsync(new Guid("417f8a5f-60e7-411a-8e87-dfab0ae62589"));

            CashAccountTransaction transaction = account.CashAccountTransactions.FirstOrDefault(p => p.Id.Equals(25));

            transaction.UpdateCashAcctTransactionDate(CashAcctTransactionDate.Create(new DateTime(2021, 10, 16)));
            transaction.UpdateCashAcctTransactionAmount(CashAcctTransactionAmount.Create(8664.99M));

            //TODO Need to know the business rules for these two.
            // transaction.UpdateExternalAgentId(cashAccountTransaction.AgentId);
            // transaction.UpdateEconomicEventId(cashAccountTransaction.EventId);

            transaction.UpdateCheckNumber(CheckNumber.Create("99999"));
            transaction.UpdateRemittanceAdvice("0000000");
            transaction.UpdateUserId(UserId.Create(new Guid("4b900a74-e2d9-4837-b9a4-9e828752716e")));

            account.UpdateCashAccountTransaction(transaction);
            _cashAcctRepo.Update(account);
            await _unitOfWork.Commit();

            CashAccountTransaction result = account.CashAccountTransactions.FirstOrDefault(p => p.Id.Equals(25));

            Assert.Equal(transaction.CashAcctTransactionDate, result.CashAcctTransactionDate);
            Assert.Equal(transaction.CashAcctTransactionAmount, result.CashAcctTransactionAmount);
            Assert.Equal(transaction.CheckNumber, result.CheckNumber);
            Assert.Equal(transaction.RemittanceAdvice, result.RemittanceAdvice);
            Assert.Equal(transaction.UserId, result.UserId);
        }
Example #4
0
        protected override void ConfigurationMateriauxTraite()
        {
            if (CheckNumber.IsPrime(noCentreTriage))
            {
                //Application propriete d'un centre de tri composé d'un nombre premier.
                nbPremier = true;

                SetCapaciteMax((int)Materiau.Listemateriaux.URANIUM, 2456);
                SetCapaciteMax((int)Materiau.Listemateriaux.METAUX_LOURD, 561);
            }
            if (CheckNumber.isDivibleBy5(noCentreTriage))
            {
                //Application des propriete d'un centre de tri composé d'un multiple de 5.
                nbDiv5 = true;

                SetCapaciteMax((int)Materiau.Listemateriaux.TERRE_CONTAMINE, 2658);
                SetCapaciteMax((int)Materiau.Listemateriaux.PLUTONIUM, 3067);
            }
            if (!nbDiv5 && !nbPremier)
            {
                //Centre de tri pair sans condition secondaire
                SetCapaciteMax((int)Materiau.Listemateriaux.URANIUM, 2456);
                SetCapaciteMax((int)Materiau.Listemateriaux.METAUX_LOURD, 561);
                SetCapaciteMax((int)Materiau.Listemateriaux.TERRE_CONTAMINE, 2658);
                SetCapaciteMax((int)Materiau.Listemateriaux.PLUTONIUM, 3067);
                SetCapaciteMax((int)Materiau.Listemateriaux.COMBUSTIBLES_FOSSILLE, 8234);
            }
        }
Example #5
0
        public void valid(string number, string expected)
        {
            var cn = new CheckNumber(number);

            Assert.Equal(int.Parse(number), cn.Value);
            Assert.Equal(expected, cn.ToString());
        }
Example #6
0
        public static string ToImperialDate(this DateTime date, CheckNumber checkNumber = 0)
        {
            string yearFraction    = GetYearFraction(date);
            string yearInMillenium = date.Year.ToString().Substring(1);
            string milleniumNumber = GetMillenium(date);

            return($"{(int)checkNumber}{yearFraction}{yearInMillenium}.M{milleniumNumber}");
        }
Example #7
0
        public void ChangePhone(string phone)
        {
            if (!CheckNumber.IsPhoneNumber(phone))
            {
                throw new DomainException($"手机号码格式不符合规范");
            }

            Phone = phone;
        }
 public CentreTriage CreerNoeud(int noCentre)
 {
     if (CheckNumber.IsPair(noCentre)) //Retourne vrai si nombre impair
     {
         return(new CentreTriageImpair(noCentre));
     }
     else
     {
         return(new CentreTriagePair(noCentre));
     }
 }
Example #9
0
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (FirstName != null)
         {
             hashCode = hashCode * 59 + FirstName.GetHashCode();
         }
         if (LastName != null)
         {
             hashCode = hashCode * 59 + LastName.GetHashCode();
         }
         if (CompanyName != null)
         {
             hashCode = hashCode * 59 + CompanyName.GetHashCode();
         }
         if (DepartmentDocumentNumber != null)
         {
             hashCode = hashCode * 59 + DepartmentDocumentNumber.GetHashCode();
         }
         if (CheckNumber != null)
         {
             hashCode = hashCode * 59 + CheckNumber.GetHashCode();
         }
         if (CheckAmount != null)
         {
             hashCode = hashCode * 59 + CheckAmount.GetHashCode();
         }
         if (CheckDate != null)
         {
             hashCode = hashCode * 59 + CheckDate.GetHashCode();
         }
         if (TransmittalNumber != null)
         {
             hashCode = hashCode * 59 + TransmittalNumber.GetHashCode();
         }
         if (TransmittalStatus != null)
         {
             hashCode = hashCode * 59 + TransmittalStatus.GetHashCode();
         }
         if (DepositNumber != null)
         {
             hashCode = hashCode * 59 + DepositNumber.GetHashCode();
         }
         if (CashListing != null)
         {
             hashCode = hashCode * 59 + CashListing.GetHashCode();
         }
         return(hashCode);
     }
 }
Example #10
0
 public ActionResult FeverCheck(double input)                            //När använderan skickar sin temp, så startar denna ActionResult.
 {
     if (input == 0)                                                     //Om tempen är 0, så skriver sidan inte ut resultatet.
     {
         return(View());
     }
     else
     {
         ViewBag.Result = CheckNumber.NumberCheck(input);                //Sätter värdet från input och sätter det i ViewBag.Result.
         return(View());
     }
 }
Example #11
0
        static void Main(string[] args)
        {
            if (!int.TryParse(Console.ReadLine(), out var number))
            {
                return;
            }
            CheckNumber checkNumber = IsSimple;

            //checkNumber += Print;
            Console.WriteLine((number % 2) == 0 ? "Это число чётное" : "Это число нечётное");
            Console.WriteLine(checkNumber.Invoke(number) ? "Число простое" : "Число составное");
        }
 public void Configure(EntityTypeBuilder <CashAccountTransaction> entity)
 {
     entity.ToTable("CashAccountTransactions", schema: "Finance");
     entity.HasKey(e => e.Id);
     entity.Property(p => p.Id).HasColumnType("INT").HasColumnName("CashTransactionId");
     entity.Property(p => p.CashAccountId)
     .HasColumnType("UNIQUEIDENTIFIER")
     .HasColumnName("CashAccountId")
     .IsRequired();
     entity.Property(p => p.CashTransactionType)
     .HasColumnType("INT")
     .HasColumnName("CashTransactionTypeId")
     .IsRequired();
     entity.Property(p => p.CashAcctTransactionDate)
     .HasConversion(p => p.Value, p => CashAcctTransactionDate.Create(p))
     .HasColumnType("datetime2(0)")
     .HasColumnName("CashAcctTransactionDate")
     .IsRequired();
     entity.Property(p => p.CashAcctTransactionAmount)
     .HasConversion(p => p.Value, p => CashAcctTransactionAmount.Create(p))
     .HasColumnType("DECIMAL(18,2)")
     .HasColumnName("CashAcctTransactionAmount")
     .IsRequired();
     entity.Property(p => p.AgentId)
     .HasConversion(p => p.Value, p => ExternalAgentId.Create(p))
     .HasColumnType("UNIQUEIDENTIFIER")
     .HasColumnName("AgentId")
     .IsRequired();
     entity.Property(p => p.EventId)
     .HasConversion(p => p.Value, p => EconomicEventId.Create(p))
     .HasColumnType("UNIQUEIDENTIFIER")
     .HasColumnName("EventId")
     .IsRequired();
     entity.Property(p => p.CheckNumber)
     .HasConversion(p => p.Value, p => CheckNumber.Create(p))
     .HasColumnType("NVARCHAR(25)")
     .HasColumnName("CheckNumber")
     .IsRequired();
     entity.Property(p => p.RemittanceAdvice)
     .HasColumnType("NVARCHAR(50)")
     .HasColumnName("RemittanceAdvice");
     entity.Property(p => p.UserId)
     .HasConversion(p => p.Value, p => UserId.Create(p))
     .HasColumnType("UNIQUEIDENTIFIER")
     .HasColumnName("UserId")
     .IsRequired();
     entity.Property(e => e.CreatedDate)
     .HasColumnType("datetime2(7)")
     .ValueGeneratedOnAdd()
     .HasDefaultValueSql("sysdatetime()");
     entity.Property(e => e.LastModifiedDate).HasColumnType("datetime2(7)");
 }
Example #13
0
        internal User(string name, string phone, string pwd, int age)
        {
            if (!CheckNumber.IsPhoneNumber(phone))
            {
                throw new DomainException($"手机号码格式不符合规范");
            }

            Id       = Guid.NewGuid();
            Password = pwd;
            Phone    = phone;
            Name     = name;
            Age      = age;
        }
Example #14
0
        /// <summary>
        /// Returns true if DepartmentDocumentRequest instances are equal
        /// </summary>
        /// <param name="other">Instance of DepartmentDocumentRequest to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(DepartmentDocumentRequest other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     CheckNumber == other.CheckNumber ||
                     CheckNumber != null &&
                     CheckNumber.Equals(other.CheckNumber)
                     ) &&
                 (
                     FirstName == other.FirstName ||
                     FirstName != null &&
                     FirstName.Equals(other.FirstName)
                 ) &&
                 (
                     LastName == other.LastName ||
                     LastName != null &&
                     LastName.Equals(other.LastName)
                 ) &&
                 (
                     CompanyName == other.CompanyName ||
                     CompanyName != null &&
                     CompanyName.Equals(other.CompanyName)
                 ) &&
                 (
                     CheckAmount == other.CheckAmount ||
                     CheckAmount != null &&
                     CheckAmount.Equals(other.CheckAmount)
                 ) &&
                 (
                     CashListing == other.CashListing ||
                     CashListing != null &&
                     CashListing.Equals(other.CashListing)
                 ) &&
                 (
                     Comments == other.Comments ||
                     Comments != null &&
                     Comments.Equals(other.Comments)
                 ));
        }
Example #15
0
        public void TestGetCodeForRecordBook_IncorrectDogovorNumber_TooShort() // слишком короткий номер + не соответствует шаблону
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "2рв2в",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = false;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Example #16
0
        public void TestGetCodeForRecordBook_CorrectDogovorNumber_Registrs() // разный регистр букв и разные языки (2 теста в одном)
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "341NqЩ231",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = true;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Example #17
0
        public void TestGetCodeForRecordBook_CorrectDogovorNumber_CorrectSymbols() // номер с допустимыми символами  -()/.
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "341fh/231",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = true;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Example #18
0
        public void TestGetCodeForRecordBook_InorrectDogovorNumber_EmptyInformation() // не введена информация
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "341фрп231",
                Информация    = ""
            };

            var expectedКорректность = false;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Example #19
0
        public void TestGetCodeForRecordBook_IncorrectDogovorNumber_OnlyLetters() // только буквы
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "аругылару",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = false;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Example #20
0
        public void TestGetCodeForRecordBook_СorrectDogovorNumber2() // номер в виде 0ААА000 для шаблона 000ААА000.
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "1оар374", // = 001оар374
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = true;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Example #21
0
        public void TestGetCodeForRecordBook_IncorrectDogovorNumber_EmptyNumber() // не введен номер договора
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = false;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Example #22
0
        public void TestGetCodeForRecordBook_IncorrectDogovorNumber_Almost() // частично правильный номер: ААА000
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "врп231",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = false;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Example #23
0
        public void TestGetCodeForRecordBook_CorrectDogovor() // с русскими буквами
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "273икр729",
                Информация    = "Информация для тестового договора."
            };

            //var expectedКодДоговора = "2a";
            var expectedКорректность = true;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Example #24
0
        /// <summary>
        /// Добавляет договоры в хранилище.
        /// </summary>
        /// <param name="договор">
        /// Договор, который необходимо добавить в хранилище
        /// </param>
        public void AddDogovor(Договор договор)
        {
            if (CheckNumber.GetCodeForRecordBook(договор) == true)
            {
                var номер = договор.номерДоговора;
                foreach (Договор c in _dogovorsStorage)
                {
                    if (c.номерДоговора == номер)
                    {
                        throw new Exception("Договор с таким номером уже существует!");
                    }
                }

                _dogovorsStorage.Add(договор);
            }
            else
            {
                throw new Exception("Номер договора некорректен или есть незаполненные поля!");
            }
        }
Example #25
0
        public void SetRequisites(string checkNumber, string orderDescription)
        {
            if ((CheckNumber?.Equals(checkNumber) ?? false) && (OrderDescription?.Equals(orderDescription) ?? false))
            {
                return;
            }

            if (!string.IsNullOrEmpty(CheckNumber) && !CheckNumber.Equals(checkNumber))
            {
                throw new ArgumentException($"{nameof(checkNumber)}. Cannot have a different number with aggregate");
            }

            if (!string.IsNullOrEmpty(OrderDescription) && !OrderDescription.Equals(orderDescription))
            {
                throw new ArgumentException($"{nameof(orderDescription)}. Cannot have a different description with aggregate");
            }

            var domainEvent = new RequisitesEvent(orderDescription, checkNumber);

            Update(domainEvent);
        }
        public async Task ShouldInsert_CashTransaction_UsingCashAccountAggregate()
        {
            CashAccount account = await _cashAcctRepo.GetByIdAsync(new Guid("6a7ed605-c02c-4ec8-89c4-eac6306c885e"));

            CashAccountTransaction transaction = new CashAccountTransaction
                                                 (
                CashTransactionType.CashDisbursementLoanPayment,
                CashAccountId.Create(account.Id),
                CashAcctTransactionDate.Create(new DateTime(2021, 11, 7)),
                CashAcctTransactionAmount.Create(4363.82M),
                ExternalAgentId.Create(new Guid("12998229-7ede-4834-825a-0c55bde75695")),
                EconomicEventId.Create(new Guid("cf4279a1-da26-4d10-bff0-cf6e0933661c")),
                CheckNumber.Create("12214554"),
                "12M877",
                UserId.Create(new Guid("660bb318-649e-470d-9d2b-693bfb0b2744"))
                                                 );

            account.AddCashAccountTransaction(transaction);
            _cashAcctRepo.Update(account);
            await _unitOfWork.Commit();
        }
Example #27
0
        // *** Start programmer edit section *** (ДоговорБС CustomMembers)

        // *** End programmer edit section *** (ДоговорБС CustomMembers)


        // *** Start programmer edit section *** (OnUpdateДоговор CustomAttributes)

        // *** End programmer edit section *** (OnUpdateДоговор CustomAttributes)
        public virtual ICSSoft.STORMNET.DataObject[] OnUpdateДоговор(IIS.Product_58826.Договор UpdatedObject)
        {
            // *** Start programmer edit section *** (OnUpdateДоговор)
            if (UpdatedObject.GetStatus() == ICSSoft.STORMNET.ObjectStatus.Deleted)
            {   //КАСКАДНОЕ УДАЛЕНИЕ
                DataService.LoadObject(UpdatedObject);
                UpdatedObject.SetStatus(ICSSoft.STORMNET.ObjectStatus.Altered);
                UpdatedObject.Актуальность = false;
            }
            //  ПРОВЕРКА КОРРЕКТНОСТИ НОМЕРА ДОГОВОРА
            if (CheckNumber.GetCodeForRecordBook(UpdatedObject.Номер) != "true")
            {
                var    эталон  = ConfigurationManager.AppSettings["template"];
                string message = CheckNumber.GetCodeForRecordBook(UpdatedObject.Номер) + " Эталон: " + эталон;
                throw new Exception(message);
            }

            var array = ((SQLDataService)DataService).Query <Договор>(Договор.Views.ДоговорE).Where(k => k.Номер == UpdatedObject.Номер).Where(k => k.Актуальность == true).ToArray();

            foreach (var arr in array)
            {
                if (UpdatedObject.Актуальность == true)
                {
                    throw new Exception("Договор с таким номером уже существует!");
                }
            }

            if (UpdatedObject.Актуальность == true)
            {
                var begin = UpdatedObject.Начало;
                var end   = UpdatedObject.Конец;
                if (begin >= end)
                {
                    throw new Exception("Некорректная запись дат заключения и окончания договора!");
                }
            }

            return(new ICSSoft.STORMNET.DataObject[0]);
            // *** End programmer edit section *** (OnUpdateДоговор)
        }
Example #28
0
        /// <inheritdoc/>
        public string ToDelimitedString()
        {
            CultureInfo culture = CultureInfo.CurrentCulture;

            return(string.Format(
                       culture,
                       StringHelper.StringFormatSequence(0, 13, Configuration.FieldSeparator),
                       Id,
                       PaymentRemittanceAdviceNumber?.ToDelimitedString(),
                       PaymentRemittanceEffectiveDateTime.HasValue ? PaymentRemittanceEffectiveDateTime.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       PaymentRemittanceExpirationDateTime.HasValue ? PaymentRemittanceExpirationDateTime.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       PaymentMethod?.ToDelimitedString(),
                       PaymentRemittanceDateTime.HasValue ? PaymentRemittanceDateTime.Value.ToString(Consts.DateTimeFormatPrecisionSecond, culture) : null,
                       PaymentRemittanceAmount?.ToDelimitedString(),
                       CheckNumber?.ToDelimitedString(),
                       PayeeBankIdentification?.ToDelimitedString(),
                       PayeeTransitNumber,
                       PayeeBankAccountId?.ToDelimitedString(),
                       PaymentOrganization?.ToDelimitedString(),
                       EsrCodeLine
                       ).TrimEnd(Configuration.FieldSeparator.ToCharArray()));
        }
Example #29
0
        static void Main(string[] args)
        {
            CheckNumber myNumber  = new CheckNumber();
            CheckNumber myNumber2 = new CheckNumber();

            for (int i = 2; i < 10; i++)
            {
                if (myNumber.IsSimple(i))
                {
                    Console.WriteLine("{0} is Simple Number", i);
                }
                else
                {
                    Console.WriteLine("{0} is NOT Simple Number", i);
                }
            }

            int a = 14, b = 49;

            Console.WriteLine("Наименьший общий множитель чисел {0}", myNumber2.LeastComFactor(a, b));

            Console.ReadKey();
        }
Example #30
0
        public void TestGetCodeForRecordBook_CorrectDogovorNumber1() // с английскими буквами
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "273dhw729",
                Информация    = "Информация для тестового договора."
            };

            ///Act.
            //   var ex = Assert.Throws<ArgumentNullException>(() => CheckNumber.GetCodeForRecordBook(договор));

            var expectedКорректность = true;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);


            ///Assert.
            //        Assert.Contains("Некорректный номер договора", ex.Message);
        }