Problem 4.89

Let the random variable \(Y\) have the Gamma probability distribution with parameters \(\alpha>0\) and \(\beta>0\). Then the probability density function for \(Y\) is \[ f(y;\alpha,\beta) = \begin{cases} \frac{y^{\alpha-1}e^{-y/\beta}}{\beta^{\alpha}\Gamma(\alpha)} &, y>0 \\ 0 &, \text{otherwise.} \end{cases} \]
  1. Let \(a\) be any real number for which \(\alpha+a>0\). \[\begin{align*} \beta^\alpha\Gamma(\alpha)\, E[Y^a] &= \int_0^\infty y^a y^{\alpha-1} e^{-y/\beta}\,dy \\ &= \int_0^\infty y^{\alpha+a-1} e^{-y/\beta}\,dy \\ &= \beta^{\alpha+a}\Gamma(\alpha+a). \end{align*}\] Therefore, \(E[Y^a]=\beta^a \Gamma(\alpha+a) / \Gamma(\alpha)\).
  2. If \(\alpha+a\le 0\) then \(\alpha+a-1\le -1\) and the improper integral in part (a) will diverge at 0.
  3. Let \(a=1\). Then by part (a) \[ \mu = E[Y] = \beta\frac{\Gamma(\alpha+1)}{\Gamma(\alpha)} = \beta\frac{\alpha \Gamma(\alpha)}{\Gamma(\alpha)} = \alpha \beta. \] Therefore \(\mu = \alpha \beta\).
  4. By part (a), \(E[\sqrt{Y}] = E[Y^{1/2}] = \beta^{1/2}\Gamma(\alpha+1/2)/\Gamma(\alpha)\). This holds for all \(\alpha>0\).
  5. By part (a) \[\begin{align*} E[1/Y] &= \beta^{-1}\frac{\Gamma(\alpha-1)}{\Gamma(\alpha)} = \frac{1}{\beta (\alpha-1)}, & \alpha > 1. \\ E[1/\sqrt{Y}] &= \beta^{-1/2}\frac{\Gamma(\alpha-\frac{1}{2})}{\Gamma(\alpha)}, & \alpha > \frac{1}{2}. \\ E[1/Y^2] &= \beta^{-2}\frac{\Gamma(\alpha-2)}{\Gamma(\alpha)} = \frac{1}{\beta^2 (\alpha-1) (\alpha-2)}, & \alpha > 2. \end{align*}\]

Problem 4.90

Let the random variable \(Y\) have the chi-square distribution with \(\nu\) degrees of freedom, where \(\nu\) can be any positive integer. Then \(Y\) has a Gamma distribution with \(\alpha=\nu/2\) and \(\beta=2\).
  1. By 4.89(a), \(E[Y^a]=2^a\Gamma(\frac{1}{2}\nu+a)/\Gamma(\frac{1}{2}\nu)\).
  2. \(\alpha+a > 0\) if and only if \(2\alpha = \nu > -2a\).
  3. By part (a), \(E[\sqrt{Y}]=\sqrt{2}\,\Gamma(\frac{1}{2}\nu+\frac{1}{2})/\Gamma(\frac{1}{2}\nu)\).
  4. By part (a) \[\begin{align*} E[1/Y] &= \frac{1}{2(\frac{1}{2}\nu-1)} = \frac{1}{\nu-2}, &\nu > 2. \\ E[1/\sqrt{Y}] &= \frac{\Gamma(\frac{1}{2}\nu-\frac{1}{2})}{\sqrt{2}\, \Gamma(\frac{1}{2}\nu)}, & \nu > 1. \\ E[1/Y^2] &= \frac{1}{2^2(\frac{1}{2}\nu -1)(\frac{1}{2}\nu - 2)} = \frac{1}{(\nu - 2)(\nu - 4)}, & \nu > 4. \end{align*}\]

Problem 6.40

Let \(n\) be a positive integer and let \(Y\) have a Gamma distribution with parameters \(\alpha=n/2\) and \(\beta>0\). Using Table A2.2 in Appendix Two \[ m_Y(t) = (1 - \beta\, t)^{-n/2} = E\left[e^{t Y}\right]. \] Let \(W=2Y/\beta\), then \[\begin{align*} m_W(t) &= E\left[e^{t W}\right] \\ &= E\left[e^{(2t/\beta) Y}\right] \\ &= m_Y(2t/\beta) \\ &= \left[1 - \beta\left(\frac{2}{\beta}\right)\right]^{-n/2} \\ &= (1 - 2t)^{-n/2}, \end{align*}\]

which, by Table A2.2, is the moment generating function for a chi-square distributed random variable with \(\nu=n\) degrees of freedom. Therefore, by Theorem 6.1 (page 302), \(W\) has a chi-square distribution with \(n\) degrees of freedom.

Problem

Let \(Y_1\) and \(Y_2\) be independent random variables with respective probability distributions Poisson(\(\lambda_1\)) and Poisson(\(\lambda_2\)). By Table A2.1 in Appendix Two, the respective moment generating functions are \[\begin{align*} m_{Y_1}(t) &= \exp[\lambda_1 (e^t - 1)] \\ m_{Y_2}(t) &= \exp[\lambda_2 (e^t - 1)]. \end{align*}\]

Let \(Y = Y_1 + Y_2\). Since \(Y_1\) and \(Y_2\) are independent random variables, Theorem 6.2 (page 304) implies that the moment generating function for \(Y\) is \[ m_Y(t) = m_{Y_1}(t)\cdot m_{Y_2}(t) = \exp[(\lambda_1 + \lambda_2) (e^t - 1)], \] which, by Table A2.1, is the moment generating function for a random variable that has a Poisson(\(\lambda_1 + \lambda_2\)) distribution. Therefore, by Theorem 6.1 (page 302), the random variable \(Y\) has a Poisson(\(\lambda_1+\lambda_2\)) probability distribution. In other words, the sum of independent Poisson random variables with means \(\lambda_1\) and \(\lambda_2\) is a Poisson random variable with mean \(\lambda_1 + \lambda_2\).

Problem

Let \(Y_1\) and \(Y_2\) be independent and identically distributed Exponential random variables with common mean \(E[Y_1] = E[Y_2] = \beta\). By Table A2.2 in Appendix Two, the (identical) moment generating functions are \[ m(t) = (1 - \beta\,t)^{-1}. \] Let \(Y = Y_1 + Y_2\). Since \(Y_1\) and \(Y_2\) are independent random variables, Theorem 6.2 (page 304) implies that the moment generating function for \(Y\) is \[ m_Y(t) = m(t)\cdot m(t) = m(t)^2 = (1 - \beta\,t)^{-2}, \] which, by Table A2.2, is the moment generating function for a random variable that has a Gamma probability distribution with parameters \(\alpha=2\) and \(\beta\). Therefore, by Theorem 6.1 (page 302), the random variable \(Y\) has a Gamma(\(2,\beta\)) probability distribution.

Now, let \(Y_1,\dotsc,Y_n\) be independent and identically distributed Exponential(\(\beta\)) random variables. As an induction hypothesis, assume that the random variable \(Y_1 + \dotsb + Y_{n-1}\) has a Gamma(\(n-1,\beta\)) distribution. Let \[ Y = Y_1 + \dotsb + Y_{n-1} + Y_n = (Y_1 + \dotsb + Y_{n-1}) + Y_n. \] Then, by the induction hypothesis, \(Y\) is the sum of a Gamma(\(n-1,\beta\)) distributed random variable and an Exponential(\(\beta\)) distributed random variable. The independence of \(Y_1,\dotsc,Y_n\) implies that \((Y_1 + \dotsb + Y_{n-1})\) and \(Y_n\) are independent random variables. Therefore, using Table A2.2 and Theorem 6.2, the moment generating function for \(Y\) is \[ m(t) = (1-\beta\,t)^{-n+1}\cdot (1-\beta\,t)^{-1} = (1 - \beta\,t)^{-n}, \] which, by Table A2.2, is the moment generating function for a random variable that has a Gamma probability distribution with parameters \(\alpha=n\) and \(\beta\). Therefore, by Theorem 6.1 (page 302), the random variable \(Y\) has a Gamma(\(n,\beta\)) probability distribution. In other words, the sum of \(n\) independent and identically distributed Exponential(\(\beta\)) random variables is a Gamma(\(n,\beta\)) distributed random variable.

LS0tCnRpdGxlOiAiU29sdXRpb25zIHRvIEhvbWV3b3JrIEFzc2lnbm1lbnQgMSIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyMgUHJvYmxlbSA0Ljg5CkxldCB0aGUgcmFuZG9tIHZhcmlhYmxlIFwoWVwpIGhhdmUgdGhlIEdhbW1hIHByb2JhYmlsaXR5IGRpc3RyaWJ1dGlvbiB3aXRoIHBhcmFtZXRlcnMgXChcYWxwaGE+MFwpIGFuZCBcKFxiZXRhPjBcKS4gVGhlbiB0aGUgcHJvYmFiaWxpdHkgZGVuc2l0eSBmdW5jdGlvbiBmb3IgXChZXCkgaXMKXFsKICBmKHk7XGFscGhhLFxiZXRhKSA9CiAgXGJlZ2lue2Nhc2VzfQogIFxmcmFje3lee1xhbHBoYS0xfWVeey15L1xiZXRhfX17XGJldGFee1xhbHBoYX1cR2FtbWEoXGFscGhhKX0KICAgICYsIHk+MCBcXAogIDAgJiwgXHRleHR7b3RoZXJ3aXNlLn0KICBcZW5ke2Nhc2VzfQpcXQo8b2wgdHlwZT0iYSI+CjxsaT4KTGV0IFwoYVwpIGJlIGFueSByZWFsIG51bWJlciBmb3Igd2hpY2ggXChcYWxwaGErYT4wXCkuClxiZWdpbnthbGlnbip9ClxiZXRhXlxhbHBoYVxHYW1tYShcYWxwaGEpXCwgRVtZXmFdIAogICY9IFxpbnRfMF5caW5mdHkgeV5hIHlee1xhbHBoYS0xfSBlXnsteS9cYmV0YX1cLGR5IFxcCiAgJj0gXGludF8wXlxpbmZ0eSB5XntcYWxwaGErYS0xfSBlXnsteS9cYmV0YX1cLGR5IFxcCiAgJj0gXGJldGFee1xhbHBoYSthfVxHYW1tYShcYWxwaGErYSkuClxlbmR7YWxpZ24qfQpUaGVyZWZvcmUsIFwoRVtZXmFdPVxiZXRhXmEgXEdhbW1hKFxhbHBoYSthKSAvIFxHYW1tYShcYWxwaGEpXCkuCjwvbGk+CjxsaT4KSWYgXChcYWxwaGErYVxsZSAwXCkgdGhlbiBcKFxhbHBoYSthLTFcbGUgLTFcKSBhbmQgdGhlIGltcHJvcGVyIGludGVncmFsIGluIHBhcnQgKGEpIHdpbGwgZGl2ZXJnZSBhdCAwLgo8L2xpPgo8bGk+CkxldCBcKGE9MVwpLiBUaGVuIGJ5IHBhcnQgKGEpClxbClxtdSA9IEVbWV0gPSBcYmV0YVxmcmFje1xHYW1tYShcYWxwaGErMSl9e1xHYW1tYShcYWxwaGEpfQogID0gXGJldGFcZnJhY3tcYWxwaGEgXEdhbW1hKFxhbHBoYSl9e1xHYW1tYShcYWxwaGEpfQogID0gXGFscGhhIFxiZXRhLgpcXQpUaGVyZWZvcmUgXChcbXUgPSBcYWxwaGEgXGJldGFcKS4KPC9saT4KPGxpPgpCeSBwYXJ0IChhKSwgXChFW1xzcXJ0e1l9XSA9IEVbWV57MS8yfV0gPSBcYmV0YV57MS8yfVxHYW1tYShcYWxwaGErMS8yKS9cR2FtbWEoXGFscGhhKVwpLiBUaGlzIGhvbGRzIGZvciBhbGwgXChcYWxwaGE+MFwpLiAKPC9saT4KPGxpPgpCeSBwYXJ0IChhKQpcYmVnaW57YWxpZ24qfQpFWzEvWV0gJj0gXGJldGFeey0xfVxmcmFje1xHYW1tYShcYWxwaGEtMSl9e1xHYW1tYShcYWxwaGEpfQogID0gXGZyYWN7MX17XGJldGEgKFxhbHBoYS0xKX0sICYgXGFscGhhID4gMS4gXFwKRVsxL1xzcXJ0e1l9XSAmPSBcYmV0YV57LTEvMn1cZnJhY3tcR2FtbWEoXGFscGhhLVxmcmFjezF9ezJ9KX17XEdhbW1hKFxhbHBoYSl9LCAmIFxhbHBoYSA+IFxmcmFjezF9ezJ9LiBcXApFWzEvWV4yXSAmPSBcYmV0YV57LTJ9XGZyYWN7XEdhbW1hKFxhbHBoYS0yKX17XEdhbW1hKFxhbHBoYSl9CiAgPSBcZnJhY3sxfXtcYmV0YV4yIChcYWxwaGEtMSkgKFxhbHBoYS0yKX0sICYgXGFscGhhID4gMi4KXGVuZHthbGlnbip9CjwvbGk+Cjwvb2w+CgojIyBQcm9ibGVtIDQuOTAKTGV0IHRoZSByYW5kb20gdmFyaWFibGUgXChZXCkgaGF2ZSB0aGUgY2hpLXNxdWFyZSBkaXN0cmlidXRpb24gd2l0aCBcKFxudVwpIGRlZ3JlZXMgb2YgZnJlZWRvbSwgd2hlcmUgXChcbnVcKSBjYW4gYmUgYW55IHBvc2l0aXZlIGludGVnZXIuIFRoZW4gXChZXCkgaGFzIGEgR2FtbWEgZGlzdHJpYnV0aW9uIHdpdGggXChcYWxwaGE9XG51LzJcKSBhbmQgXChcYmV0YT0yXCkuCjxvbCB0eXBlPSJhIj4KPGxpPgpCeSA0Ljg5KGEpLCBcKEVbWV5hXT0yXmFcR2FtbWEoXGZyYWN7MX17Mn1cbnUrYSkvXEdhbW1hKFxmcmFjezF9ezJ9XG51KVwpLgo8L2xpPgo8bGk+ClwoXGFscGhhK2EgPiAwXCkgaWYgYW5kIG9ubHkgaWYgXCgyXGFscGhhID0gXG51ID4gLTJhXCkuCjwvbGk+CjxsaT4KQnkgcGFydCAoYSksIFwoRVtcc3FydHtZfV09XHNxcnR7Mn1cLFxHYW1tYShcZnJhY3sxfXsyfVxudStcZnJhY3sxfXsyfSkvXEdhbW1hKFxmcmFjezF9ezJ9XG51KVwpLgo8L2xpPgo8bGk+CkJ5IHBhcnQgKGEpClxiZWdpbnthbGlnbip9CiAgRVsxL1ldICY9IFxmcmFjezF9ezIoXGZyYWN7MX17Mn1cbnUtMSl9ID0gXGZyYWN7MX17XG51LTJ9LCAmXG51ID4gMi4gXFwKICBFWzEvXHNxcnR7WX1dICY9IFxmcmFje1xHYW1tYShcZnJhY3sxfXsyfVxudS1cZnJhY3sxfXsyfSl9e1xzcXJ0ezJ9XCwgXEdhbW1hKFxmcmFjezF9ezJ9XG51KX0sICYgXG51ID4gMS4gXFwKICBFWzEvWV4yXSAmPSBcZnJhY3sxfXsyXjIoXGZyYWN7MX17Mn1cbnUgLTEpKFxmcmFjezF9ezJ9XG51IC0gMil9CiAgICA9IFxmcmFjezF9eyhcbnUgLSAyKShcbnUgLSA0KX0sICYgXG51ID4gNC4KXGVuZHthbGlnbip9CjwvbGk+Cjwvb2w+CgojIyBQcm9ibGVtIDYuNDAKTGV0IFwoblwpIGJlIGEgcG9zaXRpdmUgaW50ZWdlciBhbmQgbGV0IFwoWVwpIGhhdmUgYSBHYW1tYSBkaXN0cmlidXRpb24gd2l0aCBwYXJhbWV0ZXJzIFwoXGFscGhhPW4vMlwpIGFuZCBcKFxiZXRhPjBcKS4gVXNpbmcgVGFibGUgQTIuMiBpbiBBcHBlbmRpeCBUd28KXFsKbV9ZKHQpID0gKDEgLSBcYmV0YVwsIHQpXnstbi8yfSA9IEVcbGVmdFtlXnt0IFl9XHJpZ2h0XS4KXF0KTGV0IFwoVz0yWS9cYmV0YVwpLCB0aGVuClxiZWdpbnthbGlnbip9Cm1fVyh0KSAmPSBFXGxlZnRbZV57dCBXfVxyaWdodF0gXFwKICAmPSBFXGxlZnRbZV57KDJ0L1xiZXRhKSBZfVxyaWdodF0gXFwKICAmPSBtX1koMnQvXGJldGEpIFxcCiAgJj0gXGxlZnRbMSAtIFxiZXRhXGxlZnQoXGZyYWN7Mn17XGJldGF9XHJpZ2h0KVxyaWdodF1eey1uLzJ9IFxcCiAgJj0gKDEgLSAydCleey1uLzJ9LApcZW5ke2FsaWduKn0Kd2hpY2gsIGJ5IFRhYmxlIEEyLjIsIGlzIHRoZSBtb21lbnQgZ2VuZXJhdGluZyBmdW5jdGlvbiBmb3IgYSBjaGktc3F1YXJlIGRpc3RyaWJ1dGVkIHJhbmRvbSB2YXJpYWJsZSB3aXRoIFwoXG51PW5cKSBkZWdyZWVzIG9mIGZyZWVkb20uIFRoZXJlZm9yZSwgYnkgVGhlb3JlbSA2LjEgKHBhZ2UgMzAyKSwgXChXXCkgaGFzIGEgY2hpLXNxdWFyZSBkaXN0cmlidXRpb24gd2l0aCBcKG5cKSBkZWdyZWVzIG9mIGZyZWVkb20uCgojIyBQcm9ibGVtCkxldCBcKFlfMVwpIGFuZCBcKFlfMlwpIGJlIGluZGVwZW5kZW50IHJhbmRvbSB2YXJpYWJsZXMgd2l0aCByZXNwZWN0aXZlIHByb2JhYmlsaXR5IGRpc3RyaWJ1dGlvbnMgUG9pc3NvbihcKFxsYW1iZGFfMVwpKSBhbmQgUG9pc3NvbihcKFxsYW1iZGFfMlwpKS4gQnkgVGFibGUgQTIuMSBpbiBBcHBlbmRpeCBUd28sIHRoZSByZXNwZWN0aXZlIG1vbWVudCBnZW5lcmF0aW5nIGZ1bmN0aW9ucyBhcmUKXGJlZ2lue2FsaWduKn0KICBtX3tZXzF9KHQpICY9IFxleHBbXGxhbWJkYV8xIChlXnQgLSAxKV0gXFwKICBtX3tZXzJ9KHQpICY9IFxleHBbXGxhbWJkYV8yIChlXnQgLSAxKV0uClxlbmR7YWxpZ24qfQpMZXQgXChZID0gWV8xICsgWV8yXCkuIFNpbmNlIFwoWV8xXCkgYW5kIFwoWV8yXCkgYXJlIGluZGVwZW5kZW50IHJhbmRvbSB2YXJpYWJsZXMsIFRoZW9yZW0gNi4yIChwYWdlIDMwNCkgaW1wbGllcyB0aGF0IHRoZSBtb21lbnQgZ2VuZXJhdGluZyBmdW5jdGlvbiBmb3IgXChZXCkgaXMKXFsKICBtX1kodCkgPSBtX3tZXzF9KHQpXGNkb3QgbV97WV8yfSh0KSAKICAgID0gXGV4cFsoXGxhbWJkYV8xICsgXGxhbWJkYV8yKSAoZV50IC0gMSldLApcXQp3aGljaCwgYnkgVGFibGUgQTIuMSwgaXMgdGhlIG1vbWVudCBnZW5lcmF0aW5nIGZ1bmN0aW9uIGZvciBhIHJhbmRvbSB2YXJpYWJsZSB0aGF0IGhhcyBhIFBvaXNzb24oXChcbGFtYmRhXzEgKyBcbGFtYmRhXzJcKSkgZGlzdHJpYnV0aW9uLiBUaGVyZWZvcmUsIGJ5IFRoZW9yZW0gNi4xIChwYWdlIDMwMiksIHRoZSByYW5kb20gdmFyaWFibGUgXChZXCkgaGFzIGEgUG9pc3NvbihcKFxsYW1iZGFfMStcbGFtYmRhXzJcKSkgcHJvYmFiaWxpdHkgZGlzdHJpYnV0aW9uLiBJbiBvdGhlciB3b3JkcywgdGhlIHN1bSBvZiBpbmRlcGVuZGVudCBQb2lzc29uIHJhbmRvbSB2YXJpYWJsZXMgd2l0aCBtZWFucyBcKFxsYW1iZGFfMVwpIGFuZCBcKFxsYW1iZGFfMlwpIGlzIGEgUG9pc3NvbiByYW5kb20gdmFyaWFibGUgd2l0aCBtZWFuIFwoXGxhbWJkYV8xICsgXGxhbWJkYV8yXCkuCgojI1Byb2JsZW0KTGV0IFwoWV8xXCkgYW5kIFwoWV8yXCkgYmUgaW5kZXBlbmRlbnQgYW5kIGlkZW50aWNhbGx5IGRpc3RyaWJ1dGVkIEV4cG9uZW50aWFsIHJhbmRvbSB2YXJpYWJsZXMgd2l0aCBjb21tb24gbWVhbiAKXChFW1lfMV0gPSBFW1lfMl0gPSBcYmV0YVwpLiBCeSBUYWJsZSBBMi4yIGluIEFwcGVuZGl4IFR3bywgdGhlIChpZGVudGljYWwpIG1vbWVudCBnZW5lcmF0aW5nIGZ1bmN0aW9ucyBhcmUgClxbCiAgbSh0KSA9ICgxIC0gXGJldGFcLHQpXnstMX0uClxdCkxldCBcKFkgPSBZXzEgKyBZXzJcKS4gU2luY2UgXChZXzFcKSBhbmQgXChZXzJcKSBhcmUgaW5kZXBlbmRlbnQgcmFuZG9tIHZhcmlhYmxlcywgVGhlb3JlbSA2LjIgKHBhZ2UgMzA0KSBpbXBsaWVzIHRoYXQgdGhlIG1vbWVudCBnZW5lcmF0aW5nIGZ1bmN0aW9uIGZvciBcKFlcKSBpcwpcWwogIG1fWSh0KSA9IG0odClcY2RvdCBtKHQpID0gbSh0KV4yIAogICAgPSAoMSAtIFxiZXRhXCx0KV57LTJ9LApcXQp3aGljaCwgYnkgVGFibGUgQTIuMiwgaXMgdGhlIG1vbWVudCBnZW5lcmF0aW5nIGZ1bmN0aW9uIGZvciBhIHJhbmRvbSB2YXJpYWJsZSB0aGF0IGhhcyBhIEdhbW1hIHByb2JhYmlsaXR5IGRpc3RyaWJ1dGlvbiB3aXRoIHBhcmFtZXRlcnMgXChcYWxwaGE9MlwpIGFuZCBcKFxiZXRhXCkuIFRoZXJlZm9yZSwgYnkgVGhlb3JlbSA2LjEgKHBhZ2UgMzAyKSwgdGhlIHJhbmRvbSB2YXJpYWJsZSBcKFlcKSBoYXMgYSBHYW1tYShcKDIsXGJldGFcKSkgcHJvYmFiaWxpdHkgZGlzdHJpYnV0aW9uLgoKTm93LCBsZXQgXChZXzEsXGRvdHNjLFlfblwpIGJlIGluZGVwZW5kZW50IGFuZCBpZGVudGljYWxseSBkaXN0cmlidXRlZCBFeHBvbmVudGlhbChcKFxiZXRhXCkpIHJhbmRvbSB2YXJpYWJsZXMuIEFzIGFuIGluZHVjdGlvbiBoeXBvdGhlc2lzLCBhc3N1bWUgdGhhdCB0aGUgcmFuZG9tIHZhcmlhYmxlIFwoWV8xICsgXGRvdHNiICsgWV97bi0xfVwpIGhhcyBhIEdhbW1hKFwobi0xLFxiZXRhXCkpIGRpc3RyaWJ1dGlvbi4gTGV0IApcWwogIFkgPSBZXzEgKyBcZG90c2IgKyBZX3tuLTF9ICsgWV9uCiAgICA9IChZXzEgKyBcZG90c2IgKyBZX3tuLTF9KSArIFlfbi4KXF0KVGhlbiwgYnkgdGhlIGluZHVjdGlvbiBoeXBvdGhlc2lzLCBcKFlcKSBpcyB0aGUgc3VtIG9mIGEgR2FtbWEoXChuLTEsXGJldGFcKSkgZGlzdHJpYnV0ZWQgcmFuZG9tIHZhcmlhYmxlIGFuZCBhbiBFeHBvbmVudGlhbChcKFxiZXRhXCkpIGRpc3RyaWJ1dGVkIHJhbmRvbSB2YXJpYWJsZS4gVGhlIGluZGVwZW5kZW5jZSBvZiBcKFlfMSxcZG90c2MsWV9uXCkgaW1wbGllcyB0aGF0IFwoKFlfMSArIFxkb3RzYiArIFlfe24tMX0pXCkgYW5kIFwoWV9uXCkgYXJlIGluZGVwZW5kZW50IHJhbmRvbSB2YXJpYWJsZXMuIFRoZXJlZm9yZSwgdXNpbmcgVGFibGUgQTIuMiBhbmQgVGhlb3JlbSA2LjIsIHRoZSBtb21lbnQgZ2VuZXJhdGluZyBmdW5jdGlvbiBmb3IgXChZXCkgaXMKXFsKbSh0KSA9ICgxLVxiZXRhXCx0KV57LW4rMX1cY2RvdCAoMS1cYmV0YVwsdCleey0xfQogICAgPSAoMSAtIFxiZXRhXCx0KV57LW59LApcXQp3aGljaCwgYnkgVGFibGUgQTIuMiwgaXMgdGhlIG1vbWVudCBnZW5lcmF0aW5nIGZ1bmN0aW9uIGZvciBhIHJhbmRvbSB2YXJpYWJsZSB0aGF0IGhhcyBhIEdhbW1hIHByb2JhYmlsaXR5IGRpc3RyaWJ1dGlvbiB3aXRoIHBhcmFtZXRlcnMgXChcYWxwaGE9blwpIGFuZCBcKFxiZXRhXCkuIFRoZXJlZm9yZSwgYnkgVGhlb3JlbSA2LjEgKHBhZ2UgMzAyKSwgdGhlIHJhbmRvbSB2YXJpYWJsZSBcKFlcKSBoYXMgYSBHYW1tYShcKG4sXGJldGFcKSkgcHJvYmFiaWxpdHkgZGlzdHJpYnV0aW9uLiBJbiBvdGhlciB3b3JkcywgdGhlIHN1bSBvZiBcKG5cKSBpbmRlcGVuZGVudCBhbmQgaWRlbnRpY2FsbHkgZGlzdHJpYnV0ZWQgRXhwb25lbnRpYWwoXChcYmV0YVwpKSByYW5kb20gdmFyaWFibGVzIGlzIGEgR2FtbWEoXChuLFxiZXRhXCkpIGRpc3RyaWJ1dGVkIHJhbmRvbSB2YXJpYWJsZS4K