854 lines
31 KiB
C#
854 lines
31 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.CompilerServices;
|
|
using Cpp2IlInjected;
|
|
using UnityEngine;
|
|
using UnityEngine.Rendering;
|
|
|
|
namespace RecRoom.Core
|
|
{
|
|
// Token: 0x02002C97 RID: 11415
|
|
[Token(Token = "0x2002C97")]
|
|
public class BlobShadowProjector : MonoBehaviour
|
|
{
|
|
// Token: 0x170035CB RID: 13771
|
|
// (get) Token: 0x06013606 RID: 79366 RVA: 0x004810DC File Offset: 0x0047F2DC
|
|
[Token(Token = "0x170035CB")]
|
|
private static Material GALCPGCKBMO
|
|
{
|
|
[Token(Token = "0x6013606")]
|
|
[Address(RVA = "0x142AA10", Offset = "0x1429810", VA = "0x18142AA10")]
|
|
get
|
|
{
|
|
Material neekenliddp = BlobShadowProjector.NEEKENLIDDP;
|
|
int num = 0;
|
|
if (neekenliddp == num)
|
|
{
|
|
BlobShadowProjector.NEEKENLIDDP = new Material(Resources.Load<Material>("legacy_BlobShadowCaster_mat"));
|
|
}
|
|
return BlobShadowProjector.NEEKENLIDDP;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06013607 RID: 79367 RVA: 0x00481114 File Offset: 0x0047F314
|
|
[Token(Token = "0x6013607")]
|
|
[Address(RVA = "0x1428D80", Offset = "0x1427B80", VA = "0x181428D80")]
|
|
public void AddBlobShadowsRestriction(object PIHIPPPPEBI)
|
|
{
|
|
this.GANNJAOJOCF.BPAJKKAGPKB(PIHIPPPPEBI);
|
|
this.HMHPBEEKEPO();
|
|
}
|
|
|
|
// Token: 0x06013608 RID: 79368 RVA: 0x0048113C File Offset: 0x0047F33C
|
|
[Token(Token = "0x6013608")]
|
|
[Address(RVA = "0x142B710", Offset = "0x142A510", VA = "0x18142B710")]
|
|
public void RemoveBlobShadowsRestriction(object PIHIPPPPEBI)
|
|
{
|
|
this.GANNJAOJOCF.BIHKNNPGGKP(PIHIPPPPEBI);
|
|
this.HMHPBEEKEPO();
|
|
}
|
|
|
|
// Token: 0x06013609 RID: 79369 RVA: 0x00481164 File Offset: 0x0047F364
|
|
[Token(Token = "0x6013609")]
|
|
[Address(RVA = "0x142B970", Offset = "0x142A770", VA = "0x18142B970")]
|
|
public void SetShadowType(BlobShadowProjector.NGFOOMIMEHP OKAKIIMFINJ)
|
|
{
|
|
if (this.AENELEOCFPJ != 0)
|
|
{
|
|
this.AENELEOCFPJ = (ulong)0L;
|
|
}
|
|
this.OKAKIIMFINJ = OKAKIIMFINJ;
|
|
Material cobheacenki;
|
|
if (OKAKIIMFINJ == BlobShadowProjector.NGFOOMIMEHP.SIMPLE_TEXTURE)
|
|
{
|
|
this.DMCIKDIBHBI();
|
|
Transform transform = this.projector.transform;
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
Transform transform2 = this.projector.transform;
|
|
Quaternion nnfhlbnnkml = BlobShadowProjector.NNFHLBNNKML;
|
|
transform2.rotation = nnfhlbnnkml;
|
|
Projector projector = this.projector;
|
|
float num = this.simpleTextureOrthographicProjectionSize;
|
|
projector.orthographicSize = num;
|
|
cobheacenki = this.COBHEACENKI;
|
|
Material material = this.simpleShadowMaterial;
|
|
int bmbhiolhcli = PAMNDKEGFFG.BMBHIOLHCLI;
|
|
Texture textureImpl = material.GetTextureImpl(bmbhiolhcli);
|
|
cobheacenki.SetTexture("_ShadowTex ", textureImpl);
|
|
return;
|
|
}
|
|
if (cobheacenki == (ulong)1L)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0601360A RID: 79370 RVA: 0x00481220 File Offset: 0x0047F420
|
|
[Token(Token = "0x601360A")]
|
|
[Address(RVA = "0x1428FD0", Offset = "0x1427DD0", VA = "0x181428FD0")]
|
|
public void AddShadowCaster(Renderer CHEJPOIMMCK)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0601360A)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void RecRoom.Core.BlobShadowProjector::AddShadowCaster(UnityEngine.Renderer)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_7:
|
|
stloc:int32(var_11_74, ldc.i4:int32(0))
|
|
brtrue(IL_00, logicnot:bool(call:bool(Object::op_Inequality, ldloc:Mesh[exp:Object](var_10), ldloc:int32[exp:Object](var_11_74))))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0601360B RID: 79371 RVA: 0x004812B4 File Offset: 0x0047F4B4
|
|
[Token(Token = "0x601360B")]
|
|
[Address(RVA = "0x1428EB0", Offset = "0x1427CB0", VA = "0x181428EB0")]
|
|
public void AddShadowCaster(MeshRenderer CHEJPOIMMCK)
|
|
{
|
|
MeshFilter component = CHEJPOIMMCK.gameObject.GetComponent<MeshFilter>();
|
|
int num = 0;
|
|
if (component != num)
|
|
{
|
|
Mesh sharedMesh = component.sharedMesh;
|
|
int num2 = 0;
|
|
if (sharedMesh != num2)
|
|
{
|
|
int subMeshCount = component.sharedMesh.subMeshCount;
|
|
this.AddShadowCaster(CHEJPOIMMCK, subMeshCount);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x0601360C RID: 79372 RVA: 0x00481308 File Offset: 0x0047F508
|
|
[Token(Token = "0x601360C")]
|
|
[Address(RVA = "0x1429400", Offset = "0x1428200", VA = "0x181429400")]
|
|
public void AddShadowCaster(SkinnedMeshRenderer CHEJPOIMMCK)
|
|
{
|
|
int num = 0;
|
|
if (CHEJPOIMMCK != num)
|
|
{
|
|
Mesh sharedMesh = CHEJPOIMMCK.sharedMesh;
|
|
int num2 = 0;
|
|
if (sharedMesh != num2)
|
|
{
|
|
int subMeshCount = CHEJPOIMMCK.sharedMesh.subMeshCount;
|
|
this.AddShadowCaster(CHEJPOIMMCK, subMeshCount);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x0601360D RID: 79373 RVA: 0x00481350 File Offset: 0x0047F550
|
|
[Token(Token = "0x601360D")]
|
|
[Address(RVA = "0x14292B0", Offset = "0x14280B0", VA = "0x1814292B0")]
|
|
public void AddShadowCaster(Renderer CHEJPOIMMCK, int CEJMFECOJJH)
|
|
{
|
|
int[] array = new int[CEJMFECOJJH];
|
|
int num = 0;
|
|
if (CEJMFECOJJH > 0)
|
|
{
|
|
array[0] = num;
|
|
num++;
|
|
}
|
|
List<BlobShadowProjector.LMNGIAIBKJL> ndfmdepfcgk = this.NDFMDEPFCGK;
|
|
ShadowCastingMode shadowCastingMode = CHEJPOIMMCK.shadowCastingMode;
|
|
if (base.gameObject.activeSelf)
|
|
{
|
|
int size = this.NDFMDEPFCGK._size;
|
|
int num2 = 0;
|
|
this.CGHFAAGEAMA(size, num2 != 0);
|
|
}
|
|
}
|
|
|
|
// Token: 0x0601360E RID: 79374 RVA: 0x004813B4 File Offset: 0x0047F5B4
|
|
[Token(Token = "0x601360E")]
|
|
[Address(RVA = "0x1428DC0", Offset = "0x1427BC0", VA = "0x181428DC0")]
|
|
public void AddShadowCaster(Renderer CHEJPOIMMCK, int[] CFLCELNKIBO)
|
|
{
|
|
List<BlobShadowProjector.LMNGIAIBKJL> ndfmdepfcgk = this.NDFMDEPFCGK;
|
|
ShadowCastingMode shadowCastingMode = CHEJPOIMMCK.shadowCastingMode;
|
|
if (base.gameObject.activeSelf)
|
|
{
|
|
int size = this.NDFMDEPFCGK._size;
|
|
int num = 0;
|
|
this.CGHFAAGEAMA(size, num != 0);
|
|
}
|
|
}
|
|
|
|
// Token: 0x0601360F RID: 79375 RVA: 0x004813FC File Offset: 0x0047F5FC
|
|
[Token(Token = "0x601360F")]
|
|
[Address(RVA = "0x14294E0", Offset = "0x14282E0", VA = "0x1814294E0")]
|
|
public void AddShadowOnlyRenderer(Renderer CHEJPOIMMCK)
|
|
{
|
|
this.CEEOGLKIFLI.Add(CHEJPOIMMCK);
|
|
if (base.gameObject.activeSelf)
|
|
{
|
|
int size = this.CEEOGLKIFLI._size;
|
|
int num = 0;
|
|
this.COJMIKLALKI(size, num != 0);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06013610 RID: 79376 RVA: 0x00481440 File Offset: 0x0047F640
|
|
[Token(Token = "0x6013610")]
|
|
[Address(RVA = "0x142B860", Offset = "0x142A660", VA = "0x18142B860")]
|
|
public void RemoveShadowOnlyRenderer(Renderer CHEJPOIMMCK)
|
|
{
|
|
List<Renderer> ceeoglkifli = this.CEEOGLKIFLI;
|
|
Predicate<Renderer> predicate = delegate(Renderer r)
|
|
{
|
|
Renderer renderer = CHEJPOIMMCK;
|
|
return r == renderer;
|
|
};
|
|
int num = ceeoglkifli.FindIndex(predicate);
|
|
this.COJMIKLALKI(num, true);
|
|
this.CEEOGLKIFLI.RemoveAt(num);
|
|
}
|
|
|
|
// Token: 0x06013611 RID: 79377 RVA: 0x00481490 File Offset: 0x0047F690
|
|
[Token(Token = "0x6013611")]
|
|
[Address(RVA = "0x142B750", Offset = "0x142A550", VA = "0x18142B750")]
|
|
public void RemoveShadowCaster(Renderer CHEJPOIMMCK)
|
|
{
|
|
List<BlobShadowProjector.LMNGIAIBKJL> ndfmdepfcgk = this.NDFMDEPFCGK;
|
|
Predicate<BlobShadowProjector.LMNGIAIBKJL> predicate = delegate(BlobShadowProjector.LMNGIAIBKJL r)
|
|
{
|
|
bool flag;
|
|
return flag;
|
|
};
|
|
int num = ndfmdepfcgk.FindIndex(predicate);
|
|
this.CGHFAAGEAMA(num, true);
|
|
this.NDFMDEPFCGK.RemoveAt(num);
|
|
}
|
|
|
|
// Token: 0x06013612 RID: 79378 RVA: 0x004814E0 File Offset: 0x0047F6E0
|
|
[Token(Token = "0x6013612")]
|
|
[Address(RVA = "0x142A9A0", Offset = "0x14297A0", VA = "0x18142A9A0")]
|
|
private void IEIODEAGCLJ(int EFBDCIJMFGD)
|
|
{
|
|
this.CGHFAAGEAMA(EFBDCIJMFGD, true);
|
|
this.NDFMDEPFCGK.RemoveAt(EFBDCIJMFGD);
|
|
}
|
|
|
|
// Token: 0x06013613 RID: 79379 RVA: 0x00481508 File Offset: 0x0047F708
|
|
[Token(Token = "0x6013613")]
|
|
[Address(RVA = "0x1429980", Offset = "0x1428780", VA = "0x181429980")]
|
|
private void CMDCJDIGMPO(int EFBDCIJMFGD)
|
|
{
|
|
this.COJMIKLALKI(EFBDCIJMFGD, true);
|
|
this.CEEOGLKIFLI.RemoveAt(EFBDCIJMFGD);
|
|
}
|
|
|
|
// Token: 0x06013614 RID: 79380 RVA: 0x00481530 File Offset: 0x0047F730
|
|
[Token(Token = "0x6013614")]
|
|
[Address(RVA = "0x142BB50", Offset = "0x142A950", VA = "0x18142BB50")]
|
|
private void Start()
|
|
{
|
|
Color black = Color.black;
|
|
if (RenderSettings.ambientMode != AmbientMode.Skybox)
|
|
{
|
|
if (RenderSettings.ambientMode != AmbientMode.Trilight && RenderSettings.ambientMode == AmbientMode.Flat)
|
|
{
|
|
Color ambientLight = RenderSettings.ambientLight;
|
|
}
|
|
Color ambientEquatorColor = RenderSettings.ambientEquatorColor;
|
|
Color ambientSkyColor = RenderSettings.ambientSkyColor;
|
|
}
|
|
SphericalHarmonicsL2 ambientProbe = RenderSettings.ambientProbe;
|
|
float shr = ambientProbe.shr4;
|
|
float shr2 = ambientProbe.shr8;
|
|
float shg = ambientProbe.shg3;
|
|
float shg2 = ambientProbe.shg7;
|
|
float shb = ambientProbe.shb2;
|
|
float shb2 = ambientProbe.shb8;
|
|
Color[] gjbjlmpplac = BlobShadowProjector.GJBJLMPPLAC;
|
|
Vector3[] nplkpdhopio = BlobShadowProjector.NPLKPDHOPIO;
|
|
Color color = BlobShadowProjector.GJBJLMPPLAC[0];
|
|
Material material = BlobShadowProjector.GALCPGCKBMO;
|
|
int cchofpafeho = PAMNDKEGFFG.CCHOFPAFEHO;
|
|
material.SetColor(cchofpafeho, color);
|
|
BlobShadowProjector.NGFOOMIMEHP ngfoomimehp = this.defaultShadowType;
|
|
this.SetShadowType(ngfoomimehp);
|
|
}
|
|
|
|
// Token: 0x06013615 RID: 79381 RVA: 0x00481600 File Offset: 0x0047F800
|
|
[Token(Token = "0x6013615")]
|
|
[Address(RVA = "0x142B480", Offset = "0x142A280", VA = "0x18142B480")]
|
|
private void OnDestroy()
|
|
{
|
|
this.KLBGBMAMCBE();
|
|
CommandBuffer fcbnllkmgca = this.FCBNLLKMGCA;
|
|
if (fcbnllkmgca != 0)
|
|
{
|
|
fcbnllkmgca.Dispose();
|
|
this.FCBNLLKMGCA = (ulong)0L;
|
|
}
|
|
RenderTexture ldekhandcbo = this.LDEKHANDCBO;
|
|
int num = 0;
|
|
if (ldekhandcbo != num)
|
|
{
|
|
this.LDEKHANDCBO.Release();
|
|
global::UnityEngine.Object.DestroyImmediate(this.LDEKHANDCBO);
|
|
this.LDEKHANDCBO = (ulong)0L;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06013616 RID: 79382 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6013616")]
|
|
[Address(RVA = "0x1429AE0", Offset = "0x14288E0", VA = "0x181429AE0")]
|
|
private void DLMCOIEADFM()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06013617 RID: 79383 RVA: 0x00481668 File Offset: 0x0047F868
|
|
[Token(Token = "0x6013617")]
|
|
[Address(RVA = "0x142B1A0", Offset = "0x1429FA0", VA = "0x18142B1A0")]
|
|
private void LEPIDKOPKFD(Camera FOMHGMLPOND)
|
|
{
|
|
this.EMNCGLMGGKO = FOMHGMLPOND;
|
|
CommandBuffer fcbnllkmgca = this.FCBNLLKMGCA;
|
|
FOMHGMLPOND.AddCommandBuffer(CameraEvent.AfterEverything, fcbnllkmgca);
|
|
}
|
|
|
|
// Token: 0x06013618 RID: 79384 RVA: 0x00481694 File Offset: 0x0047F894
|
|
[Token(Token = "0x6013618")]
|
|
[Address(RVA = "0x142AF00", Offset = "0x1429D00", VA = "0x18142AF00")]
|
|
private void KLBGBMAMCBE()
|
|
{
|
|
Camera emncglmggko = this.EMNCGLMGGKO;
|
|
int num = 0;
|
|
if (emncglmggko != num)
|
|
{
|
|
CommandBuffer fcbnllkmgca = this.FCBNLLKMGCA;
|
|
if (fcbnllkmgca != 0)
|
|
{
|
|
this.EMNCGLMGGKO.RemoveCommandBuffer(CameraEvent.AfterEverything, fcbnllkmgca);
|
|
this.EMNCGLMGGKO = (ulong)0L;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06013619 RID: 79385 RVA: 0x004816DC File Offset: 0x0047F8DC
|
|
[Token(Token = "0x6013619")]
|
|
[Address(RVA = "0x142B2B0", Offset = "0x142A0B0", VA = "0x18142B2B0")]
|
|
private void MAAECGEFHHJ(Vector3 MKCJABBMECA, Quaternion NLDGJPBGEHE, float EAJBOGJGDAI, float JBKGOAEDLPF, float PCHLEFJPDIG, out Matrix4x4 AOOBGMEJMOG, out Matrix4x4 KNPJJPFNGCJ)
|
|
{
|
|
float z = Vector3.one.z;
|
|
float z2 = MKCJABBMECA.z;
|
|
Matrix4x4 matrix4x;
|
|
float m = matrix4x.m01;
|
|
float m2 = matrix4x.m02;
|
|
float m3 = matrix4x.m03;
|
|
}
|
|
|
|
// Token: 0x0601361A RID: 79386 RVA: 0x00481718 File Offset: 0x0047F918
|
|
[Token(Token = "0x601361A")]
|
|
[Address(RVA = "0x142A7D0", Offset = "0x14295D0", VA = "0x18142A7D0")]
|
|
private Rect EPFBABCJILG()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0601361B RID: 79387 RVA: 0x00481728 File Offset: 0x0047F928
|
|
[Token(Token = "0x601361B")]
|
|
[Address(RVA = "0x142B1D0", Offset = "0x1429FD0", VA = "0x18142B1D0")]
|
|
private void LKGOIDEPABM()
|
|
{
|
|
RenderTexture ldekhandcbo = this.LDEKHANDCBO;
|
|
int num = 0;
|
|
if (ldekhandcbo == num)
|
|
{
|
|
int num2;
|
|
int num3;
|
|
RenderTexture renderTexture = new RenderTexture(256, 256, num2, (RenderTextureFormat)num3);
|
|
num3 = 0;
|
|
num2 = 0;
|
|
this.LDEKHANDCBO = renderTexture;
|
|
renderTexture.antiAliasing = 8;
|
|
this.LDEKHANDCBO.wrapMode = TextureWrapMode.Clamp;
|
|
this.LDEKHANDCBO.filterMode = FilterMode.Bilinear;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0601361C RID: 79388 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x601361C")]
|
|
[Address(RVA = "0x142B560", Offset = "0x142A360", VA = "0x18142B560")]
|
|
private void PLJOLAJJANH()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0601361D RID: 79389 RVA: 0x0048178C File Offset: 0x0047F98C
|
|
[Token(Token = "0x601361D")]
|
|
[Address(RVA = "0x142AD70", Offset = "0x1429B70", VA = "0x18142AD70")]
|
|
private Bounds KKCKABAMJCP()
|
|
{
|
|
ThrowHelper.ThrowArgumentOutOfRangeException();
|
|
ThrowHelper.ThrowArgumentOutOfRangeException();
|
|
uint num;
|
|
num += (uint)1;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0601361E RID: 79390 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x601361E")]
|
|
[Address(RVA = "0x1429570", Offset = "0x1428370", VA = "0x181429570")]
|
|
private void CAKJCLNLJCJ()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0601361F RID: 79391 RVA: 0x004817B4 File Offset: 0x0047F9B4
|
|
[Token(Token = "0x601361F")]
|
|
[Address(RVA = "0x142AB50", Offset = "0x1429950", VA = "0x18142AB50")]
|
|
private void JKIONLJEINP()
|
|
{
|
|
LightProbes lightProbes = LightmapSettings.lightProbes;
|
|
int num = 0;
|
|
if (lightProbes != num && LightmapSettings.lightProbes.count > 0)
|
|
{
|
|
Transform transform = this.projector.transform;
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
Color[] gjbjlmpplac = BlobShadowProjector.GJBJLMPPLAC;
|
|
Vector3[] nplkpdhopio = BlobShadowProjector.NPLKPDHOPIO;
|
|
Material material = BlobShadowProjector.GALCPGCKBMO;
|
|
int cchofpafeho = PAMNDKEGFFG.CCHOFPAFEHO;
|
|
Color color = BlobShadowProjector.GJBJLMPPLAC[0];
|
|
material.SetColor(cchofpafeho, color);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06013620 RID: 79392 RVA: 0x00481838 File Offset: 0x0047FA38
|
|
[Token(Token = "0x6013620")]
|
|
[Address(RVA = "0x142AD20", Offset = "0x1429B20", VA = "0x18142AD20")]
|
|
private void KEJKFCGDBJC()
|
|
{
|
|
if (this.AENELEOCFPJ != 0)
|
|
{
|
|
this.AENELEOCFPJ = (ulong)0L;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06013621 RID: 79393 RVA: 0x00481858 File Offset: 0x0047FA58
|
|
[Token(Token = "0x6013621")]
|
|
[Address(RVA = "0x142A450", Offset = "0x1429250", VA = "0x18142A450")]
|
|
private void DPDGFLHIOIF()
|
|
{
|
|
this.DMCIKDIBHBI();
|
|
Transform transform = this.projector.transform;
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
Transform transform2 = this.projector.transform;
|
|
Quaternion nnfhlbnnkml = BlobShadowProjector.NNFHLBNNKML;
|
|
transform2.rotation = nnfhlbnnkml;
|
|
Projector projector = this.projector;
|
|
float num = this.simpleTextureOrthographicProjectionSize;
|
|
projector.orthographicSize = num;
|
|
Material cobheacenki = this.COBHEACENKI;
|
|
Material material = this.simpleShadowMaterial;
|
|
int bmbhiolhcli = PAMNDKEGFFG.BMBHIOLHCLI;
|
|
Texture textureImpl = material.GetTextureImpl(bmbhiolhcli);
|
|
cobheacenki.SetTexture("_ShadowTex ", textureImpl);
|
|
}
|
|
|
|
// Token: 0x06013622 RID: 79394 RVA: 0x004818E8 File Offset: 0x0047FAE8
|
|
[Token(Token = "0x6013622")]
|
|
[Address(RVA = "0x142AFA0", Offset = "0x1429DA0", VA = "0x18142AFA0")]
|
|
private void KNPJCDAJBPH()
|
|
{
|
|
RenderTexture ldekhandcbo = this.LDEKHANDCBO;
|
|
int num = 0;
|
|
if (ldekhandcbo == num)
|
|
{
|
|
int num2;
|
|
int num3;
|
|
RenderTexture renderTexture = new RenderTexture(256, 256, num2, (RenderTextureFormat)num3);
|
|
num3 = 0;
|
|
num2 = 0;
|
|
this.LDEKHANDCBO = renderTexture;
|
|
renderTexture.antiAliasing = 8;
|
|
this.LDEKHANDCBO.wrapMode = TextureWrapMode.Clamp;
|
|
this.LDEKHANDCBO.filterMode = FilterMode.Bilinear;
|
|
}
|
|
this.DMCIKDIBHBI();
|
|
Material cobheacenki = this.COBHEACENKI;
|
|
RenderTexture ldekhandcbo2 = this.LDEKHANDCBO;
|
|
cobheacenki.SetTexture("_ShadowTex", ldekhandcbo2);
|
|
if (this.FCBNLLKMGCA == (ulong)0L)
|
|
{
|
|
CommandBuffer commandBuffer = new CommandBuffer();
|
|
this.FCBNLLKMGCA = commandBuffer;
|
|
}
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
this.OBBNIMOFFHF.z = z;
|
|
Projector projector = this.projector;
|
|
Quaternion nnfhlbnnkml = BlobShadowProjector.NNFHLBNNKML;
|
|
this.EMFBNOFGDFM = nnfhlbnnkml;
|
|
float orthographicSize = projector.orthographicSize;
|
|
this.LOGPNANGLOD = orthographicSize;
|
|
Action action = new Action(this.DLMCOIEADFM);
|
|
IDisposable disposable = this.OEMBBKDJFCB(action);
|
|
this.AENELEOCFPJ = disposable;
|
|
}
|
|
|
|
// Token: 0x06013623 RID: 79395 RVA: 0x004819E8 File Offset: 0x0047FBE8
|
|
[Token(Token = "0x6013623")]
|
|
[Address(RVA = "0x142A5D0", Offset = "0x14293D0", VA = "0x18142A5D0")]
|
|
private Vector3 ENAIEFOMLJC()
|
|
{
|
|
Transform transform;
|
|
Transform parent = transform.parent;
|
|
int num = 0;
|
|
if (parent != num)
|
|
{
|
|
Transform transform2;
|
|
Transform parent2 = transform2.parent;
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
float z2 = Vector3.up.z;
|
|
Vector3 vector2;
|
|
float z3 = vector2.z;
|
|
Vector3 vector3;
|
|
float z4 = vector3.z;
|
|
}
|
|
float z5 = Vector3.up.z;
|
|
Vector3 vector4;
|
|
float z6 = vector4.z;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06013624 RID: 79396 RVA: 0x00481A54 File Offset: 0x0047FC54
|
|
[Token(Token = "0x6013624")]
|
|
[Address(RVA = "0x142A850", Offset = "0x1429650", VA = "0x18142A850")]
|
|
private void HMHPBEEKEPO()
|
|
{
|
|
bool flag = this.GANNJAOJOCF.CFLJGNJLBFG;
|
|
bool flag2 = !flag;
|
|
List<BlobShadowProjector.LMNGIAIBKJL> ndfmdepfcgk = this.NDFMDEPFCGK;
|
|
bool flag3 = flag;
|
|
int num = 0;
|
|
this.CGHFAAGEAMA(num, flag3);
|
|
List<BlobShadowProjector.LMNGIAIBKJL> ndfmdepfcgk2 = this.NDFMDEPFCGK;
|
|
num++;
|
|
List<Renderer> ceeoglkifli = this.CEEOGLKIFLI;
|
|
this.COJMIKLALKI(num, flag3);
|
|
List<Renderer> ceeoglkifli2 = this.CEEOGLKIFLI;
|
|
num++;
|
|
while (ceeoglkifli2 != 0)
|
|
{
|
|
}
|
|
GameObject gameObject = base.gameObject;
|
|
int num2 = 0;
|
|
if (gameObject != num2)
|
|
{
|
|
base.gameObject.SetActive(flag2);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06013625 RID: 79397 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6013625")]
|
|
[Address(RVA = "0x14297D0", Offset = "0x14285D0", VA = "0x1814297D0")]
|
|
private void CGHFAAGEAMA(int APNENLCPLPA, bool CBHMNNAINHM)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06013626 RID: 79398 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6013626")]
|
|
[Address(RVA = "0x14299F0", Offset = "0x14287F0", VA = "0x1814299F0")]
|
|
private void COJMIKLALKI(int MAMIINIPGGN, bool CBHMNNAINHM)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06013627 RID: 79399 RVA: 0x00481AE8 File Offset: 0x0047FCE8
|
|
[Token(Token = "0x6013627")]
|
|
[Address(RVA = "0x142A370", Offset = "0x1429170", VA = "0x18142A370")]
|
|
private void DMCIKDIBHBI()
|
|
{
|
|
Material cobheacenki = this.COBHEACENKI;
|
|
int num = 0;
|
|
if (cobheacenki == num)
|
|
{
|
|
Material material = new Material(this.simpleShadowMaterial);
|
|
this.COBHEACENKI = material;
|
|
string text = material.name + " (Instance)";
|
|
material.name = text;
|
|
Projector projector = this.projector;
|
|
Material cobheacenki2 = this.COBHEACENKI;
|
|
projector.material = cobheacenki2;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06013628 RID: 79400 RVA: 0x00481B54 File Offset: 0x0047FD54
|
|
[Token(Token = "0x6013628")]
|
|
[Address(RVA = "0x142BFB0", Offset = "0x142ADB0", VA = "0x18142BFB0")]
|
|
public BlobShadowProjector()
|
|
{
|
|
List<BlobShadowProjector.LMNGIAIBKJL> list = new List();
|
|
this.NDFMDEPFCGK = list;
|
|
List<Renderer> list2 = new List();
|
|
this.CEEOGLKIFLI = list2;
|
|
List<int> list3 = new List();
|
|
this.JHKIMLEPKOL = list3;
|
|
AOLMGGAPKEH aolmggapkeh = new AOLMGGAPKEH();
|
|
this.GANNJAOJOCF = aolmggapkeh;
|
|
float z = Vector3.zero.z;
|
|
this.OBBNIMOFFHF.z = z;
|
|
Quaternion identity = Quaternion.identity;
|
|
this.LOGPNANGLOD = 1f;
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x06013629 RID: 79401 RVA: 0x00481BDC File Offset: 0x0047FDDC
|
|
// Note: this type is marked as 'beforefieldinit'.
|
|
[Token(Token = "0x6013629")]
|
|
[Address(RVA = "0x142BDD0", Offset = "0x142ABD0", VA = "0x18142BDD0")]
|
|
static BlobShadowProjector()
|
|
{
|
|
float z = Vector3.up.z;
|
|
Vector3 vector;
|
|
float z2 = vector.z;
|
|
float z3 = Vector3.forward.z;
|
|
Vector3[] array = new Vector3[1];
|
|
float z4 = Vector3.up.z;
|
|
array[1] = z4;
|
|
BlobShadowProjector.NPLKPDHOPIO = array;
|
|
Color[] array2 = new Color[1];
|
|
Color black = Color.black;
|
|
BlobShadowProjector.GJBJLMPPLAC = array2;
|
|
}
|
|
|
|
// Token: 0x0400C99F RID: 51615
|
|
[Token(Token = "0x400C99F")]
|
|
private const int HCJMLILMNKB = 256;
|
|
|
|
// Token: 0x0400C9A0 RID: 51616
|
|
[Token(Token = "0x400C9A0")]
|
|
private const int LBELGECCFCD = 8;
|
|
|
|
// Token: 0x0400C9A1 RID: 51617
|
|
[Token(Token = "0x400C9A1")]
|
|
private static readonly Quaternion NNFHLBNNKML;
|
|
|
|
// Token: 0x0400C9A2 RID: 51618
|
|
[Token(Token = "0x400C9A2")]
|
|
private static Material NEEKENLIDDP;
|
|
|
|
// Token: 0x0400C9A3 RID: 51619
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x400C9A3")]
|
|
[SerializeField]
|
|
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false, false)]
|
|
private Projector projector;
|
|
|
|
// Token: 0x0400C9A4 RID: 51620
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x400C9A4")]
|
|
[SerializeField]
|
|
private BlobShadowProjector.NGFOOMIMEHP defaultShadowType;
|
|
|
|
// Token: 0x0400C9A5 RID: 51621
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x400C9A5")]
|
|
[SerializeField]
|
|
[Header("Simple Shadow Settings")]
|
|
private Material simpleShadowMaterial;
|
|
|
|
// Token: 0x0400C9A6 RID: 51622
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x400C9A6")]
|
|
[SerializeField]
|
|
private float simpleTextureOrthographicProjectionSize = 0.3f;
|
|
|
|
// Token: 0x0400C9A7 RID: 51623
|
|
[FieldOffset(Offset = "0x34")]
|
|
[Token(Token = "0x400C9A7")]
|
|
[SerializeField]
|
|
[Header("Position")]
|
|
private float desiredPositionAboveParent = 0.25f;
|
|
|
|
// Token: 0x0400C9A8 RID: 51624
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x400C9A8")]
|
|
private BlobShadowProjector.NGFOOMIMEHP OKAKIIMFINJ;
|
|
|
|
// Token: 0x0400C9A9 RID: 51625
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x400C9A9")]
|
|
private RenderTexture LDEKHANDCBO;
|
|
|
|
// Token: 0x0400C9AA RID: 51626
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x400C9AA")]
|
|
private List<BlobShadowProjector.LMNGIAIBKJL> NDFMDEPFCGK;
|
|
|
|
// Token: 0x0400C9AB RID: 51627
|
|
[FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x400C9AB")]
|
|
private List<Renderer> CEEOGLKIFLI;
|
|
|
|
// Token: 0x0400C9AC RID: 51628
|
|
[FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x400C9AC")]
|
|
private List<int> JHKIMLEPKOL;
|
|
|
|
// Token: 0x0400C9AD RID: 51629
|
|
[FieldOffset(Offset = "0x60")]
|
|
[Token(Token = "0x400C9AD")]
|
|
private Material COBHEACENKI;
|
|
|
|
// Token: 0x0400C9AE RID: 51630
|
|
[FieldOffset(Offset = "0x68")]
|
|
[Token(Token = "0x400C9AE")]
|
|
private IDisposable AENELEOCFPJ;
|
|
|
|
// Token: 0x0400C9AF RID: 51631
|
|
[FieldOffset(Offset = "0x70")]
|
|
[Token(Token = "0x400C9AF")]
|
|
private CommandBuffer FCBNLLKMGCA;
|
|
|
|
// Token: 0x0400C9B0 RID: 51632
|
|
[FieldOffset(Offset = "0x78")]
|
|
[Token(Token = "0x400C9B0")]
|
|
private Camera EMNCGLMGGKO;
|
|
|
|
// Token: 0x0400C9B1 RID: 51633
|
|
[FieldOffset(Offset = "0x80")]
|
|
[Token(Token = "0x400C9B1")]
|
|
private AOLMGGAPKEH GANNJAOJOCF;
|
|
|
|
// Token: 0x0400C9B2 RID: 51634
|
|
[FieldOffset(Offset = "0x88")]
|
|
[Token(Token = "0x400C9B2")]
|
|
private Vector3 OBBNIMOFFHF;
|
|
|
|
// Token: 0x0400C9B3 RID: 51635
|
|
[FieldOffset(Offset = "0x94")]
|
|
[Token(Token = "0x400C9B3")]
|
|
private Quaternion EMFBNOFGDFM;
|
|
|
|
// Token: 0x0400C9B4 RID: 51636
|
|
[FieldOffset(Offset = "0xA4")]
|
|
[Token(Token = "0x400C9B4")]
|
|
private float LOGPNANGLOD;
|
|
|
|
// Token: 0x0400C9B5 RID: 51637
|
|
[Token(Token = "0x400C9B5")]
|
|
private static readonly Vector3[] NPLKPDHOPIO;
|
|
|
|
// Token: 0x0400C9B6 RID: 51638
|
|
[Token(Token = "0x400C9B6")]
|
|
private static readonly Color[] GJBJLMPPLAC;
|
|
|
|
// Token: 0x02002C98 RID: 11416
|
|
[Token(Token = "0x2002C98")]
|
|
public enum NGFOOMIMEHP
|
|
{
|
|
// Token: 0x0400C9B8 RID: 51640
|
|
[Token(Token = "0x400C9B8")]
|
|
SIMPLE_TEXTURE,
|
|
// Token: 0x0400C9B9 RID: 51641
|
|
[Token(Token = "0x400C9B9")]
|
|
PROJECTED_RENDERERS
|
|
}
|
|
|
|
// Token: 0x02002C99 RID: 11417
|
|
[Token(Token = "0x2002C99")]
|
|
private struct LMNGIAIBKJL
|
|
{
|
|
// Token: 0x0400C9BA RID: 51642
|
|
[FieldOffset(Offset = "0x0")]
|
|
[Token(Token = "0x400C9BA")]
|
|
public Renderer PMEAHMEKPHO;
|
|
|
|
// Token: 0x0400C9BB RID: 51643
|
|
[FieldOffset(Offset = "0x8")]
|
|
[Token(Token = "0x400C9BB")]
|
|
public int[] DAMHNAPNFBA;
|
|
|
|
// Token: 0x0400C9BC RID: 51644
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400C9BC")]
|
|
public ShadowCastingMode BGMFPFILNLD;
|
|
}
|
|
|
|
// Token: 0x02002C9A RID: 11418
|
|
[Token(Token = "0x2002C9A")]
|
|
[CompilerGenerated]
|
|
private sealed class INDNKHCDMNJ
|
|
{
|
|
// Token: 0x0601362A RID: 79402 RVA: 0x00481C48 File Offset: 0x0047FE48
|
|
[Token(Token = "0x601362A")]
|
|
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
|
public INDNKHCDMNJ()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0601362B RID: 79403 RVA: 0x00481C5C File Offset: 0x0047FE5C
|
|
[Token(Token = "0x601362B")]
|
|
[Address(RVA = "0x14359F0", Offset = "0x14347F0", VA = "0x1814359F0")]
|
|
internal bool <RemoveShadowOnlyRenderer>b__0(Renderer r)
|
|
{
|
|
Renderer renderer = this.renderer;
|
|
return r == renderer;
|
|
}
|
|
|
|
// Token: 0x0400C9BD RID: 51645
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400C9BD")]
|
|
public Renderer renderer;
|
|
}
|
|
|
|
// Token: 0x02002C9B RID: 11419
|
|
[Token(Token = "0x2002C9B")]
|
|
[CompilerGenerated]
|
|
private sealed class GKKEEFOKODP
|
|
{
|
|
// Token: 0x0601362C RID: 79404 RVA: 0x00481C78 File Offset: 0x0047FE78
|
|
[Token(Token = "0x601362C")]
|
|
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
|
public GKKEEFOKODP()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0601362D RID: 79405 RVA: 0x00481C8C File Offset: 0x0047FE8C
|
|
[Token(Token = "0x601362D")]
|
|
[Address(RVA = "0x1435740", Offset = "0x1434540", VA = "0x181435740")]
|
|
internal bool <RemoveShadowCaster>b__0(BlobShadowProjector.LMNGIAIBKJL r)
|
|
{
|
|
bool flag;
|
|
return flag;
|
|
}
|
|
|
|
// Token: 0x0400C9BE RID: 51646
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400C9BE")]
|
|
public Renderer renderer;
|
|
}
|
|
}
|
|
}
|