Epcast: Controlled Dissemination in Human-based Wireless Networks by means of Epidemic Spreading Models

Epcast: Controlled Dissemination in Human-based Wireless Networks by means of Epidemic Spreading Models

Abstract

Epidemics-inspired techniques have received huge attention in recent years from the distributed systems and networking communities. These algorithms and protocols rely on probabilistic message replication and redundancy to ensure reliable communication. Moreover, they have been successfully exploited to support group communication in distributed systems, broadcasting, multicasting and information dissemination in fixed and mobile networks. However, in most of the existing work, the probability of infection is determined heuristically, without relying on any analytical model. This often leads to unnecessarily high transmission overheads.

In this paper we show that models of epidemic spreading in complex networks can be applied to the problem of tuning and controlling the dissemination of information in wireless ad hoc networks composed of devices carried by individuals, i.e., human-based networks. The novelty of our idea resides in the evaluation and exploitation of the structure of the underlying human network for the automatic tuning of the dissemination process in order to improve the protocol performance. We evaluate the results using synthetic mobility models and real human contacts traces.

Keywords: Wireless Networks, Mobile Ad Hoc Networks, Epidemic Spreading Models, Complex Networks, Data Dissemination

1 Introduction

Mobile human networks (i.e., ad hoc networks composed by devices carried by individuals) can be frequently and temporarily disconnected. Traditional routing protocol, including the basic flooding, fail to offer any sort of reliability when this happens. Epidemic-style protocols instead, being store and forward approaches and inherently delay tolerant [11], allow for communication in dynamic and mobile networks, also in presence of temporary disconnections or network partitions. A desired feature of the protocols is the ability to control the information spreading. For example, in emergency scenarios, when the network infrastructure has failed, it may be sufficient to send the messages only to a percentage of the rescue team members (e.g., 50% of the doctors). In other situations, there might be a need to reach all the deployed emergency personnel with the minimum overhead to avoid to collapse the network. Up to our knowledge, no solutions exploiting the minimal necessary and sufficient number of replicated messages, given the emergent network structure to guarantee a desired level of reliability exist.

The analogy between information dissemination in mobile systems and epidemics transmission in social systems is apparent. Information spreading can be modelled with a simple model for disease spreading, the so-called SIR (Susceptible-Infected-Recovered) model [2]: a host is initially Susceptible to new information, then it becomes Infected when he actually receives it, and finally it can stop the store-and-forward dissemination process becoming Recovered and, therefore, immune to further infections. Epidemics-inspired techniques have received huge attention in recent years from the distributed systems community [9]. These algorithms and protocols rely on probabilistic message replication and redundancy to ensure reliable communication. Epidemic techniques were firstly exploited to guarantee consistency in distributed databases [8]. More recently, these algorithms have been applied to support group communication in distributed systems. In particular, several protocols have been proposed for broadcasting, multicasting and information dissemination in fixed networks [10].

A few attempts have been made to apply epidemic based techniques for information dissemination in mobile ad hoc networks [17, 7, 3]. However, existing epidemic algorithms do not permit to control the spreading of the information depending on the desired reliability and the network structure. This is partly due to the fact that these approaches are fundamentally based on empirical experiments and not on analytical models: the input parameters that control the dissemination process are selected by using experimental results and are not based on any mathematical model. This implies that the message replication process cannot be tuned with accuracy in a dynamic way: for instance, it is not possible to set the parameters of the dissemination process in order to reach only a certain desired percentage of the hosts in a prefixed amount of time. Moreover, these approaches do not exploit the information on the underlying network topology  [1, 4, 5]. The use of epidemic spreading models based on the structure of the underlying network allows us to devise accurate mechanisms for controlling the message replication process. In other words, the number of the replicas in the network and their persistence can be tuned to achieve a desired delivery ratio.

In [15] we have presented initial results based on the so-called SIS (Susceptible-Infected-Susceptible), a model of disease spreading not considering the recovered state. In this paper, we propose a refined version of the algorithm based on a SIR model. The use of SIR, in coordination with the ability to decide to constrain the epidemics to a percentage of hosts, allows us to lower the message overhead considerably with respect to both our previous work and other approaches, as shown in our results section. We present an extended evaluation based on synthetic models and real traces of connectivity of the Dartmouth College [14] and National University of Singapore [16] campuses.

This paper is structured as follows. In Section 2 we describe the implementation of the middleware interface supporting the epidemic dissemination process. Section 3 presents briefly the models of epidemic spreading in complex networks that are at the basis of our dissemination algorithm. The implementation issues are discussed in Section 4. The proposed dissemination algorithm is evaluated analytically and by means of simulations in Section 5. Section 6 concludes the paper.

2 Primitives for Controlled Epidemic Dissemination

Our goal is to provide a primitive that allows developers to tune information dissemination in human networks according to their specific application requirements. Our aim is to ensure the spreading of information from a source to a certain percentage of the mobile hosts of the system in a given interval time defined by a timeout .

We introduce a primitive for probabilistic anycast communication as follows:

 epcast(message,percentageOfHosts,time) 

where message is the message that has to be sent to a certain percentage of hosts equal to the value defined in percentageOfHosts in a bounded time interval equal to time.

By using these basic primitives, more complex programming interfaces and communication infrastructures can be designed, such as publish/subscribe systems or service discovery protocols.

The infectivity of the epidemics (i.e., the probability of being infected by a host that is in the same radio range, like in human diseases spreading) can be used to control the anycast probabilistic communication mechanism. Given a percentage of hosts that has to be infected equal to , we are able to accurately calculate the value of the infectivity in order to obtain an infection rate equal to a proportion of the total number of the hosts in the network.

As we will discuss in the next section, these primitives rely on a probabilistic algorithm based on the transmission of a minimal, and, at the same time, sufficient, number of messages. Existing epidemic-style protocols usually achieve 100% delivery, but they waste resources by sending a large number of messages on the network, whereas our approach succeeds to send only the amount of messages necessary to inform the desired percentage of hosts in the given time.

3 Dissemination Techniques based on Epidemic Models

In this section we introduce the mathematical models at the basis of the design of the communication API presented in Section 2. In order to model the message replication mechanisms, we exploit mathematical models that have been devised to describe the dynamics of infections in human populations [2]. The study of mathematical models of biological phenomena has been pioneered by Kermack and McKendrick in the first half of the last century. In the last years, researchers have focused their interest in the modeling of disease spreading in networks characterised by well-defined structural properties  [4, 5].

According to the classic Kermack and McKendrick model, an individual can be in three states: infected, (i.e., an individual is infected with the disease) susceptible (i.e., an individual is prone to be infected) and removed (i.e., an individual is immune, as it recovered from the disease). This kind of model is usually referred to as the Susceptible-Infected-Removed (SIR) model [2]. Removing the possibility of permanently recovering from the disease a different version of the model is obtained, according to which individuals can exist in only two possible states, infected and susceptible. In the literature, this model is usually referred to as Susceptible-Infected-Susceptible (SIS) model [2]. The SIR model can guarantee the same delivery of the SIS model with a substantially lower number of messages as shown by the generic epidemic process depicted in Figures 2 and 2. This is due to the fact that the model introduces the possibility of having hosts that are recovered, i.e., hosts that will not participate in spreading the infection after having receiving a message and deleted it from the buffer. In other words, in the SIR model the number of broadcasting nodes decreases after a given peak of infected nodes; instead in the SIS model, the number of broadcasting nodes at the end of the infection is (approximately) equal to the number of nodes to be infected (i.e., desired percentage of nodes in the epcast primitive).

Figure 1: Infection spreading in the SIS (top) and SIR (bottom) model, under equivalent conditions. The number of infected (infected, removed and infected + removed) individuals is reported as a function of time for the SIS (SIR) model (with and tuning the value of in order to have an infection of 100%).
Figure 2: Number of replicas per host per message for the SIS and the SIR model. Same conditions as in Fig.1

In the remainder of this paper we will substitute the term individual, used by epidemiologists, with the term host. A host is considered infected if it holds the message and susceptible if it does not. If the message is deleted from buffer of the host, the host becomes recovered and cannot be infected by the same message anymore. The information is spreaded among all infectives and recovered, while susceptibles are still unaware of that: it is now clear that the dissemination results depend on both infectives and recovered hosts, since these are the actual recipients of the messages that have been sent. It is useful to define a host as reached if it is either an infective or a recovered, since in both cases it has already received the message. Moreover, it is worth noting that only infectives contribute to message replication and spreading, while recovered hosts do not.

The main assumptions of our model are the following:

  • all susceptibles in the population are equally at risk of infection from any infected host (this hypothesis is usually defined by epidemiologists as homogeneous mixing);

  • all infectives in the population have equal chances to recover;

  • the infectivity of a single host, per message, is constant17;

  • the initial number of the nodes in the network is known a priori by each host18;

  • every host collaborates to the delivery process and no malicious nodes are present;

  • each node has a buffer of the same size;

  • the number of hosts is considered constant during the spreading of the infection19;

Under the assumptions above, the system dynamics, in the case of a scenario composed of active hosts, can be approximately20 described by the following system of non-linear differential equations [2]:

(1)

where are respectively the number of susceptible, infectives and removed hosts at time , is the average number of contacts with susceptible hosts that leads to a new infected host per unit of time per infective, and is the average rate of removal of infectives per unit of time per infectives in the population. The equations of the system state that the decaying rate of susceptibles and the growth rate of infectives are affected only by the infectivity , the number of susceptibles and the number of infectives ; the decaying rate of infectives and the relative growth of recovered is proportional to the removal rate and the number of infectives . The last equation states that actually only two equations are needed to completely define the problem, since the sum of the number of hosts in the three classes is constant. We furthermore set the initial conditions: , , and , with the condition representing the first copy of the message that is inserted in its buffer by the sender.

The numerical solution of system (1) can be easily obtained by standard ODE solver routines. This allows to compute the number of infectives and recovered at instant as a function of the infectivity and of the removal rate . The value of is usually fixed by the local properties of the hosts 21. Instead, the value of , that is the fundamental parameter of the message replication algorithm, can be tuned in order to have, after a specific length of time , a number of reached hosts (i.e., hosts that have received the message) equal to or, in other words, a fraction of reached hosts equal to .

In order to effectively exploit the model just described, the actual connectivity of each host has to be taken into account. We will assume a mobile system with a homogeneous network structure, described by a connectivity distribution , strongly peaked at an average value . This is a realistic assumption in cases characterized by a high density of hosts, and where the movement is well described as an uncorrelated random process, such as in large outdoor spaces (i.e., squares, stations, airports or around sport venues) [12, 15]. In this case, the degree of each node can be approximated quite precisely with the average degree . In order to include the effect of the connectivity on the spreading, the system (1) can be rewritten by substituting with  [4]:

(2)

where represents the probability of infecting a neighbouring host during a unit of time, and gives the probability of being in contact with a certain host. In other words, in this model, by substituting with , we have separated, in a sense, the event of being connected to a certain host and the infective process [4].

In conclusion, the main idea is to calculate the value of as a function of and . It is also interesting to note that in homogeneous networks, every host knows its value of and, consequently, it has a good estimate of . We will exploit this property to tune the spreading of message replicas in the system.

4 Implementation

Every time the middleware primitive defined in Section 2 is invoked, the middleware calculates the value of the infectivity that is necessary and sufficient to spread the information to the desired fraction of hosts in the specified time interval (specified in the field percentageOfHosts of the epcast primitive), by evaluating the current average degree of connectivity and the current removal rate of messages from the buffer. The message identifiers, the value of the calculated infectivity, the timestamp containing the value specified in time expressing its temporal validity are inserted in the corresponding headers of the message in the infectivity field. Then, the message is inserted in the local buffer.

The epidemic spreading protocol is executed periodically with a period equal to . With respect to the calculation of the message infectivity, we assume as time unit in the formulae presented in Section 3. In other words, assuming, for example, , a timestamp equal to one minute corresponds to six time units. The value of can be set by the application developer during the deployment of the platform. Clearly, the choice of the values of influences the accuracy of the model, since it relies on a probabilistic process. For this reason, given a minimum value of timestamp equal to , developers should ensure . The number of rounds will be equal to . For the Law of the Large Numbers, we obtain a better accuracy of the estimation of the evolution of the epidemics as the number of rounds (i.e., from a probabilistic point of view, the number of trials) increases.

Every seconds each infected host broadcasts the message and its neighbours receive the message. If the message is not already present in their buffer, they store it with a probability : moreover, they will not store it if the message has been already present in buffer in the past, although it is not present at current time. This behaviour maps quite well the SIR epidemic spreading model, since a node receives a new message, actively spreads it for some time and then it deletes the message from the buffer (i.e. to make room for new messages), never accepting it again. Therefore, a node has to store the identifiers of all messages received in a defined time window, which is a reasonable given the limited occupation of the vector of the message identifiers.

5 Evaluation

5.1 Analytical Evaluation

An interesting quantitative parameter is the total number of messages needed to disseminate messages to a certain percentage of hosts. A message is broadcasted by an infective host in every round: as soon as the host deletes the message it does not accept the same message again.

Considering an infection process repeated for a number of times equal to number of rounds, indicating with the time length of the round, the total number of replicas per single type of message can be estimated as follows:

(3)

From a graphical point of view, the number of copies is equal to the area under the curves in Figure 2 and 2. A comparison between SIR- and SIS-based protocols shows that while for both cases the formula 3 helds, in the former case the total number of replicas sent is much lower. This is the result of the recovering process, which enables hosts to stop message spreading when the epidemics is already growing but, at the same time, still guarantees that the final result will be guaranteed.

5.2 Experimental Evaluation

Description of the Simulation

In order to test the performance of these techniques, we defined a square simulation area with a side of 1 km and a transmission range equal to 200 m. The simulation was set to run several runs for each mobile scenario in order to obtain a statistically meaningful set of results (with a maximum 5% error). All simulations are written in Python using NetworkX 22, a package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. We analysed scenarios characterised by different number of hosts (more precisely 64, 128, 256, 512). These input parameters model typical deployment settings of mobile ad hoc networked systems. We do not model explicitly the failures in the system, since we assume that during the infection process, the number of hosts remains constant.

The movements of the hosts are generated using a Random Way-Point mobility model [6]; every host moves at a speed that is randomly generated by using a uniform distribution. The range of the possible speeds is . We selected this mobility model, since as discussed in [12], its emergent topology has a Poisson degree distribution. Therefore, in this scenario, the properties of the network can be studied with a good approximation by assuming a homogeneous network model. The accuracy of the approximation increases as the density of population increases, since, considering the finite and limited simulated time, we obtain a scenario characterised by a time series of degree of connectivity values with lower variance. Moreover, the so-called border effects, due to the host that moves at the boundaries of the simulated scenarios, have less influence as the density of population increases.

Each node uses a buffer of 5 messages, managed as a FIFO (first in first out) queue, and 20 different messages are sent in the initial round by random chosen nodes.

Figure 3: Delivery ratio vs population density with desired reliability equal to 100.
Figure 4: Delivery ratio vs population density with desired reliability equal to 50.
Figure 5: Number of replicas per host per message vs population density with desired reliability equal to 100.
Figure 6: Number of replicas per host per message vs population density with desired reliability equal to 50.

Analysis of Simulation Results

In this subsection we will analyse the results of our simulations, discussing the performance of the proposed techniques. We will study the variations of some performance indicators, such as the delivery ratio and the number of messages sent as functions of the density of hosts (i.e., the number of the hosts in the simulation area).

Figure 4 and 4 show the delivery ratio (i.e., the desired percentage of hosts in the epcast primitive) in terms of population density, for the case of a desired percentage of hosts equal to 100 and 50, respectively, with . The performance in terms of delivery ratio are close to the desired ones. Also in this case, the better approximation of the assumption of homogeneous network, obtained when the density of population increases, leads to better results (i.e., a more accurate estimation) for the case of 512 nodes.

The number of replicas per host per message are plotted in Figure 6 and 6. These diagrams illustrate the scalability of our approach, since the number of replicas is slightly decreasing when more nodes are added.

Evaluation with Dartmouth traces

In order to evalute our approach on real data we run simulations using a source of data describing how real users move between different locations, i.e. wireless access points. A large amount of traces from the 802.11b campus network of Dartmouth College is available through the CRAWDAD project [14]. We selected all the contacts between 9 am and 6 pm in one day during the term (Wednesday 21 April 2004), discarding contacts with duration less than 60 seconds. Two users are connected only if they are associated with the same access point during a time slot: epidemics spreading is therefore performed among users co-located with access points. Our resulting data set had 2201 unique MACs and 11572 contacts with all access points. We assume that each MAC address corresponds to a unique user. The other simulation parameters are the same of the previous analysis.

Type Desired fraction Delivered fraction Messages sent
epcast 0.50 0.43 17132
epcast 0.75 0.68 24738
epcast 1.00 0.90 32475
epcast(heterogeneous) 1.00 0.90 57342
Epidemic () 1.00 0.64 95969
Epidemic () 1.00 0.87 121873
Epidemic () 1.00 0.92 155446
Table 1: Comparation of performances on the real dataset of Dartmouth College traces

In Table 1 we show the performances of our approach: the percentage of host actually reached is slight less than the desired fraction of population and this can be explained by observing that these hosts are not always connected during all the simulation time and may be easily absent from the underlying network. In other words, the underpinning hypothesis of the epidemic spreading model that we are using are only approximately satisfied. We run a simulation with a standard epidemic approach where infectivity is not tuned using the SIR model but it is set to 0.25, 0.50 and 1.00 respectively. It is interesting to note that the number of messages is in all three cases higher; only the case with infectivity equal to 1.00, the standard epidemic protocol is able to reach all the hosts. This is also demonstrate how it is difficult to choose the right value of the infectivity in a purely heuristic way to reach all the hosts of the system.

We run also some simulations using a dataset from the National University of Singapore[16], which contains contact pattern of 22341 students inferred from the information on class schedules and class rosters for the Spring semester of 2006. Two students are connected if they attend the same class during a time slot. However, in this dataset a large fraction of students is not included in the instantaneous underlying network, since they are not attending any class. The result is that in this case the epidemics fails to start using our model based on the assumption of homogeneous mixing. Additional virtual point of aggregation can be included in the simulations, grouping a percentage of the students that are not attending lectures during a particular timeslot: this modification ensures homogeneous mixing, providing good results for our algorithm. However, this is only a conjecture given the nature of the traces.

Heterogeneous Networks

The results and the solutions discussed in this paper rely on the assumption of homogeneous networks, that are emerging from the random movements of the nodes. We now show that the proposed approach can be extended to the general case of heterogeneous networks  [4, 5]. These structures are emerging in presence of small clusters of people or communities.

For heterogeneous networks the approximation is not valid. However, the same probabilistic communication primitives introduced in Section 2 could be used, with a different semantics. This relies on the following observations: given fluctuating in the range , we observe that for a value of the infectivity corresponding to , the obtained spreading of the infection will always be greater than the one obtained with another . In other words, if is selected in the calculation of the value of the infectivity, the value of Reliability can be considered approximately as a guaranteed lower bound of the reliability level.

The value of can be dynamically retrieved and set by the middleware by monitoring the connectivity of the hosts composing the mobile system. We plan to investigate these adaptive mechanisms further in the future.

6 Concluding Remarks

In this paper we have shown how models of epidemic spreading in complex networks can be applied effectively to the problem of disseminating information to subset of hosts (or to all the hosts) in a wireless network, controlling at the same time the number of the copies in the system. We have presented an analytical and experimental evaluation of our approach using a synthetic random model and real traces, showing the effectiveness of our approach.

Acknowledgements Cecilia Mascolo and Mirco Musolesi acknowledge the support of EPSRC through the CREAM Project. Salvo Scellato thanks UCL for the financial support as Visiting Student.

Footnotes

  1. email: sascellato@ssc.unict.it
  2. email: c.mascolo@cs.ucl.ac.uk
  3. email: musolesi@cs.dartmouth.edu
  4. email: latora@ct.infn.it
  5. email: sascellato@ssc.unict.it
  6. email: c.mascolo@cs.ucl.ac.uk
  7. email: musolesi@cs.dartmouth.edu
  8. email: latora@ct.infn.it
  9. email: sascellato@ssc.unict.it
  10. email: c.mascolo@cs.ucl.ac.uk
  11. email: musolesi@cs.dartmouth.edu
  12. email: latora@ct.infn.it
  13. email: sascellato@ssc.unict.it
  14. email: c.mascolo@cs.ucl.ac.uk
  15. email: musolesi@cs.dartmouth.edu
  16. email: latora@ct.infn.it
  17. Note that the infectivity per single message (i.e., a disease) is constant, but not per single host. In other words, a host usually stores messages characterised by different infectivities in its buffer.
  18. The initial number of hosts can be usually estimated in occasion of sport events, rallies, etc. for example by evaluating the seating capacity of the venues or the size of the area when the event takes place. Statistical data are also usually available for many application scenarios, such as number of passengers that uses a station or an airport in a certain time of the day, etc. Alternatively, this number can be estimated using distributed algorithms for the calculation of the approximated network size such as [13].
  19. This is a realistic assumption, since users usually require that the information will be disseminated in a limited time.
  20. This is rigorously justifiable in a network only for complete graphs in large population limit. However, the model provides a good approximation also in scenarios composed of a limited number of hosts.
  21. If overflow phenomena do not occur (i.e., in the case of sufficiently large buffers), the model can be simplified with and, therefore, no host will never become recovered.
  22. http://networkx.lanl.gov

References

  1. R. Albert and A.-L. Barabasi. Statistical Mechanics of Complex Networks. Review of Modern Physics, 74:47–97, 2002.
  2. R. M. Anderson and R. M. May. Infectious Diseases of Humans: Dynamics and Control. Oxford University Press, 1992.
  3. S. Baehni, C. Chabra, and R. Guerraoui. Frugal Event Dissemination in a Mobile Environment. In Proceedings of ACM Middleware’05, 2005.
  4. M. Barthélemy, A. Barrat, R. Pastor-Satorras, and A. Vespignani. Dynamic Patterns of Epidemic Outbreaks in Complex Heterogeneous Networks. Journal of Theoretical Biology, 2005.
  5. S. Boccaletti, V. Latora, Y. Moreno, M. Chavez, and D.-U. Hwang. Complex networks : Structure and dynamics. Phys. Rep., 424(4-5):175–308, Elsevier 2006.
  6. T. Camp, J. Boleng, and V. Davies. A Survey of Mobility Models for Ad Hoc Network Research. Wireless Communication and Mobile Computing, 2(5):483–502, 2002.
  7. P. Costa and G. P. Picco. Semi-probabilistic Content-Based Publish-Subscribe. In Proceedings of ICDCS’05, pages 575–585, 2005.
  8. A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. Epidemic Algorithms for Replicated Database Maintenance. ACM SIGOPS Operating Systems Review, 22(1), January 1988.
  9. P. T. Eugster, R. Guerraoui, A.-M. Kermarrec, and L. Massoulié. Epidemic Information Dissemination in Distributed Systems. IEEE Computer, May 2004.
  10. P. T. Eugster, S. Handurukande, R. Guerraoui, A.-M. Kermarrec, and P. Kouznetsov. Lightweight Probabilistic Broadcast. ACM Transactions on Computer Systems, 21(4):341–374, 2003.
  11. K. Fall. A delay-tolerant network architecture for challenged internets. In Proceedings of the SIGCOMM’03, pages 27–34, New York, NY, USA, 2003. ACM Press.
  12. I. Glauche, W. Krause, R. Sollacher, and M. Greiner. Continuum Percolation of Wireless Ad Hoc Communication Networks. Physica A, 325:577–600, 2003.
  13. M. Jelasity and A. Montresor. Epidemic-style proactive aggregation in large overlay networks. In Proceedings of ICDCS’04, pages 102–109, Tokyo, Japan, Mar. 2004. IEEE Computer Society.
  14. D. Kotz, T. Henderson, and I. Abyzov. CRAWDAD data set dartmouth/campus (v. 2007-02-08). Downloaded from http://crawdad.cs.dartmouth.edu/dartmouth/campus, Feb. 2007.
  15. M. Musolesi and C. Mascolo. Controlled Epidemic-style Dissemination Middleware for Mobile Ad Hoc Networks. In Proceedings of MOBIQUITOUS 2006. ACM Press, July 2006.
  16. V. Srinivasan, M. Motani, and W. T. Ooi. CRAWDAD data set nus/contact (v. 2006-08-01). Downloaded from http://crawdad.cs.dartmouth.edu/nus/contact, Aug. 2006.
  17. A. Vahdat and D. Becker. Epidemic Routing for Partially Connected Ad Hoc Networks. Technical Report CS-2000-06, Department of Computer Science, Duke University, 2000.
72413
This is a comment super asjknd jkasnjk adsnkj
Upvote
Downvote
Edit
-  
Unpublish
""
The feedback must be of minumum 40 characters
The feedback must be of minumum 40 characters
Submit
Cancel
Comments 0
Request comment
""
The feedback must be of minumum 40 characters
Add comment
Cancel
Loading ...

You are asking your first question!
How to quickly get a good answer:
  • Keep your question short and to the point
  • Check for grammar or spelling errors.
  • Phrase it like a question
Test
Test description