Você está na página 1de 34

OFFLINE_KEGT_UXMK5536> get hostet

151126-20:01:13 OFFLINE_kegt_UXMK5536 11.0k RBS_NODE_MODEL_U_2_10 stopfile=/tmp/5844


=============================================================
1584
IpSystem=1,IpAccessHostEt=1
=============================================================
IpAccessHostEtId
1
administrativeState
1 (UNLOCKED)
availabilityStatus
0 (NO_STATUS)
ipAddress
25.35.148.213
ipDefaultTtl
64
ipInterfaceMoRef
Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEtherne
networkPrefixLength
0
ntpDscp
48
ntpServerMode
0 (DISABLED)
operationalState
1 (ENABLED)
reservedBy
[2] =
>>> reservedBy = NodeBFunction=1,Iub=UXMK5536
>>> reservedBy = IpSystem=1,IpAccessSctp=1
userLabel
=============================================================
Total: 1 MOs

stopfile=/tmp/5844
===================================================================

===================================================================

inalIp=1,GigaBitEthernet=1,IpInterface=1

===================================================================

===============

===============

===============

uv use_crn=0

uv use_crn=0
OFFLINE_KEGT_UXMK5536> u+s
OFFLINE_KEGT_UXMK5536> run IUB_Deletion.mos
OFFLINE_KEGT_UXMK5536> u-

OFFLINE_KEGT_UXMK5536> !cat /home/ERICSSON/moshell_logfiles/logs_moshell/undo/undo_OFFLINE_


OFFLINE_KEGT_UXMK5536> u-

OFFLINE_KEGT_UXMK5536> !cat /home/ERICSSON/moshell_logfiles/logs_moshell/undo/undo_OFFLINE_

convert script Trunmode


OFFLINE_KEGT_UXMK5536> u! /home/ERICSSON/moshell_logfiles/logs_moshell/undo/undo_OFFLINE_ke

!cat /home/ERICSSON/moshell_logfiles/logs_moshell/undo/undo_OFFLINE_kegt_UXMK5536_151126-19

OFFLINE_KEGT_UXMK5536>

OFFLINE_KEGT_UXMK5536> run ~/
.Xdefaults*
.inputrc*
IUB_Deletion.mos*
abdullah
kegt_UXMK5536.xml* mos
.bash_history
.moshellrc
N220.log.gz*
gawk.exe.stackdump* moshell/
mosh
.bashrc*
.ssh/
O&M_Script_6000.mo* jarxml/
moshell.tar
moshell_in
OFFLINE_KEGT_UXMK5536> run /home/ERICSSON/mo
moshell/
moshell.tar
moshell11.0k.zip*
moshell__151126_1802/ moshell_install
m
OFFLINE_KEGT_UXMK5536> run /home/ERICSSON/moshell_logfiles/logs_moshell/
cache/
fclean/
hc/
logs_monode/ other/
resub/
sessionlog/ undo/
diff/
gnuplot/
lg/
moscomlogs/ remod/
rset/
tempfiles/
OFFLINE_KEGT_UXMK5536> run /home/ERICSSON/moshell_logfiles/logs_moshell/undo/
undo_OFFLINE_kegt_UXMK5536_151126-041529.log
undo_OFFLINE_kegt_UXMK5536_151126-1947
undo_OFFLINE_kegt_UXMK5536_151126-194738.log
undo_OFFLINE_kegt_UXMK5536_151126-1948
undo_OFFLINE_kegt_UXMK5536_151126-194738.mos
undo_OFFLINE_kegt_UXMK5536_151126-194
OFFLINE_KEGT_UXMK5536> run /home/ERICSSON/moshell_logfiles/logs_moshell/undo/undo_OFFLINE_
undo_OFFLINE_kegt_UXMK5536_151126-041529.log
undo_OFFLINE_kegt_UXMK5536_151126-1947
undo_OFFLINE_kegt_UXMK5536_151126-194738.log
undo_OFFLINE_kegt_UXMK5536_151126-1948
undo_OFFLINE_kegt_UXMK5536_151126-194738.mos
undo_OFFLINE_kegt_UXMK5536_151126-194
OFFLINE_KEGT_UXMK5536> !cat > sjdhaksdhal

oNotEditThisLine: UndoCommandFile OFFLINE_kegt_UXMK5536 11.0k RBS_NODE_MODEL_U_2_10 stop


gs+

cr Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterfac
28 #networkPrefixLength
0.0.0.0 #ownIpAddressActive
0.0.0.0 #ownIpAddressPassive
0 #configurationMode
25.35.148.209 #defaultRouter0
false #rps
d #vlanRef
1500 #mtu
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf
lset Equipment=1,Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterf

cr IpSystem=1,IpAccessHostEt=1
Subrack=1,Slot=1,PlugInUnit=1,ExchangeTerminalIp=1,GigaBitEthernet=1,IpInterface=1 #ipInterface
0 #networkPrefixLength
25.35.148.213 #ipAddress
lset IpSystem=1,IpAccessHostEt=1$ administrativeState 1
lset IpSystem=1,IpAccessHostEt=1$ ipDefaultTtl 64
lset IpSystem=1,IpAccessHostEt=1$ ntpDscp 48
lset IpSystem=1,IpAccessHostEt=1$ ntpServerMode 0
lset IpSystem=1,IpAccessHostEt=1$ userLabel
cr IpSystem=1,IpAccessHostEt=1,IpSyncRef=7
10.131.128.7 #ntpServerIpAddress
lset IpSystem=1,IpAccessHostEt=1,IpSyncRef=7$ administrativeState 1
lset IpSystem=1,IpAccessHostEt=1,IpSyncRef=7$ userLabel
lacc TransportNetwork=1,Synchronization=1$ addSyncRefResource
IpSystem=1,IpAccessHostEt=1,IpSyncRef=7
1
cr IpSystem=1,IpAccessHostEt=1,IpSyncRef=8
10.131.128.5 #ntpServerIpAddress
lset IpSystem=1,IpAccessHostEt=1,IpSyncRef=8$ administrativeState 1

lset IpSystem=1,IpAccessHostEt=1,IpSyncRef=8$ userLabel


lacc TransportNetwork=1,Synchronization=1$ addSyncRefResource
IpSystem=1,IpAccessHostEt=1,IpSyncRef=8
2
cr NodeBFunction=1,Iub=UXMK5536
5536 #rbsId
atm=false,ipV4=true #userPlaneTransportOption
atm=false,ipV4=true #controlPlaneTransportOption
IpAccessHostEt=1 #userPlaneIpResourceRef
lset NodeBFunction=1,Iub=UXMK5536$ userLabel UXMK5536

ld NodeBFunction=1,Iub=UXMK5536,IubDataStreams=1 #SystemCreated
lset NodeBFunction=1,Iub=UXMK5536,IubDataStreams=1$ hsAqmCongCtrlSpiOnOff 0,1,1,1,1,0,0,1,0,
lset NodeBFunction=1,Iub=UXMK5536,IubDataStreams=1$ hsDataFrameDelayThreshold 60
lset NodeBFunction=1,Iub=UXMK5536,IubDataStreams=1$ hsRbrDiscardProbability 0
lset NodeBFunction=1,Iub=UXMK5536,IubDataStreams=1$ hsRbrWeight 100,100,50,100,200,100,100
lset NodeBFunction=1,Iub=UXMK5536,IubDataStreams=1$ maxHsRate 10000
lset NodeBFunction=1,Iub=UXMK5536,IubDataStreams=1$ schHsFlowControlOnOff 0,1,1,1,1,0,0,1,0,0
cr IpSystem=1,IpAccessSctp=1
IpAccessHostEt=1 #ipAccessHostEtRef1
lset IpSystem=1,IpAccessSctp=1$ ipAccessHostEtRef2
lset IpSystem=1,IpAccessSctp=1$ userLabel
cr TransportNetwork=1,Sctp=1
2 #numberOfAssociations
ReliableProgramUniter=sctp_host #rpuId
lset TransportNetwork=1,Sctp=1$ allowedIncrementCookieLife 3
lset TransportNetwork=1,Sctp=1$ associationMaxRtx 20
lset TransportNetwork=1,Sctp=1$ bundlingActivated 1
lset TransportNetwork=1,Sctp=1$ bundlingTimer 10
lset TransportNetwork=1,Sctp=1$ maximumRto 40
lset TransportNetwork=1,Sctp=1$ heartbeatPathProbingInterval 500
lset TransportNetwork=1,Sctp=1$ heartbeatInterval 30
lset TransportNetwork=1,Sctp=1$ heartbeatMaxBurst 0
lset TransportNetwork=1,Sctp=1$ heartbeatStatus true
lset TransportNetwork=1,Sctp=1$ initialAdRecWin 32768
lset TransportNetwork=1,Sctp=1$ initialRto 20
lset TransportNetwork=1,Sctp=1$ intervalOobPkts 3600
lset TransportNetwork=1,Sctp=1$ ipAccessHostGpbId
lset TransportNetwork=1,Sctp=1$ ipAccessSctpRef IpAccessSctp=1
lset TransportNetwork=1,Sctp=1$ keyChangePeriod 4
lset TransportNetwork=1,Sctp=1$ nThreshold 192
lset TransportNetwork=1,Sctp=1$ mBuffer 256

lset
lset
lset
lset
lset
lset
lset
lset
lset
lset
lset
lset
lset
lset
lset
lset
lset
lset
lset
lset

TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$
TransportNetwork=1,Sctp=1$

maxBurst 4
maxIncomingStream 17
maxInitialRtrAtt 8
maxOutgoingStream 17
maxShutDownRtrAtt 5
maxUserDataSize 1480
minimumRto 10
nPercentage 85
pathMaxRtx 10
switchbackMode 0
pathSelection 1
potentiallyFailedMaxRtx 0
rtoAlphaIndex 3
rtoBetaIndex 2
sctpAssocDeleteTimeout 168
switchbackMaxThreshold 65535
switchbackMinThreshold 1
tSack 4
userLabel
validCookieLife 60

cr NodeBFunction=1,Iub=UXMK5536,NbapDedicated=1
d #uniSaalTpRef1
lset NodeBFunction=1,Iub=UXMK5536,NbapDedicated=1$
lset NodeBFunction=1,Iub=UXMK5536,NbapDedicated=1$
lset NodeBFunction=1,Iub=UXMK5536,NbapDedicated=1$
lset NodeBFunction=1,Iub=UXMK5536,NbapDedicated=1$

l2EstablishReqRetryT 1
l2EstablishSupervisionT 30
uniSaalTpRef2
userLabel NbapDedicated 1

cr NodeBFunction=1,Iub=UXMK5536,NbapCommon=1
d #uniSaalTpRef1
lset NodeBFunction=1,Iub=UXMK5536,NbapCommon=1$ auditRetransmissionT 5
lset NodeBFunction=1,Iub=UXMK5536,NbapCommon=1$ l2EstablishReqRetryT 1
lset NodeBFunction=1,Iub=UXMK5536,NbapCommon=1$ l2EstablishSupervisionT 30
lset NodeBFunction=1,Iub=UXMK5536,NbapCommon=1$ l3EstablishSupervisionT 30
lset NodeBFunction=1,Iub=UXMK5536,NbapCommon=1$ uniSaalTpRef2
lset NodeBFunction=1,Iub=UXMK5536,NbapCommon=1$ userLabel NbapCommon 1
lset IpSystem=1,IpAccessHostEt=1,IpSyncRef=7$ administrativeState 1
lset IpSystem=1,IpAccessHostEt=1,IpSyncRef=8$ administrativeState 1
lset IpSystem=1,IpAccessHostEt=1$ administrativeState 1
lt all
lacc TransportNetwork=1,Synchronization=1$ addSyncRefResource
IpSystem=1,IpAccessHostEt=1,IpSyncRef=8
2
lacc TransportNetwork=1,Synchronization=1$ addSyncRefResource
IpSystem=1,IpAccessHostEt=1,IpSyncRef=7

1
gs-

hell/undo/undo_OFFLINE_kegt_UXMK5536_151126-194844.mos

hell/undo/undo_OFFLINE_kegt_UXMK5536_151126-194844.mos

ll/undo/undo_OFFLINE_kegt_UXMK5536_151126-194844.mos

t_UXMK5536_151126-194844.mo

t_UXMK5536.xml* moshell11.0k.zip*
moshell_logfiles/
* moshell/
moshell__151126_1802/ onm5536.xml
hell.tar
moshell_install
xmk

02/ moshell_install

moshell_logfiles/

UXMK5536_151126-194738_del.mos undo_OFFLINE_kegt_UXMK5536_151126-194844.mos
UXMK5536_151126-194844.log
undo_OFFLINE_kegt_UXMK5536_151126-194844_del.mos
_UXMK5536_151126-194844.mo
ell/undo/undo_OFFLINE_kegt_UXMK5536_151126UXMK5536_151126-194738_del.mos undo_OFFLINE_kegt_UXMK5536_151126-194844.mos
UXMK5536_151126-194844.log
undo_OFFLINE_kegt_UXMK5536_151126-194844_del.mos
_UXMK5536_151126-194844.mo

ODE_MODEL_U_2_10 stopfile=/tmp/5844

aBitEthernet=1,IpInterface=1

gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$
gaBitEthernet=1,IpInterface=1$

Interface=1 #ipInterfaceMoRef

accessControlListRef
defaultRouter1 0.0.0.0
defaultRouter2 0.0.0.0
defaultRouterPingInterval 4
logging 0
maxNoOfFailedPings 2
maxWaitForPingReply 3
noOfPingsBeforeOk 2
switchBackTimer 180
trafficSchedulerRef
trafficType 0
userLabel
vLan true
vid 301

piOnOff 0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0
ayThreshold 60

,100,50,100,200,100,100,100,100,100,100,100,100,100,100,100

OnOff 0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0

dicated 1

get face

[~]$ moshell N220.log.gz


OFFLINE_N220> lst .5536
15950 1 (UNLOCKED) 1 (ENABLED) RncFunction=1,IubLink=Iub_UXMK5536

OFFLINE_N220> get 15950 remoteCpIpAddress1

151127-00:00:12 OFFLINE_N220 11.0k RNC_NODE_MODEL_V_3_3415 stopfile=/tmp/6976


=============================================================
MO
Attribute
Value
=============================================================
IubLink=Iub_UXMK5536
cachedRemoteCpIpAddress1
IubLink=Iub_UXMK5536
remoteCpIpAddress1 10.131.130.244
=============================================================
Total: 1 MOs

OFFLINE_N220> set IubLink=Iub_UXMK5536

remoteCpIpAddress1 10.131.130.2

151127-00:00:51 OFFLINE_N220 11.0k RNC_NODE_MODEL_V_3_3415 stopfile=/tmp/6976


Set remoteCpIpAddress1 on following 1 MOs ?
=============================================================
15950 RncFunction=1,IubLink=Iub_UXMK5536
=============================================================
Set remoteCpIpAddress1 on 1 MOs. Are you Sure [y/n] ? y

=============================================================
Id MO
remoteCpIpAddress1 Result
=============================================================
15950 IubLink=Iub_UXMK5536
10.131.130.245
>>> Set.
=============================================================
Total: 1 MOs attempted, 1 MOs set

=/tmp/6976
===================================================================

===================================================================

===================================================================

pAddress1 10.131.130.245

=/tmp/6976

=====================================

=====================================

==============================================================

==============================================================
>>> Set.
==============================================================

===============

===============

===============

==========

==========

==========

IpAccessHostEt=1,IpSyncRef=8
IpAccessHostEt=1,IpSyncRef=7

IpSyncRefId
IpSyncRefId

8
7

RefId
RefId

8
7

OFFLINE_KEGT_UXMK5536> rdel
151128-01:30:17 OFFLINE_kegt_UXMK5536 11.0k RBS_NODE_MODEL_U_2_10 stopfile=/tmp/6856
***************************************************************************************
rdel/lrdel <moGroup>|<moFilter>|<proxy(s)>
***************************************************************************************
Delete MO(s) together with children and reserving MOs.
For MO classes shown in the list below, the command finds out all the related MOs, then presents the
List of MO classes for which rdel acts recursively:
- Aal0TpVcctp
- Aal1TpVcctp
- Aal2Ap
- Aal2PathDistributionUnit
- Aal2PathVcctp
- Aal2RoutingCase
- Aal5TpVccTp
- AntennaNearUnit
- AtmCrossConnection
- AtmPort
- Cdma2000Cell
- Ds0Bundle
- EUtranCellFDD
- EUtranCellTDD
- EutranFrequency
- ExternalCdma2000Cell
- ExternalCdma20001xRttCell
- ExternalENodeBFunction
- ExternalEUtranCellFDD
- ExternalEUtranCellTDD
- ExternalGeranCell
- ExternalGsmCell
- ExternalUtranCell
- ExternalUtranCellFDD
- ExternalUtranCellTDD
- ImaGroup
- IpEthPacketDataRouter
- IuLink
- Iub
- IubLink
- IurLink
- M3uAssociation
- Mtp2TpItu/Ansi/Ttc/China
- Mtp3bSlItu/Ansi/Ttc/China

Mtp3bSls
Mtp3bSrs
NbapCommon
NbapDedicated
NniSaalTp
NodeSynchTp
PacketDataRouter
Ranap
Rnsap
SectorEquipmentFunction
UniSaalTp
UtranCell
VclTp
Vmgw
VpcTp
VplTp

stopfile=/tmp/6856

**********

**********

MOs, then presents the list of MOs to be deleted and asks the user for confirmation. For all other MO classes, th

r all other MO classes, the command acts in the same way as a regular "ldel" operation, ie, tries to delete the M

n, ie, tries to delete the MO and its children.

OFFLINE_KEGT_UXMK5536> h u+

***************************************************************************************
u+[s]/u-/u?/u! [<file>]
***************************************************************************************
Handling of undo mode (for cr/del/rdel/set/bl/deb/acc commands). Can be used for generation of MO s

u+ To start the "undo mode"


u+s To start the "simulated undo mode"
u- To stop the "undo mode" (or simulated undo mode)
u? To check if "undo mode" is active or not
u! To convert moshell command files to trun/emas format (and vice-versa), or undo logfiles to comma

While running in "undo mode", the MO data is saved in a special logfile for all MOs on which the follow
- cr
- del/ldel/rdel/lrdel
- bl/lbl/deb/ldeb
- set/lset
- acc/lacc

Upon stopping of undo mode, an undo file is generated to revert the MO configuration changes. It can
The undo file will contain the following commands:
- del commands to remove created MOs.
- cr commands to put back deleted MOs.
- bl/deb commands to change MOs back to their original administrative state.
- set commands to change MOs back to their original attribute values.
- acc commands to revert certain MO actions. This only works on actions that have an opposite, see n

When running the simulated undo mode (u+s), all MO operations (cr/del/rdel/bl/deb/set) are simulated
The files generated by undo mode and simulated undo mode are stored in the following variables:
$undologfile
$undodelcommandfile (simulated undo mode only)
$undocommandfile

Conversion functionality (u!):


The u! command takes as input one of the files generated by the undo mode. Different output will be
- if the input file is an undologfile, the output will be an undodelcommandfile and an undocommandfi
- if the input file is an undodelcommandfile or an undocommandfile, the output will be an undotrunfil
- if the input file is an undotrunfile (trun/emas format), the output will be an undocommandfile (run f

Note: to undo "create" commands run from a "trun" script, just run a delete on the proxy range in reve
Note: the undo mode currently cannot reverse a set command done on an attribute of type sequence

Note: the following actions are currently supported in the undo mode:
- addPath/removePath
- addDhcpServerAddress/removeDhcpServerAddress
- setAutoActivate/setAutoDown
- activateRemoteSp/inactivateRemoteSp
- addRemoteSp/removeRemoteSp
- activate/deactivate
- localInhibit/localUninhibit
- activateLinkSet/deactivateLinkSet
- blockSignalingRoute/deBlockSignalingRoute
- addRepertoire/deleteRepertoire
- addSlot/deleteSlot
- addCicRange/removeCicRange
- addNri/removeNri
- addTdmTermGrpMos/removeTdmTermGrpMos
- addSyncrefResource/deleteSyncrefResource
- addAal2ApToRc/removeAal2ApFromRc
- writeSystConst/resetSystConst, deleteConst/writeConst
- changeFrequency, pnpChangeFrequency, setFrequencyBand
- removeIpAccessHostMos/addIpAccessHostMos
- manualMspSwitch, manualSwitch, switch

**********

**********
ed for generation of MO scripts as well.

or undo logfiles to command files, see description below for more info.
MOs on which the following commands are run:

guration changes. It can also be used for deleting and recreating MOs when one needs to change a restricted a

t have an opposite, see note below.

bl/deb/set) are simulated. Two command files are generated, one for deletions and one for creation.

e following variables:

Different output will be generated depending on the input file.


e and an undocommandfile
put will be an undotrunfile ($undotrunfile) which is a command file in trun/emas format.
undocommandfile (run format)

n the proxy range in reverse order. See "h del" for more info.

ribute of type sequence of struct.

to change a restricted attribute.

for creation.

Você também pode gostar