Chaos SRO

26/08/2021

01/12/2021

26/08/2021

02/06/2022_khaled

24/05/2022

29/05/2022_fareed

10/08/2022

27/05/2022_khaled

10/7/2022

hani_08/09/2022

8/9/2022

25/01/2022

QueenSro

13_09_2022

  FaceBook | Official Group 




   Silkroad Online > > [ ST-FILTER ]

[ ST-FILTER ] ST - Filter

 
17-04-2022, 01:12 AM   #1

Coolsp4ce





Jul 2019
142972
99
Private Server
Male
10
Coolsp4ce

Coolsp4ce

238  



(6) St Filter + GUI Files









19/08/2022



ST Filter + GUI







Special Thanks To



Thaidu0ngpr0




GUI


:-

1- sql

2-


3- GUI

4- DLL


5-




1- Daily Login Rewards
2- Lock char
3- Ranking
4- player Information
5- Custom NPC Icon
6- uniques Status
7- Global Colors
8- Plus Notices
9- Change name title
10- change Title Colors
11- items Link
12- show who on party match
13- DPS Mater
14- Pvp 1 vc 1 for gold
15- Special Events
16- Pet Filter
17- Auto Bot





:

SQL 2017 SQL 2019
10



,,, [ ]


ST Filter











SRO_VT_PROXY

SRO_VT_PROXY202203260442.bak









C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup









SQL

SQL




































S4A ST Filter


querys













sql


















SQL > SRO_VT_SHARDLOG > Programmability> Stored Procedures > _AddLogChar
Modify







:
insert _LogEventChar (CharID, EventTime, EventID, Data1, Data2) values(@CharID, GetDate(), @EventID, @Data1, @Data2) end


:
--- ip logs/* coded by alexiuns */IF (@EventID = 4 Or @EventID = 6)BEGINBEGIN TRANSACTIONBEGIN TRYCOMMIT TRANSACTIONEND TRYBEGIN CATCHSELECTERROR_NUMBER() AS ErrorNumber,ERROR_SEVERITY() AS ErrorSeverity,ERROR_STATE() AS ErrorState,ERROR_PROCEDURE() AS ErrorProcedure,ERROR_LINE() AS ErrorLine,ERROR_MESSAGE() AS ErrorMessageROLLBACK TRANSACTIONEND CATCHIF (@@ERROR <> 0)BEGINRETURNROLLBACK TRANSACTIONENDEND-- Main Declares DECLARE @GM_Prim int =(select sec_primary from SRO_VT_ACCOUNT.dbo.TB_User as us inner join SRO_VT_SHARD.dbo._User as us2 on us.JID = us2.UserJID where CharID = @CharID)DECLARE @CharName varchar(50) = (SELECT CharName16 FROM SRO_VT_SHARD.dbo._Char WHERE CharID = @CharID ) -------------- IF (@EventID = 4 or @EventID = 6 or @EventID = 9 OR @EventID = 11) BEGIN declare @JobTypes int = (select JobType from SRO_VT_SHARD.._CharTrijob where CharID=@CharID) declare @JobLevel int = (select Level from SRO_VT_SHARD.._CharTrijob where CharID=@CharID) update SRO_VT_PROXY.._TotalPointRanking set JobLevel = @JobLevel Where CharName = @CharName update SRO_VT_PROXY.._TotalPointRanking set JobType = @JobTypes Where CharName = @CharName EXEC SRO_VT_PROXY.[dbo].[_SumPoint] @CharName --EXEC SRO_VT_PROXY.[dbo]._GiveLevelBuff @CharName END --- add to filter IF (@EventID = 4) BEGIN declare @Date2 date = GETDATE()-1 IF NOT EXISTS(SELECT CharName FROM SRO_VT_PROXY.[dbo]._DaiLyLogin WITH(NOLOCK) WHERE CharName = @CharName) begin INSERT INTO SRO_VT_PROXY.[dbo]._DaiLyLogin (CharName,DiemDanh,Nhan1Ngay,Nhan3Ngay,Nhan5Ngay,N han7Ngay,Nhan10Ngay,Nhan13Ngay,Nhan16Ngay,Nhan19Ng ay,Nhan22Ngay,Nhan25Ngay,LastLogin) VALUES (@CharName,1,0,0,0,0,0,0,0,0,0,0,getdate()) END IF EXISTS(SELECT CharName FROM SRO_VT_PROXY.._DaiLyLogin WITH (NOLOCK) WHERE CharName = @CharName AND LastLogin = @Date2) BEGIN UPDATE SRO_VT_PROXY.[dbo]._DaiLyLogin SET LastLogin = getdate()-1 WHERE CharName = @CharName END END--- Anti bug tradeIF (@EventID = 6)BEGIN BEGIN IF (EXISTS (SELECT OwnerCharID FROM [SRO_VT_SHARD].[dbo].[_CharCOS] WHERE RefCharID IN (SELECT [ID] FROM [SRO_VT_SHARD].[dbo].[_RefObjCommon] WHERE CodeName128 LIKe 'COS_T%' AND Service=1) AND OwnerCharID=@CharID)) BEGIN UPDATE [SRO_VT_SHARD].[dbo].[_CharCOS] SET [HP] = 1 WHERE RefCharID IN (SELECT [ID] FROM [SRO_VT_SHARD].[dbo].[_RefObjCommon] WHERE CodeName128 LIKe 'COS_T%' AND Service=1) AND OwnerCharID=@CharID; UPDATE SRO_VT_SHARD.._InvCOS set itemid = 0 WHERE COSID = (SELECT id FROM sro_vt_shard.._CharCOS WHERE OwnerCharID = @CharID and RefCharID in (SELECT id FROM sro_vt_Shard.._RefObjCommon WHERE codename128 like '%COS_T%')) UPDATE SRO_VT_SHARD.dbo._CharCOS set ownercharid = 0 WHERE OwnerCharID = @CharID and RefCharID in (SELECT id FROM SRO_VT_SHARD.._RefObjCommon WHERE CodeName128 like '%COS_T%') END ENDENDIF (@EventID = 4) BEGIN IF NOT EXISTS(SELECT CharName FROM SRO_VT_PROXY.[dbo]._TotalPointRanking WITH(NOLOCK) WHERE CharName = @CharName) begin INSERT INTO SRO_VT_PROXY.[dbo]._TotalPointRanking (CharName,HonorPoint,JobKill,UniqueKill,BattleAren aWin,CapFlagWin,FTWKill,JobbingPoint,SurvivalKill, ItemPoints,DailyJobPoints,JobType,JobLevel) VALUES (@CharName,0,0,0,0,0,0,0,0,0,0,@JobTypes,@JobLevel ) END -- IF NOT EXISTS(SELECT CharName FROM SRO_VT_PROXY.[dbo]._LogTichNap WITH(NOLOCK) WHERE CharName = @CharName) --begin --INSERT INTO SRO_VT_PROXY.[dbo]._LogTichNap (CharName,DaNap,DaNhan1,DaNhan2,DaNhan3,DaNhan4,Da Nhan5,DaNhan6,DaNhan7,DaNhan8,DaNhan9,DaNhan10) VALUES (@CharName,0,0,0,0,0,0,0,0,0,0,0) --END ENDIF (@EventID = 20) -- PVP BEGIN IF (@desc LIKE '%Trader, Neutral, no freebattle team%' -- Trader OR @desc LIKE '%Hunter, Neutral, no freebattle team%' -- Hunter OR @desc LIKE '%Robber, Neutral, no freebattle team%' -- Thief OR @desc like '%no job, Neutral, %no job, Neutral%' -- Free PVP -- either one of these could potentially be in FW ) BEGIN -- Get killer name DECLARE @killername VARCHAR(512) = @desc DECLARE @killeriD INT = 0 DECLARE @OccuringRegion smallint SELECT @killername = REPLACE(@killername, LEFT (@killername, CHARINDEX('(', @killername)), '') SELECT @killername = REPLACE(@killername, RIGHT (@killername, CHARINDEX(')', REVERSE(@killername))), '') SELECT @killerID= CharID FROM [SRO_VT_SHARD].[dbo].[_Char] WHERE CharName16 = @killername SET @OccuringRegion = (Select LatestRegion from SRO_VT_SHARD.dbo._Char where CharID = @CharID) -- Get job type DECLARE @jobString VARCHAR(10) = LTRIM(RTRIM(SUBSTRING(@desc, 5, 7))) DECLARE @jobType INT = CASE WHEN @jobString LIKE 'Trader' THEN 1 WHEN @jobString LIKE 'Robber' THEN 2 WHEN @jobString LIKE 'Hunter' THEN 3 WHEN @OccuringRegion in (Select distinct wRegionID from SRO_VT_SHARD.dbo._RefRegion where ContinentName like '%FORT%') THEN 4 ELSE 0 END -- Delete original log DELETE FROM _LogEventChar WHERE CharID = @CharID AND EventID = 20 AND (strDesc LIKE '%Trader, Neutral, no freebattle team%' OR strDesc LIKE '%Hunter, Neutral, no freebattle team%' OR strDesc LIKE '%Robber, Neutral, no freebattle team%' OR @desc like '%no job, Neutral, %no job, Neutral%') -- Get additional info for notice message DECLARE @jobDesc VARCHAR(32) = CASE WHEN @jobType BETWEEN 1 AND 3 THEN 'JOB' WHEN @jobType = 4 THEN 'FW' ELSE 'PVP' END DECLARE @strDesc VARCHAR(512) IF (@jobString LIKE 'Trader' OR @jobString LIKE 'Robber' OR @jobString LIKE 'Hunter') BEGIN -- If it's a Job Kill, then write character nicknames DECLARE @killerNickNames VARCHAR(64) = (SELECT CharName16 FROM [SRO_VT_SHARD].[dbo].[_Char] WHERE CharID = @killeriD) DECLARE @killerNickName VARCHAR(64) = (SELECT NickName16 FROM [SRO_VT_SHARD].[dbo].[_Char] WHERE CharID = @killeriD) DECLARE @CharnickName VARCHAR(64) = (SELECT NickName16 FROM [SRO_VT_SHARD].[dbo].[_Char] WHERE CharID = @CharID) DECLARE @CharnickNames VARCHAR(64) = (SELECT CharName16 FROM [SRO_VT_SHARD].[dbo].[_Char] WHERE CharID = @CharID) SET @strDesc = '[' + @jobDesc + '] Ng*i Chi [' + @killerNickName + '] H Gc [' + @CharnickName + ']' EXEC SRO_VT_PROXY.[dbo].[_GivePoint] @killerNickNames,1,'Jobkill' update SRO_VT_PROXY.[dbo]._TotalPointRanking Set JobDead = JobDead+1 Where CharName = @CharnickNames INSERT INTO SRO_VT_PROXY.[dbo]._AutoNotice VALUES (@strDesc,'all', 0, GETDATE()) END ELSE BEGIN -- If it's normal PVP Kill, write real character names SET @strDesc = '[' + @jobDesc + '] Ng*i Chi [' + @killername + '] H Gc [' + @CharName + ']' INSERT INTO SRO_VT_PROXY.[dbo]._AutoNotice VALUES (@strDesc,'all', 0, GETDATE()) END -- Update the log INSERT INTO [SRO_VT_PROXY].[dbo]._LogEventPVP VALUES (@killeriD, @CharID, @jobType, GETDATE(), @OccuringRegion, @strDesc,@jobDesc) IF(@OccuringRegion = 25580 and @jobType = 0) BEGIN INSERT INTO SRO_VT_PROXY.[dbo]._AutoNotice VALUES (@strDesc,'all', 0, GETDATE()) EXEC SRO_VT_PROXY.[dbo].[_GivePoint] @KillerName,1,'Surkill' END IF(@OccuringRegion = 22966 and @jobType = 0) BEGIN IF EXISTS (SELECT CharName FROM [SRO_VT_PROXY].[dbo].[_Event_PVP] WHERE CharName Like @KillerName ) BEGIN DECLARE @Cur_Point INT = ( SELECT Points FROM [SRO_VT_PROXY].[dbo].[_Event_PVP] WHERE CharName Like @KillerName ) UPDATE [SRO_VT_PROXY].[dbo].[_Event_PVP] SET Points = @Cur_Point + 1 WHERE CharName like @KillerName END END IF(@jobType = 4) BEGIN INSERT INTO SRO_VT_PROXY.[dbo]._AutoNotice VALUES (@strDesc,'all', 0, GETDATE()) EXEC SRO_VT_PROXY.[dbo].[_GivePoint] @KillerName,1,'FTWkill' END END ENDIF (@EventID = 6 or @EventID = 4) BEGIN DECLARE @SkillID int DECLARE @CharName16 varchar(64) SELECT @CharName16 = CharName16 FROM SRO_VT_SHARD.._Char WHERE CharID = @CharID UPDATE SRO_VT_PROXY.[dbo]._TotalPointRanking set ItemPointALL = ( SELECT ISNULL((sum(ISNULL(Binding.nOptValue, 0)) + sum(ISNULL(OptLevel, 0))+sum(ISNULL(ReqLevel1, 0))+sum(ISNULL(Rarity*3, 0))), 0) as ItemPoints FROM [SRO_VT_SHARD].[dbo].[_Inventory] as inventory WITH (NOLOCK) join [SRO_VT_SHARD].[dbo]._Items as Items WITH (NOLOCK) on Items.ID64 = inventory.ItemID join [SRO_VT_SHARD].[dbo]._RefObjCommon as Common on Items.RefItemId = Common.ID left join [SRO_VT_SHARD].[dbo]._BindingOptionWithItem as Binding WITH (NOLOCK) on Binding.nItemDBID = Items.ID64 where inventory.slot < 13 and inventory.slot != 8 and inventory.slot != 7 and inventory.CharID = @CharID ) WHERE _TotalPointRanking.CharName = @CharName16EndIF (@EventID = 6 or @EventID = 4) BEGIN UPDATE [SRO_VT_SHARD].[dbo]._Char set ItemPoints = ( SELECT ISNULL((sum(ISNULL(Binding.nOptValue, 0)) + sum(ISNULL(OptLevel, 0))+sum(ISNULL(ReqLevel1, 0))+sum(ISNULL(Rarity*3, 0))), 0) as ItemPoints FROM [SRO_VT_SHARD].[dbo].[_Inventory] as inventory WITH (NOLOCK) join [SRO_VT_SHARD].[dbo]._Items as Items WITH (NOLOCK) on Items.ID64 = inventory.ItemID join [SRO_VT_SHARD].[dbo]._RefObjCommon as Common on Items.RefItemId = Common.ID left join [SRO_VT_SHARD].[dbo]._BindingOptionWithItem as Binding WITH (NOLOCK) on Binding.nItemDBID = Items.ID64 where inventory.slot < 13 and inventory.slot != 8 and inventory.slot != 7 and inventory.CharID = _Char.CharID ) WHERE _Char.CharID = @CharID Declare @GuildID int; SELECT @GuildID = GuildID FROM [SRO_VT_SHARD].[dbo]._Char WITH (NOLOCK) WHERE _Char.CharID = @CharID IF (@GuildID > 0) BEGIN UPDATE [SRO_VT_SHARD].[dbo]._Guild set ItemPoints = ( SELECT SUM(Char.ItemPoints) as ItemPoints FROM [SRO_VT_SHARD].[dbo]._Char as Char WITH (NOLOCK) where Char.GuildID = _Guild.ID ) WHERE _Guild.ID = @GuildID ENDEnd















STFilter v2.2
proxy_cfg



++



,,, [ ]















STFilter v2.2
SR_PROXY.exe
Run As Administartor
















S4A ST Filter


Client Patch v2.2 English



Media

(GUI)







,,, [ ]

















Run As Administrator












File > Open

Media.pk2























GUI






S4A ST Filter


DevKit_DLL v2.2
discord_game_sdk v2.2

Full Client








DevKit_DLL.dll

SRO_CLIENT

Stud_PE

,,, [ ]

Stud_PE









Run As Administrator













File >> Open PE File





Full CLIENT
sro_client
Open

























dll



GUI



GUI











































Coolsp4ce ; 11-06-2022 12:09 AM

google

20-04-2022, 01:37 AM   #2

abdomohamed74110





May 2020
151641
2
No Server
Male
10
abdomohamed74110

abdomohamed74110

7  



: St Filter + GUI Files










Coolsp4ce ; 20-04-2022 01:04 PM

20-04-2022, 05:02 AM   #3

modeasden





Sep 2014
119110
11
No Server
Male
10
modeasden

modeasden

53  



: St Filter + GUI Files







Coolsp4ce ; 20-04-2022 01:05 PM

20-04-2022, 06:28 AM   #4

[MoDa]



  [MoDa]


Feb 2016
129229
53
Cairo
Private Server
Male
10
[MoDa]

[MoDa]

122  



: St Filter + GUI Files






[MoDa] :
MoDa

Coolsp4ce ; 20-04-2022 01:09 PM

20-04-2022, 06:29 AM   #5

[MoDa]



  [MoDa]


Feb 2016
129229
53
Cairo
Private Server
Male
10
[MoDa]

[MoDa]

122  



: St Filter + GUI Files






[MoDa] :
MoDa


28-04-2022, 12:31 AM   #6

mafiapate





Sep 2016
131026
135
Private Server
Male
10
mafiapate

mafiapate

287  



: St Filter + GUI Files



sql 2014
Sql 2017



Coolsp4ce ; 29-04-2022 10:35 PM

14-05-2022, 04:30 AM   #7

ali0_boy



  ali0_boy


Oct 2007
3933
294
10
ali0_boy

ali0_boy

569  



: St Filter + GUI Files



English ? !




ali0_boy :
ServeR: Error404



,,, [ ]

,,, [ ]


16-05-2022, 06:04 AM   #8

Khaled Salem



  Khaled Salem


May 2007
2
1,789
No Server
Male
68
Khaled Salem

Khaled Salem

1685  



: St Filter + GUI Files



:
ali0_boy ,,, [ ]
English ? !


english
setting




07-06-2022, 07:32 AM   #9

maxjustone1





May 2020
151842
5
No Server
Male
10
maxjustone1

maxjustone1

12  



: St Filter + GUI Files







, 06:55 AM   #10

Khaled Salem



  Khaled Salem


May 2007
2
1,789
No Server
Male
68
Khaled Salem

Khaled Salem

1685  



: St Filter + GUI Files



Coolsp4ce




, 12:42 PM   #11

ShaFra



  ShaFra


Nov 2008
42235
78
Egypt
Male
10
ShaFra

ShaFra

50  



: St Filter + GUI Files







, 01:52 PM   #12

Hamza FiGo



  Hamza FiGo


Dec 2007
6993
6,152
Cairo
Helping ppl
Private Server
Male
973
Hamza FiGo  Hamza FiGo  Hamza FiGo  Hamza FiGo  Hamza FiGo  Hamza FiGo  Hamza FiGo  Hamza FiGo

Hamza FiGo

12295  


   Yahoo  Hamza FiGo    Skype  Hamza FiGo

  
: 1

: St Filter + GUI Files





Hamza FiGo :
,,, [ ]
,,, [ ]

,,, [ ] || ,,, [ ] || ,,, [ ]



« | »

: 1 (0 1 )
 




08:35 PM.

@ @ @ @ @ @ SilkroadOnline @ @ @ @ @ @ @ @ (Gold) @ ( Gold) @ (Gold) @ @ ( Korean SilkRoad ) @ AgBot @ ( Accounts ) @ ( Item ) @ ( Item ) @ @ Flora @ Minerva @ Feronia @ Bellona @ [ Silkroad Online ] @ @ @ @ PhBot @ -== T-BOT ==- @ Ceres @ @ @ @ @ @ @ StealthLite Bot @ Agbot @ StealthLite @ PHBOT @ T-BOT @ SroKing Bot @ [ Silkroad Online ] @ Flora @ Ceres @ Bellona @ Minerva @ Feronia @ 2020 @ @ @ @ ECSRO @ ECSRO(Fembria) @ ECSRO(VIP) @ SJSRO (OLD) @ SJSRO (new) @ sunworld @ IBot @ @ Vsro @ Rusro @ [ Private-SRO ] @ ZSZC & Aurora @ Sbot @ Mbot @ V.I.P Zone @ VIP @ VIP @ [ PK2 Edit ] @ Mysro @ @ @ @ IBOT @ Sbot @ Mbot @ Sroking @ Elite & Eroad @ DreamWorld @ [ Silkroad-R ] @ Maycena @ @ [ Silkroad-R ] @ - Private SRO @ Perfection @ Ex.Silkroad R @ SroKings @ @ Other Online Games @ S4 League @ CrossFire @ Conquer Online @ LOL @ Pc Games @ @ Barons Online @ (AriesOnline (Pvp @ QueenSRO Network @ & S4 League @ & CrossFire @ World's Gate @ Sun-World @ Aion @ Continent Of The Ninth @ World Of Warcraft @ PanicSro @ @ @ IceSro-R @ Kings_Silkroad @ Justice Road @ ArabianRoadOnline Network @ Devias Online @ @ CrossFire Fantasy Game @ CrossFire @ & Aion @ & Conquer Online @ League Of Legends @ legenD road @ WantedSro Online @ @ @ Mixsro @ @ SRO-R @ LegenD Road @ Knights War Online @ Evolution Network @ FlagSRO Network @ Perfection (PvP) Network @ S4league @ @ @ @ @ Destructions Network @ FanTasYWorld @ @ Smart-Sro Online @ InFusion Online @ @ Divine Online @ Dota @ PC @ GameXen Network @ inferno online @ @ @ PK2 edit @ Velestia @ Punisher Sro Online @ Atlantis Online @ ALEXNADER SRO @ Hell World Online @ ImmortalRoad @ Centerbot @ Centerbot @ Time.Sro-Online @ Revenge (PVE) Online @ Silkroad4arab || Games Online @ Online Games @ ( - ) @ @ @ @ @ @ @ @ Creddy Online @ Alliance-sro @ Quick Road (PvP ) @ @ League Of Legends @ League Of Legends @ CrossFire @ League Of Legends @ [ LOL ] @ North America @ EU West @ EU Nordic & East @ League Of Legends @ @ @ @ Wolf team @ Dota 2 @ Dragon nest @ DC Universe Online @ Windows @ Quenth Online @ Wolf team Arabic @ RealDreamSro ( PvP ) @ EmpireSRO @ Amazing Sro @ Speed-sro @ . Destructions Network @ SilkRoad E 80 China @ @ @ Greats-sro Online @ @ @ Srowing @ Dakupra-Online @ @ @ @ @ @ @ @ PantuSRO @ ( Vps Hosting , Diacated server,Silkroad edit ) @ Tyr Online @ RocSro @ Legend Of Silkroad @ Pioneer Gaming-Network @ Valentus - CAP 80 @ MirrorSro @ Eridanus Online Cap90 @ Fear-Sro @ Silkroad-Z Online PVE @ @ Massive-Network @ Kryptonite-Sro @ DeathRoad @ Mysro Servers @ Devils Team @ DooMSRO Network @ EROAD SRO @ Story-SRO @ Ventrue-Online @ Settlers-SRO @ Electus Online @ MarsRoad Online @ Arrow Online @ Selene @ Hermes @ OldSro Online (cap 80 ) @ Sunroad @ Eloys Online @ Sentiero-Road Online @ Steam-Sro @ Arcane Reborn Online @ Eryxonline @ Vengeance Online @ Mirage Online @ SyndiCateOnline @ Desert Sro @ NeSro Network @ Android @ @ @ MegaWar Sro @ Mirror Sro @ AdvancedSRO @ OblivionSilkroad @ Arrivals_Sro @ Amphibius Online @ Royal online @ Forbidden-Sro @ vanish-sro @ Majesty Online @ Chaos Network @ srAssist Bot @ srAssist Bot @ Damocles Sro @ Demo Sro @ KingsRoad @ Arius 9D ch & eu @ brother sro @ DreamWorld-Online @ Poseidon-Sro @ Ph-Sro @ Jupiet-Online @ Fury Sro @ JungleSro @ Xemia Games @ invctus-sro @ Revolution Gaming Network @ DemonSro @ Aeolus @ Golden Sro @ Chaos Network @ Chaos II Online @ Fallen Soul @ Xian @ Xian @ Revira online @ @ 2018 @ Unix Sro @ Immortal SRO @ [English - Arabic - Videos] @ (Rap) @ @ Perfection SRO @ Rev-Sro @ Egypt Sro @ Data Base @ PUBG Mobile @ Fortnite @ PureSRO @ Battle-Online @ @ @ URBANO-SRO @ Royalty-Road Online @ Zero-Online @ Anoha 130 PVP @ Anoha 130 PVE @ Exorue 80 CH @ Pantu-SRO @ Victor SRO @ Flare Online @ Terasus Online @ Aeolian Online @ Maygen Online @ Norges Online @ Ragnis Online @ VENUS ONLINE @ [ ST-FILTER ] @ Requer Online @


- - -