479 lines
16 KiB
C#
479 lines
16 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.CompilerServices;
|
|
using AGUI.StackedUI;
|
|
using AGUI.StackedUI.Dialog;
|
|
using CodeStage.AntiCheat.ObscuredTypes;
|
|
using Cpp2IlInjected;
|
|
using RecRoom.Core;
|
|
using UnityEngine;
|
|
|
|
namespace RRUI.Data
|
|
{
|
|
// Token: 0x02000D82 RID: 3458
|
|
[Token(Token = "0x2000D82")]
|
|
public class RoomBannedAccountListModel : AccountListModel
|
|
{
|
|
// Token: 0x060051D7 RID: 20951 RVA: 0x001288EC File Offset: 0x00126AEC
|
|
[Token(Token = "0x60051D7")]
|
|
[Address(RVA = "0x1238ED0", Offset = "0x1237CD0", VA = "0x181238ED0")]
|
|
public void Set(long HNHLJONGKHB)
|
|
{
|
|
base.DADOKMAOFJL = HNHLJONGKHB;
|
|
}
|
|
|
|
// Token: 0x060051D8 RID: 20952 RVA: 0x00128900 File Offset: 0x00126B00
|
|
[Token(Token = "0x60051D8")]
|
|
[Address(RVA = "0x1238BD0", Offset = "0x12379D0", VA = "0x181238BD0", Slot = "22")]
|
|
protected override void AHFKACICJNC()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060051D9 RID: 20953 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x60051D9")]
|
|
[Address(RVA = "0x1238BE0", Offset = "0x12379E0", VA = "0x181238BE0", Slot = "36")]
|
|
protected override PMGCJEPKFOF<IReadOnlyList<CCEOLAOLEKJ>> JLMBBMAEFPA()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x060051DA RID: 20954 RVA: 0x00128910 File Offset: 0x00126B10
|
|
[Token(Token = "0x60051DA")]
|
|
[Address(RVA = "0x1238EE0", Offset = "0x1237CE0", VA = "0x181238EE0")]
|
|
public void ShowImportRoomBanPickerDialog()
|
|
{
|
|
long hnhljongkhb = this.HNHLJONGKHB;
|
|
int num = 0;
|
|
PMGCJEPKFOF<PPENFJMFPNE> pmgcjepkfof = OJMCBOKJFOF.CJKHNIIJFIN(hnhljongkhb, num != 0);
|
|
if (RoomBannedAccountListModel.<>c.<>9__3_0 == 0)
|
|
{
|
|
RoomBannedAccountListModel.<>c.<>9__3_0 = delegate(PPENFJMFPNE roomDetails)
|
|
{
|
|
ImportRoomBansScreen flowByType = WatchUI.BFPPPLIJIGC.GetFlowByType<ImportRoomBansScreen>();
|
|
int num2 = 0;
|
|
if (flowByType != num2)
|
|
{
|
|
flowByType.ShowScreen(roomDetails);
|
|
}
|
|
};
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060051DB RID: 20955 RVA: 0x00128950 File Offset: 0x00126B50
|
|
[Token(Token = "0x60051DB")]
|
|
[Address(RVA = "0x12393A0", Offset = "0x12381A0", VA = "0x1812393A0")]
|
|
public void TryImportBlockList()
|
|
{
|
|
long hnhljongkhb = this.HNHLJONGKHB;
|
|
int num = 0;
|
|
PMGCJEPKFOF<PPENFJMFPNE> pmgcjepkfof = OJMCBOKJFOF.CJKHNIIJFIN(hnhljongkhb, num != 0);
|
|
Action<PPENFJMFPNE> action = new Action(this.MELNOBCKOFC);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060051DC RID: 20956 RVA: 0x00128980 File Offset: 0x00126B80
|
|
[Token(Token = "0x60051DC")]
|
|
[Address(RVA = "0x1239010", Offset = "0x1237E10", VA = "0x181239010")]
|
|
public void ShowViewRoomBansDialog()
|
|
{
|
|
RoomBannedAccountListModel.FJNABOOKFEF fjnabookfef = new RoomBannedAccountListModel.FJNABOOKFEF();
|
|
fjnabookfef.<>4__this = this;
|
|
int num = 0;
|
|
fjnabookfef.activeDialog = num;
|
|
HashSet<int> hashSet = new HashSet();
|
|
fjnabookfef.indicesToUnban = hashSet;
|
|
IMAFJGKHEMD imafjgkhemd = new IMAFJGKHEMD();
|
|
imafjgkhemd.GPJEDBDCNNP = "Cancel";
|
|
imafjgkhemd.GPJAHEOLCPN = num;
|
|
Action action = delegate
|
|
{
|
|
fjnabookfef.activeDialog.Dismiss();
|
|
};
|
|
imafjgkhemd.MEEKCCGGFFD = action;
|
|
IMAFJGKHEMD imafjgkhemd2 = new IMAFJGKHEMD();
|
|
imafjgkhemd2.GPJEDBDCNNP = "Unban players";
|
|
imafjgkhemd2.GPJAHEOLCPN = num;
|
|
Action action2 = delegate
|
|
{
|
|
int num2;
|
|
do
|
|
{
|
|
num2 = 0;
|
|
HashSet<int> indicesToUnban2 = fjnabookfef.indicesToUnban;
|
|
DABKFAIHBBP <EIDHKJMHBEC>k__BackingField = JJEKJGALHKO.<EIDHKJMHBEC>k__BackingField;
|
|
HashSet<int> indicesToUnban3 = fjnabookfef.indicesToUnban;
|
|
bool flag;
|
|
if (flag)
|
|
{
|
|
RoomBannedAccountListModel <>4__this = fjnabookfef.<>4__this;
|
|
num2 += num2;
|
|
num2++;
|
|
int accountId = <>4__this;
|
|
Func<DABKFAIHBBP> func = delegate
|
|
{
|
|
RoomBannedAccountListModel <>4__this3 = fjnabookfef.<>4__this;
|
|
int accountId2 = accountId;
|
|
long hnhljongkhb = <>4__this3.HNHLJONGKHB;
|
|
int num3 = 0;
|
|
return OJMCBOKJFOF.JMCJDGIMKPK(hnhljongkhb, accountId2, (KKIHLHLNGCK)num3);
|
|
};
|
|
num2 += num2;
|
|
num2++;
|
|
func += func;
|
|
num2 += 19;
|
|
func += func;
|
|
num2 += 7;
|
|
num2 += 19;
|
|
}
|
|
}
|
|
while (num2 != 0);
|
|
if (fjnabookfef.<>9__4 == 0)
|
|
{
|
|
Action action5 = delegate
|
|
{
|
|
fjnabookfef.<>4__this.ADJIAENKNAN.AddMessageToast("Successfully unbanned players.");
|
|
};
|
|
fjnabookfef.<>9__4 = action5;
|
|
}
|
|
if (fjnabookfef.<>9__5 == 0)
|
|
{
|
|
Action<string> action6 = delegate(string err)
|
|
{
|
|
fjnabookfef.<>4__this.ADJIAENKNAN.AddMessageToast(err);
|
|
};
|
|
fjnabookfef.<>9__5 = action6;
|
|
}
|
|
if (fjnabookfef.<>9__6 == 0)
|
|
{
|
|
Action action7 = delegate
|
|
{
|
|
fjnabookfef.activeDialog.Dismiss();
|
|
RoomBannedAccountListModel <>4__this4 = fjnabookfef.<>4__this;
|
|
int num4 = 0;
|
|
<>4__this4.MKBLJJGJAOH(num4);
|
|
};
|
|
fjnabookfef.<>9__6 = action7;
|
|
}
|
|
RoomBannedAccountListModel <>4__this2 = fjnabookfef.<>4__this;
|
|
};
|
|
imafjgkhemd2.MEEKCCGGFFD = action2;
|
|
GameObject accountCardPickerDialog = RoomsConfig.Instance.AccountCardPickerDialog;
|
|
HashSet<int> indicesToUnban = fjnabookfef.indicesToUnban;
|
|
Action<GameObject, int, CardModel, AccountModel, BAEJLDPBGFI> action3 = delegate(GameObject instance, int index, CardModel cardModel, AccountModel accountModel, BAEJLDPBGFI toCardController)
|
|
{
|
|
RoomBannedAccountListModel <>4__this5 = fjnabookfef.<>4__this;
|
|
Action<CCEOLAOLEKJ> action8 = delegate(CCEOLAOLEKJ account)
|
|
{
|
|
CardModel cardModel = cardModel;
|
|
string text = ObscuredString.FAJDMKOEFLH(account.<ODJFEIBNGPO>k__BackingField);
|
|
cardModel.KDHCPIMIJAO = text;
|
|
ObscuredString <KHJCEENDAOL>k__BackingField = account.<KHJCEENDAOL>k__BackingField;
|
|
CardModel cardModel2 = cardModel;
|
|
string text2 = string.Format("@{0}", <KHJCEENDAOL>k__BackingField);
|
|
cardModel2.FGOGOMCODDP = text2;
|
|
};
|
|
throw new NullReferenceException();
|
|
};
|
|
List<DOPNALIMPNA> list = new List();
|
|
list.Add(imafjgkhemd);
|
|
list.Add(imafjgkhemd2);
|
|
GCKECFLKJGJ gckecflkjgj;
|
|
gckecflkjgj.<CEJPKGDKMJE>k__BackingField = "Room Banned Players";
|
|
gckecflkjgj.<KEOPECIOAGK>k__BackingField = (IECOEANLJCJ)((ulong)2L);
|
|
PMGCJEPKFOF pmgcjepkfof = base.PKJJDBNMMEA.AddDialog<GCKECFLKJGJ>(DLKPBLNKLAD.GRID_PICKER_DIALOG, gckecflkjgj);
|
|
Action<BaseDialogModel<GCKECFLKJGJ>> action4 = delegate(BaseDialogModel<GCKECFLKJGJ> dialog)
|
|
{
|
|
if (dialog == 0)
|
|
{
|
|
int num5 = 0;
|
|
fjnabookfef.activeDialog = num5;
|
|
return;
|
|
}
|
|
fjnabookfef.activeDialog = dialog;
|
|
};
|
|
if (num < fjnabookfef)
|
|
{
|
|
num += num;
|
|
if (num == fjnabookfef)
|
|
{
|
|
pmgcjepkfof += pmgcjepkfof;
|
|
throw new NullReferenceException();
|
|
}
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x060051DD RID: 20957 RVA: 0x00128AA4 File Offset: 0x00126CA4
|
|
[Token(Token = "0x60051DD")]
|
|
[Address(RVA = "0x1239460", Offset = "0x1238260", VA = "0x181239460")]
|
|
public RoomBannedAccountListModel()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060051DE RID: 20958 RVA: 0x00128AB8 File Offset: 0x00126CB8
|
|
[Token(Token = "0x60051DE")]
|
|
[Address(RVA = "0x1238DF0", Offset = "0x1237BF0", VA = "0x181238DF0")]
|
|
[CompilerGenerated]
|
|
private void MELNOBCKOFC(PPENFJMFPNE IJNAMEBOMJJ)
|
|
{
|
|
ImportBlockListToRoomBanScreen flowByType = WatchUI.BFPPPLIJIGC.GetFlowByType<ImportBlockListToRoomBanScreen>();
|
|
int num = 0;
|
|
if (flowByType != num)
|
|
{
|
|
List<int> list;
|
|
flowByType.ShowScreen(IJNAMEBOMJJ, list);
|
|
}
|
|
}
|
|
|
|
// Token: 0x02000D84 RID: 3460
|
|
[Token(Token = "0x2000D84")]
|
|
[CompilerGenerated]
|
|
private sealed class FJNABOOKFEF
|
|
{
|
|
// Token: 0x060051E5 RID: 20965 RVA: 0x00128BE8 File Offset: 0x00126DE8
|
|
[Token(Token = "0x60051E5")]
|
|
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
|
public FJNABOOKFEF()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060051E6 RID: 20966 RVA: 0x00128BFC File Offset: 0x00126DFC
|
|
[Token(Token = "0x60051E6")]
|
|
[Address(RVA = "0x122D0B0", Offset = "0x122BEB0", VA = "0x18122D0B0")]
|
|
internal void <ShowViewRoomBansDialog>b__2()
|
|
{
|
|
this.activeDialog.Dismiss();
|
|
}
|
|
|
|
// Token: 0x060051E7 RID: 20967 RVA: 0x00128C1C File Offset: 0x00126E1C
|
|
[Token(Token = "0x60051E7")]
|
|
[Address(RVA = "0x122D0D0", Offset = "0x122BED0", VA = "0x18122D0D0")]
|
|
internal void <ShowViewRoomBansDialog>b__3()
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
HashSet<int> hashSet = this.indicesToUnban;
|
|
DABKFAIHBBP <EIDHKJMHBEC>k__BackingField = JJEKJGALHKO.<EIDHKJMHBEC>k__BackingField;
|
|
HashSet<int> hashSet2 = this.indicesToUnban;
|
|
bool flag;
|
|
if (flag)
|
|
{
|
|
RoomBannedAccountListModel.CIJAKOCPEAL cijakocpeal = new RoomBannedAccountListModel.CIJAKOCPEAL();
|
|
cijakocpeal.CS$<>8__locals1 = this;
|
|
RoomBannedAccountListModel roomBannedAccountListModel = this.<>4__this;
|
|
num += num;
|
|
num++;
|
|
cijakocpeal.accountId = roomBannedAccountListModel;
|
|
Func<DABKFAIHBBP> func = delegate
|
|
{
|
|
RoomBannedAccountListModel roomBannedAccountListModel3 = cijakocpeal.CS$<>8__locals1.<>4__this;
|
|
int accountId = cijakocpeal.accountId;
|
|
long hnhljongkhb = roomBannedAccountListModel3.HNHLJONGKHB;
|
|
int num2 = 0;
|
|
return OJMCBOKJFOF.JMCJDGIMKPK(hnhljongkhb, accountId, (KKIHLHLNGCK)num2);
|
|
};
|
|
num += num;
|
|
num++;
|
|
func += func;
|
|
num += 19;
|
|
func += func;
|
|
num += 7;
|
|
num += 19;
|
|
}
|
|
}
|
|
while (num != 0);
|
|
if (this.<>9__4 == 0)
|
|
{
|
|
Action action = delegate
|
|
{
|
|
this.<>4__this.ADJIAENKNAN.AddMessageToast("Successfully unbanned players.");
|
|
};
|
|
this.<>9__4 = action;
|
|
}
|
|
if (this.<>9__5 == 0)
|
|
{
|
|
Action<string> action2 = delegate(string err)
|
|
{
|
|
this.<>4__this.ADJIAENKNAN.AddMessageToast(err);
|
|
};
|
|
this.<>9__5 = action2;
|
|
}
|
|
if (this.<>9__6 == 0)
|
|
{
|
|
Action action3 = delegate
|
|
{
|
|
this.activeDialog.Dismiss();
|
|
RoomBannedAccountListModel roomBannedAccountListModel4 = this.<>4__this;
|
|
int num3 = 0;
|
|
roomBannedAccountListModel4.MKBLJJGJAOH(num3);
|
|
};
|
|
this.<>9__6 = action3;
|
|
}
|
|
RoomBannedAccountListModel roomBannedAccountListModel2 = this.<>4__this;
|
|
}
|
|
|
|
// Token: 0x060051E8 RID: 20968 RVA: 0x00128D3C File Offset: 0x00126F3C
|
|
[Token(Token = "0x60051E8")]
|
|
[Address(RVA = "0x122D580", Offset = "0x122C380", VA = "0x18122D580")]
|
|
internal void <ShowViewRoomBansDialog>b__4()
|
|
{
|
|
this.<>4__this.ADJIAENKNAN.AddMessageToast("Successfully unbanned players.");
|
|
}
|
|
|
|
// Token: 0x060051E9 RID: 20969 RVA: 0x00128D64 File Offset: 0x00126F64
|
|
[Token(Token = "0x60051E9")]
|
|
[Address(RVA = "0x122D5E0", Offset = "0x122C3E0", VA = "0x18122D5E0")]
|
|
internal void <ShowViewRoomBansDialog>b__5(string err)
|
|
{
|
|
this.<>4__this.ADJIAENKNAN.AddMessageToast(err);
|
|
}
|
|
|
|
// Token: 0x060051EA RID: 20970 RVA: 0x00128D88 File Offset: 0x00126F88
|
|
[Token(Token = "0x60051EA")]
|
|
[Address(RVA = "0x122D650", Offset = "0x122C450", VA = "0x18122D650")]
|
|
internal void <ShowViewRoomBansDialog>b__6()
|
|
{
|
|
this.activeDialog.Dismiss();
|
|
RoomBannedAccountListModel roomBannedAccountListModel = this.<>4__this;
|
|
int num = 0;
|
|
roomBannedAccountListModel.MKBLJJGJAOH(num);
|
|
}
|
|
|
|
// Token: 0x060051EB RID: 20971 RVA: 0x00128DB8 File Offset: 0x00126FB8
|
|
[Token(Token = "0x60051EB")]
|
|
[Address(RVA = "0x122CED0", Offset = "0x122BCD0", VA = "0x18122CED0")]
|
|
internal void <ShowViewRoomBansDialog>b__0(GameObject instance, int index, CardModel cardModel, AccountModel accountModel, BAEJLDPBGFI toCardController)
|
|
{
|
|
RoomBannedAccountListModel.KDADBDBBJPM kdadbdbbjpm = new RoomBannedAccountListModel.KDADBDBBJPM();
|
|
kdadbdbbjpm.cardModel = cardModel;
|
|
RoomBannedAccountListModel roomBannedAccountListModel = this.<>4__this;
|
|
Action<CCEOLAOLEKJ> action = delegate(CCEOLAOLEKJ account)
|
|
{
|
|
CardModel cardModel2 = kdadbdbbjpm.cardModel;
|
|
string text = ObscuredString.FAJDMKOEFLH(account.<ODJFEIBNGPO>k__BackingField);
|
|
cardModel2.KDHCPIMIJAO = text;
|
|
ObscuredString <KHJCEENDAOL>k__BackingField = account.<KHJCEENDAOL>k__BackingField;
|
|
CardModel cardModel3 = kdadbdbbjpm.cardModel;
|
|
string text2 = string.Format("@{0}", <KHJCEENDAOL>k__BackingField);
|
|
cardModel3.FGOGOMCODDP = text2;
|
|
};
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060051EC RID: 20972 RVA: 0x00128DEC File Offset: 0x00126FEC
|
|
[Token(Token = "0x60051EC")]
|
|
[Address(RVA = "0x122D020", Offset = "0x122BE20", VA = "0x18122D020")]
|
|
internal void <ShowViewRoomBansDialog>b__1(BaseDialogModel<GCKECFLKJGJ> dialog)
|
|
{
|
|
if (dialog == 0)
|
|
{
|
|
int num = 0;
|
|
this.activeDialog = num;
|
|
return;
|
|
}
|
|
this.activeDialog = dialog;
|
|
}
|
|
|
|
// Token: 0x040039F7 RID: 14839
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40039F7")]
|
|
public PickerDialogModel activeDialog;
|
|
|
|
// Token: 0x040039F8 RID: 14840
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40039F8")]
|
|
public HashSet<int> indicesToUnban;
|
|
|
|
// Token: 0x040039F9 RID: 14841
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x40039F9")]
|
|
public RoomBannedAccountListModel <>4__this;
|
|
|
|
// Token: 0x040039FA RID: 14842
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40039FA")]
|
|
public Action <>9__4;
|
|
|
|
// Token: 0x040039FB RID: 14843
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40039FB")]
|
|
public Action<string> <>9__5;
|
|
|
|
// Token: 0x040039FC RID: 14844
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x40039FC")]
|
|
public Action <>9__6;
|
|
}
|
|
|
|
// Token: 0x02000D85 RID: 3461
|
|
[Token(Token = "0x2000D85")]
|
|
[CompilerGenerated]
|
|
private sealed class CIJAKOCPEAL
|
|
{
|
|
// Token: 0x060051ED RID: 20973 RVA: 0x00128E10 File Offset: 0x00127010
|
|
[Token(Token = "0x60051ED")]
|
|
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
|
public CIJAKOCPEAL()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060051EE RID: 20974 RVA: 0x00128E24 File Offset: 0x00127024
|
|
[Token(Token = "0x60051EE")]
|
|
[Address(RVA = "0x122B640", Offset = "0x122A440", VA = "0x18122B640")]
|
|
internal DABKFAIHBBP <ShowViewRoomBansDialog>b__7()
|
|
{
|
|
RoomBannedAccountListModel <>4__this = this.CS$<>8__locals1.<>4__this;
|
|
int num = this.accountId;
|
|
long hnhljongkhb = <>4__this.HNHLJONGKHB;
|
|
int num2 = 0;
|
|
return OJMCBOKJFOF.JMCJDGIMKPK(hnhljongkhb, num, (KKIHLHLNGCK)num2);
|
|
}
|
|
|
|
// Token: 0x040039FD RID: 14845
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40039FD")]
|
|
public int accountId;
|
|
|
|
// Token: 0x040039FE RID: 14846
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40039FE")]
|
|
public RoomBannedAccountListModel.FJNABOOKFEF CS$<>8__locals1;
|
|
}
|
|
|
|
// Token: 0x02000D86 RID: 3462
|
|
[Token(Token = "0x2000D86")]
|
|
[CompilerGenerated]
|
|
private sealed class KDADBDBBJPM
|
|
{
|
|
// Token: 0x060051EF RID: 20975 RVA: 0x00128E5C File Offset: 0x0012705C
|
|
[Token(Token = "0x60051EF")]
|
|
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
|
public KDADBDBBJPM()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060051F0 RID: 20976 RVA: 0x00128E70 File Offset: 0x00127070
|
|
[Token(Token = "0x60051F0")]
|
|
[Address(RVA = "0x122F670", Offset = "0x122E470", VA = "0x18122F670")]
|
|
internal void <ShowViewRoomBansDialog>b__8(CCEOLAOLEKJ account)
|
|
{
|
|
CardModel cardModel = this.cardModel;
|
|
string text = ObscuredString.FAJDMKOEFLH(account.<ODJFEIBNGPO>k__BackingField);
|
|
cardModel.KDHCPIMIJAO = text;
|
|
ObscuredString <KHJCEENDAOL>k__BackingField = account.<KHJCEENDAOL>k__BackingField;
|
|
CardModel cardModel2 = this.cardModel;
|
|
string text2 = string.Format("@{0}", <KHJCEENDAOL>k__BackingField);
|
|
cardModel2.FGOGOMCODDP = text2;
|
|
}
|
|
|
|
// Token: 0x040039FF RID: 14847
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40039FF")]
|
|
public CardModel cardModel;
|
|
}
|
|
}
|
|
}
|